私は、あなたが弾丸とそのマルチプレイヤーなどを発射する単純な円であるゲームに取り組んでいます。イメージを「境界」にする
public void checkCollisions(){
Rectangle r1 = bo.getBounds();
Rectangle d = p.getBounds();
if (d.intersects(r1))
border = true;
}
そして、基本的に国境= trueの場合、私は動いてから文字を停止:まあ、私はuが私はこのような衝突検出を試みたが通過する必要があること、ソートの迷路型のもののような境界を作るしようとしています。私はこれを行うときに2つの問題があります。
- 本当に遅くなりません。
- 彼は国境からでも本当に遅い状態にとどまっています。
私はこのような境界線を使用します。
boolean border = false;
はその後、私の塗装方法では、私はこれを述べる:
if (border)
p.dx = 0;
p.dy = 0;
pはガイクラスを表す:DXとDYのP の詳細:
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;
とkeyReleased i just chang Eも男はどのように移動するかのために0 にDXとDYの値は:
public void move() {
x = x + dx;
y = y + dy;
}
私はこれが動作しない理由を把握助けてください。
あなたは 'border'を使用する場所を表示できますか? –
私はちょうどそれを編集しました。その真偽値ですが、それが偽であれば何も起こりませんが、それが真実であれば、私はその男が動くのを止めます。 –
あなたはもっと見る必要があります。 checkCollisionsはパラメータを取り、ブール値を返しますか? –