さて、私はJavaの学習を始めたばかりです(私は通常Objective-Cでプログラムします)。私の最初のゲームはポケモンに似たゲームですが、明らかにもっと単純化されています...
私が抱えている問題は、2つのスプライトが互いに「ゴースティング」するのを防ぐ方法が見つからないことです。画面には、境界線(境界線)、プレーヤースプライト、および敵スプライトが設定されています。
public void playerUpdate(GameContainer gc, int delta) throws SlickException
{
Input input = gc.getInput();
// Right Key Pressed
if (input.isKeyDown(Input.KEY_RIGHT) && (leftKeyPressed == false)
&& (upKeyPressed == false) && (downKeyPressed == false))
{
player = walkRight;
playerX += speed * delta;
rightKeyPressed = true;
if (playerX >= Main.getWindowWidth() - pImageWidth)
{
playerX -= speed * delta;
}
} else if (rightKeyPressed == true)
{
player = standRight;
rightKeyPressed = false;
}
^^ここで衝突検出を実装する必要があります。衝突検出のために各画像に長方形を追加しましたが、長方形を非表示にする方法はありません。あるスプライトが別のスプライトを通り抜けるのを防ぐ方法が必要です。
何か案は?
使ってみました
if (this.playerBoundingBox.intersects(Enemy.getEnemyBoundingBox())
{
playerX += speed * delta;
}
ただし、これを実装すると、プレーヤーがスタックし、解放できなくなります。
みんなありがとう