2011-10-13 20 views
0

我想提出一個2D Java小遊戲,我試圖找出如何添加基本的「萬有引力」Java 2D引力?

我當前的代碼是這樣的:

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)) { 

      player.yspeed = 0; 

     } else { 
      player.yspeed = 1; 
     } 
    } 

出於某種原因,我的代碼只是直接通過變即使它正在接觸牆壁。我想讓它撞到牆上,如果它下面有一個,如果沒有,然後繼續下降。

回答

2

你正在遍歷所有的牆壁。如果相交的牆不是列表中的最後一面牆,後續牆可能會將您的速度重置爲1.檢測到交叉點時打破循環。具體來說:

if(player_rectangle.intersects(wall_rectangle)) { 
    player.yspeed = 0; 
    break; 
+0

當然,非常感謝! –