package soundfriend.types; import java.io.File; import toritools.entity.Entity; import toritools.entity.Level; import toritools.entity.physics.PhysicsModule; import toritools.entity.sprite.ImageSprite; import toritools.math.Vector2; import toritools.scripting.EntityScript; import toritools.scripting.ScriptUtils; public class Ball extends Entity implements EntityScript { private PhysicsModule physics; // private int timer = 0; // final static private int MAX_TIME = 2 * 1000; public Ball() { this.addScript(this); this.setType("ball"); this.setDim(new Vector2(32, 32)); this.setSprite(new ImageSprite(new File("tamodatchi/ball.png"), 1, 1)); } @Override public void onSpawn(Entity self, Level level) { physics = new PhysicsModule(Vector2.ZERO, new Vector2(.047f, .047f), self); self.setPos(new Vector2(100, 100).add(ScriptUtils.getCurrentLevel().getDim().sub(new Vector2(200, 200)) .scale((float) Math.random(), (float) Math.random()))); } @Override public void onUpdate(Entity self, float time, Level level) { self.setPos(self.getPos().add(physics.onUpdate(time))); for (Entity pet : level.getEntitiesWithType("pet")) { if (ScriptUtils.isColliding(pet, self)) { physics.addVelocity(self.getPos().add(self.getDim().scale(.5f)) .sub(pet.getPos().add(pet.getDim().scale(.5f)))); } } // if (timer++ > MAX_TIME) { // level.despawnEntity(self); // } if (!ScriptUtils.isColliding(level, self)) { level.despawnEntity(self); } } @Override public void onDeath(Entity self, Level level, boolean isRoomExit) { } }