我在游戏中,你是一个简单的循环,激发子弹和它的多人模式等工作。好吧,我努力使边界有点像,美不得不通过我已经试过这样的碰撞检测迷宫类型的事情:使图像成为“边界”
public void checkCollisions(){
Rectangle r1 = bo.getBounds();
Rectangle d = p.getBounds();
if (d.intersects(r1))
border = true;
}
而且基本上如果边界= true,那么我从移动停止的字符。我有两个问题,当我这样做,
- 他不停止只是真的很慢。
- 即使在边界以外,他仍然处于非常缓慢的状态。
我用边境这样的:
boolean border = false;
然后在我的paint方法我说明这一点:
if (border)
p.dx = 0;
p.dy = 0;
p代表盖伊类:P 更多dx和dy的:
public void keyPressed(KeyEvent e) {
int key = e.getKeyCode();
if (key == KeyEvent.VK_A)
dx = -2;
if (key == KeyEvent.VK_D)
dx = 2;
if (key == KeyEvent.VK_W)
dy = -2;
if (key == KeyEvent.VK_S)
dy = 2;
and for keyreleased i just chang Ëdx和dy的0 值也为家伙怎么移动:
public void move() {
x = x + dx;
y = y + dy;
}
请帮我弄清楚,为什么这是行不通的。
你可以显示你使用'border'的地方吗? –
我刚刚对它进行了编辑。它只是一个布尔值,如果它是假的,那么什么也没有发生,但是如果这是真的,我停止移动的人 –
你需要展现更多。而不应该checkCollisions带参数并返回一个布尔值? –