Помощь в разработке простой игры на JavaFX (Xonix)

179
29 марта 2018, 08:53

Всем привет. Нужна помощь в создании игры. Хочу сделать игру 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 ЭТО ВИДЕО С ГЕЙМПЛЕЕМ

READ ALSO
Сортировка по двум параметрам(Java)

Сортировка по двум параметрам(Java)

Здравствуйте, cтолкнулся с такой проблемой, что надо отсортировать ArrayList по двум параметрам, по имени владельца и по цене комнаты

172
Как ограничить доступ к файлу

Как ограничить доступ к файлу

Добрый деньПотратил полтора дня на то, чтобы найти способ создать файл так, чтобы к нему не имел доступа пользователь ну или имел, но разобрать...

120
Как создать функционал EditText и TextView в одном поле?

Как создать функционал EditText и TextView в одном поле?

Требуется следующее - пользователь видит строчку "Введите Вашу цель" нажимает на данную строчку, добавляет текст и по нажатию на кнопку "ок"...

146
Развернуть Grails wat на Tomcat 9

Развернуть Grails wat на Tomcat 9

голос «против» Помогите развернуть Grails на TomcatЯ с помощью idea создал простое grails приложение, добавил один контроллер и сделал war с помощью команды...

163