Я не хочу указывать всем своим гостевым объектам случайное направление, но я не могу понять, как
Мне удалось установить все мои сущности Направление, чтобы они двигались либо по шагам X, либо по Y, но это статическое движение, есть ли способ их произвольного перемещения? может быть, используя какой-то таймер?
private GameScreen gs;
private boolean gameRunning = true;
private int fps;
private Entity player;
private ArrayList<Entity> entityList = new ArrayList<>();
private HashMap<String, Boolean> keyDown = new HashMap<>();
public void loadObjects() {
Image playerImg = new ImageIcon(getClass().getResource("/playerImg.png")).getImage();
Image gostImg = new ImageIcon(getClass().getResource("/gostImg.png")).getImage();
player = new Entity(playerImg, 100, 200, 200);
entityList.add(player);
entityList.add(new Entity(gostImg, 224, 350, 60));
entityList.add(new Entity(gostImg, 460, 250, 60));
entityList.add(new Entity(gostImg, 624, 300, 60));
entityList.add(new Entity(gostImg, 942, 550, 60));
entityList.add(new Entity(gostImg, 520, 560, 60));
}
public void update(long deltaTime) {
checkCollisionandRemove();
if(keyDown.get("right")) {
player.setDirectionX(1);
player.setDirectionY(0);
}
else if(keyDown.get("left")){
player.setDirectionX(-1);
player.setDirectionY(0);
}
if(keyDown.get("up")) {
player.setDirectionY(-1);
player.setDirectionX(0);
}
else if(keyDown.get("down")) {
player.setDirectionY(1);
player.setDirectionX(0);
}
if(player.getX() < 0) {
player.setX(0);
}
if(player.getX() > gs.getWidth() - player.getWidth()) {
player.setX(gs.getWidth() - player.getWidth());
}
if(player.getY() < 0) {
player.setY(0);
}
if(player.getY() > gs.getHeight() - player.getHeight()) {
player.setY(gs.getHeight() - player.getHeight());
}
for(Entity entity : entityList) {
entity.moveX(deltaTime);
entity.moveY(deltaTime);
entity.setDirectionX(1);
if(entity.equals(player)) {
player.setDirectionX(0);
player.setDirectionY(0);
}
if(entity.getX() < 0){
entity.setX(0);
}
if(entity.getX() > gs.getWidth() - entity.getWidth()) {
entity.setX(gs.getWidth() - entity.getWidth());
}
if(entity.getY() < 0) {
entity.setY(0);
}
if(entity.getY() > gs.getHeight() - entity.getHeight()) {
entity.setY(gs.getHeight() - player.getHeight());
}
}
player.moveX(deltaTime);
player.moveY(deltaTime);
}
Я не хочу, чтобы мои сущности имели случайное направление вместо одного статического.