嗨我有一個關於這個另一篇文章剛剛死了,所以我想我會嘗試得到這方面的一些新答案。
我試圖讓我的碰撞檢測工作。碰撞檢測工作正常,當我走到地圖塊的旁邊時,罰款時我只能保持或停止並從頂部或底部打一個塊。但是當我站起來或者站在右邊或者左邊,並且從頂部或者底部碰到一個障礙物時,它會沿着有趣的方向走下去。
小視頻我演示(對不起,如果不清楚):http://www.youtube.com/watch?v=6ILccRtw8ME希望這可以幫助很多。
如果你沒看這裏的視頻的畫面地圖的我會用:
這是我目前的碰撞代碼:
public void checkCollision() {
Rectangle player_rectangle = new Rectangle(player.getX(),player.getY(),32,32);
for(Wall wall : walls) {
Rectangle wall_rectangle = new Rectangle(wall.getX(), wall.getY(), 32,32);
if (player_rectangle.intersects(wall_rectangle)) {
Rectangle intersection = (Rectangle) player_rectangle.createIntersection(wall_rectangle);
if (player.xspeed < 0 && player.x >= intersection.x) {
player.x += intersection.getWidth();
} else {
if (player.xspeed > 0 && player.x <= intersection.x) {
player.x -= intersection.getWidth();
} else {
if (player.yspeed < 0 && player.y >= intersection.y) {
player.y += intersection.getHeight();
}else {
if (player.yspeed > 0 && player.y <= intersection.y) {
player.y -= intersection.getHeight();
}
}
}
}
Print(Integer.toString(intersection.width) + ", " + Integer.toString(intersection.height));
}
}
}
所有幫助將不勝感激,謝謝。
是不是你問你的[舊的文章]同樣的問題(http://stackoverflow.com/questions/7763244/java-2d-collision)?如果是,請編輯和/或開始賞金最後一個問題,不要重新發布。如果不是,請詳細解釋問題。 – amit
爲有趣的視頻+1。塊扭曲ftw。 –
@ThomasJungblut你是什麼意思? :L –