【发布时间】:2015-11-24 04:35:42
【问题描述】:
我有一个生成敌人的类和一个生成玩家的类。此刻,他们都是两个互相靠近的圆圈。我已经为它们崩溃时做了碰撞检测功能,但我无法让它工作。我已经在类之外创建了函数并尝试调用每个类的位置变量,但它说我不能对非静态字段进行静态引用。我还尝试了每个类中的碰撞检测,但也不起作用。
class Player {
int Pos_X;
int Pos_Y;
int Speed;
Player(int x, int y, int speed) {
this.Pos_X = x;
this.Pos_Y = y;
this.Speed = speed;
}
void Update() {
ellipse(Pos_X, Pos_Y, 40, 40);
Pos_X += Speed;
}
}
class Enemy {
int Pos_X;
int Pos_Y;
int Speed;
Enemy(int x, int y, int speed) {
this.Pos_X = x;
this.Pos_Y = y;
this.Speed = speed;
}
void Update() {
ellipse(Pos_X, Pos_Y, 40, 40);
Pos_X -= Speed;
}
}
Player Player1;
Enemy Enemy1;
void setup() {
size (500, 500);
Player1 = new Player (0, 200, 3);
Enemy1 = new Enemy (500, 200, 3);
}
void draw() {
background(200);
Player1.Update();
Enemy1.Update();
if (intersectsBox(Player.Pos_X, Player.Pos_Y)) {
ellipse(100, 100, 100, 100);
}
}
boolean intersectsBox(float X, float Y) {
if (X > Enemy.Pos_X && X < Enemy.Pos_X + 40) {
if (Y > Enemy.Pos_Y && Y < Enemy.Pos_Y + 40) {
return true;
}
}
}
【问题讨论】:
-
请格式化代码并创建MCVE
-
intersectsBox() 中缺少“return false”语句。
标签: java processing