Skip to content

Commit

Permalink
update collision scene
Browse files Browse the repository at this point in the history
  • Loading branch information
Yeffian committed Jun 21, 2022
1 parent eaedd63 commit 341b6c1
Showing 1 changed file with 25 additions and 17 deletions.
42 changes: 25 additions & 17 deletions examples/src/main/java/dev/yeff/scenes/CollisionScene.java
Original file line number Diff line number Diff line change
@@ -1,48 +1,56 @@
package dev.yeff.scenes;

import dev.yeff.components.MouseObjectCollisionComponent;
import dev.yeff.components.PlayerComponent;
import dev.yeff.orbital.Game;
import dev.yeff.orbital.ecs.GameObject;
import dev.yeff.orbital.ecs.builders.GameObjectBuilder;
import dev.yeff.orbital.ecs.components.TransformComponent;
import dev.yeff.orbital.ecs.components.render.RenderShapeComponent;
import dev.yeff.orbital.graphics.Colors;
import dev.yeff.orbital.graphics.Shapes;
import dev.yeff.orbital.io.Input;
import dev.yeff.orbital.math.Vector2f;
import dev.yeff.orbital.physics.collision.CollisionChecker;
import dev.yeff.orbital.resources.ResourceManager;
import dev.yeff.orbital.resources.Sprite;
import dev.yeff.orbital.scenes.Scene;

public class CollisionScene extends Scene {
private GameObject obj1;
private GameObject obj2;
private GameObject player;

private Sprite sprite;

@Override
public void init(Game game) {
obj1 = new GameObjectBuilder(this)
.withId("Object 1")
.withTransform(game.getScreenCenter(), new Vector2f(120.0f, 120.0f))
.withCollider(Shapes.CIRCLE, new Vector2f(120.0f, 120.0f))
.withShape(Shapes.CIRCLE, Colors.RED)
sprite = ResourceManager.getSprite(getClass(), "assets/character_0000.png");

player = new GameObjectBuilder(this, "Player")
.withTransform(game.getScreenCenter(), new Vector2f(60.0f))
.withSprite(sprite)
.withCollider(Shapes.RECTANGLE, new Vector2f(60.0f))
.withComponent(new PlayerComponent())
.build();

obj2 = new GameObjectBuilder(this)
.withId("Object 2")
.withTransform(Input.getMouse().getMousePos(), new Vector2f(5.0f, 5.0f))
.withCollider(Shapes.CIRCLE, new Vector2f(5.0f, 5.0f))
.withComponents(new MouseObjectCollisionComponent())
obj2 = new GameObjectBuilder(this, "Object 1")
.withTransform(game.getScreenCenter(), new Vector2f(80.0f))
.withShape(Shapes.RECTANGLE, Colors.GREEN)
.withCollider(Shapes.RECTANGLE, new Vector2f(80.0f))
.build();

addGameObject(game, obj1);
addGameObject(game, obj2);
addGameObject(game, player);
}

@Override
public void update(Game game, float fps) {
obj2.getComponent(TransformComponent.class).position = Input.getMouse().getMousePos();
if (CollisionChecker.isColliding(player, obj2)) {
obj2.getComponent(RenderShapeComponent.class).color = Colors.RED;
} else {
obj2.getComponent(RenderShapeComponent.class).color = Colors.GREEN;
}
}

@Override
public void dispose(Game game) {

ResourceManager.disposeSprite(sprite);
}
}

0 comments on commit 341b6c1

Please sign in to comment.