Космические Захватчики Клон Движение и Логика Нереста - PullRequest
0 голосов
/ 10 января 2012

Я делаю клон космических захватчиков на Java. У меня небольшие проблемы с проработкой движения и порождения петли захватчиков. Я хочу, чтобы они появлялись, проверяли край экрана и имели базовое движение.

Я знаю, как заставить изображения двигаться, когда они являются просто отдельными объектами, но, очевидно, их будет больше, чем один. Я не хочу, чтобы каждый из них перемещался по отдельности, так как это могло бы привести к некоторому беспорядочному коду и сильно затормозить меня.

Это в основном группа изображений, загруженных в мой метод paintComponent(Graphics g). Так что, если есть базовый цикл, который может генерировать эти изображения и позволять мне перемещать их, как это было бы в оригинальных Space Invaders, это было бы здорово!

Пока я рисую захватчиков вот так:

g.drawImage(invaderGreen.draw(), 100, 100, this);
g.drawImage(invaderGreen.draw(), 100, 100, this);
g.drawImage(invaderGreen.draw(), 100, 100, this);
g.drawImage(invaderGreen.draw(), 100, 100, this);
g.drawImage(invaderGreen.draw(), 100, 100, this);
//etc etc.

(я знаю, что мне нужно изменить переменные X и Y, это всего лишь пример.)

1 Ответ

0 голосов
/ 13 сентября 2013

Храните ваши захватчики в списке или массиве.

List<InvaderGreen> invaders = new ArrayList<InvaderGreen>();
...

//spawn intial game state
invaders.add(new InvaderGreen(...)); //Hint: loop if you are creating 1+

Затем обновите состояние игры и нарисуйте экран, используя цикл:

for (InvaderGreen oneInvader : invaders){
    oneInvader.move(); // let every invader calculate its new position
    oneInvader.drawSelf(graphics); //let every invader draw itself using Graphics g
} 

Возможно, вы захотите создать какой-нибудь объект GameState и передать его в метод move: oneInvader.move(gamestate);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...