私が現在使用しているコレクション検出方法は、衝突を解釈できますが、方向によっては奇妙な効果を引き起こします。そうなる:
- プレイヤーがオブジェクトの右側を叩いている場合は常に機能します。
- プレーヤーがオブジェクトの上部または下部にぶつかっている場合は、プレーヤーを横に押します。
- プレイヤーがオブジェクトの左側にぶつかった場合に初めて機能しますが、次に左側で衝突が検出されたときにプレイヤーをオブジェクトの反対側にテレポートします。
これは現在の衝突検出コードです:
if(player.playerBounds.intersects(portal.bounds)&&player.isMovingLeft){
player.playerX=(portal.x+portal.width);
player.playerX++;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingRight){
player.playerX=(portal.x-player.width);
player.playerX--;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingUp){
player.playerY=(portal.y+portal.height);
player.playerY--;
}
else if(player.playerBounds.intersects(portal.bounds)&&player.isMovingDown){
player.playerY=(portal.y+player.height);
player.playerY++;
}