Я пытаюсь сделать Space Invaders в обработке.В настоящее время я работаю над тем, чтобы заставить врага двигаться правильно.Я заставил их быть нарисованными в правильном месте, но я не заставил их правильно двигаться.Вот мой код:
PImage mainPlayer;
PImage enemyPlayer;
float Xspeed = 60;
float Yspeed = 60;
float X;
float Y;
Enemy EnemyPlayer = new Enemy("EnemyPlayerSpaceInvaders.png", 10, 10, 6);
void setup() {
size(1400, 800);
//enemyPlayer = loadImage("EnemyPlayerSpaceInvaders.png");
mainPlayer = loadImage("MainPlayerSpaceInvaders.png");
}
void draw() {
background(0);
Enemy[] enemyPlayer = new Enemy[60];
for (int i = 0; i < 5; i += 1) {
for (int j = 0; j < 11; j += 1) {
enemyPlayer[j *i] = new Enemy("EnemyPlayerSpaceInvaders.png", 50 + j * 100, 5 + 75 * i, 6);
}
}
for (int i = 0; i < 5; i += 1) {
for (int j = 0; j < 11; j += 1) {
if(enemyPlayer[j * i].alive){
enemyPlayer[j * i].Draw();
}
enemyPlayer[j *i].moveAndDraw(6);
}
}
}
class Enemy {
boolean alive = true;
float x;
float y;
float speed;
String playerTexFile;
PImage playerTex;
Enemy(String PlayerTexFile, float X, float Y, float Speed){
x = X;
y = Y;
speed = Speed;
playerTexFile = PlayerTexFile;
}
void Draw(){
playerTex = loadImage(playerTexFile);
image(playerTex, x, y);
}
void moveAndDraw(float Speed){
playerTex = loadImage(playerTexFile);
if(alive){
x += Speed;
if (x >= 1300) {
x = 100;
y += 50;
}
}
}
}
Вот мой результат:
Функция Draw работает, но вы видите, что это портитфункция moveAndDraw()
.
И вражеские рисунки не двигаются.Я делал это раньше с c ++ SFML, но в этом есть очень простая функция getPosition.Причина, по которой я хочу получить позицию, состоит в том, что сейчас я должен использовать неточные числа в качестве позиции X и Y, и для того, чтобы противник правильно двигался, мне нужно точно знать, какая это позиция.Я проверил несколько страниц на processing.org, но ни одна из них не помогла.Я не нашел ни одного getPosition, а все те, что я видел, использовали другие люди, чтобы сделать это, но я просто не смог заставить его работать.Если есть какой-нибудь код, который мог бы заставить меня это работать, или просто какая-то функция, которую я просмотрел, и даже страница веб-сайта, на которую я мог бы посмотреть, я был бы открыт для этого.Пожалуйста, скажите мне, что я могу сделать, чтобы это сработало.