Всем привет. Нужна помощь в создании игры. Хочу сделать игру Xonix. Есть класс с "персонажем". Теперь есть потребность в том, что нужно сделать движок. Суть игры в том, что есть поле. В этом поле есть 2 врага, которые двигаются от грани до грани. Есть игрок. И игроку нужно обрезать часть этого поля так, чтобы на путь игрока не попали враги (аналогия со змейкой, нельзя касаться своего пути, только здесь враги не должны тронуть твой путь). Теперь проблема в том, что нет идей, как реализовать вот это "вырезание" поля.
А это код персонажа (обычный квадратик).
public static class GameUnit extends Rectangle implements EventHandler<KeyEvent> {
public GameUnit(double x, double y, double width, double height) {
super(x, y, width, height);
}
private void checkInitBehavior() {
if (behavior == null) {
behavior = new GameUnitBehavior();
new Thread(behavior).start();
}
}
private GameUnitBehavior behavior;
@Override
public void handle(KeyEvent event) {
checkInitBehavior();
switch (event.getCode()) {
case LEFT:
behavior.moveToSide(Side.LEFT);
break;
case RIGHT:
behavior.moveToSide(Side.RIGHT);
break;
case UP:
behavior.moveToSide(Side.TOP);
break;
case DOWN:
behavior.moveToSide(Side.BOTTOM);
break;
}
}
private class GameUnitBehavior extends Task {
private boolean vertical = false;
private boolean positiv = false;
private double step = 10.0;
@Override
protected Object call() throws Exception {
while (getScene().getWindow().isShowing()) {
if (vertical) {
setX(getX() + (positiv ? step : -step));
} else {
setY(getY() + (positiv ? step : -step));
}
Thread.sleep(100);
}
return null;
}
public void moveToSide(Side side) {
vertical = side.isVertical();
positiv = side == (vertical ? Side.RIGHT : Side.BOTTOM);
}
}
https://www.youtube.com/watch?v=zJCbKPNEnF8 ЭТО ВИДЕО С ГЕЙМПЛЕЕМ
Сборка персонального компьютера от Artline: умный выбор для современных пользователей