2012-04-20 88 views
1

即時通訊開發一個java遊戲即時嘗試使用我的瓦片地圖進行碰撞檢測,但它不能工作,我不想如何操作。我在角色上做了4個長方形。一個在頂部,底部,左側和右側。矩形的寬度都是速度的2倍。Java遊戲 - 使用矩形的牆壁碰撞檢測

要檢查是否矩形在地磚上的矩形相交,我用這個代碼

if(LeftSide.intersects(Map.colRect[i])){ 
      MovingLeft = false; 
      x_pos+=vel; 

     } 

要定義我使用此代碼

LeftSide = new Rectangle(x_pos,y_pos+(vel*2),(vel*2),spriteHeight-1-(vel*4)); 
    RightSide = new Rectangle(x_pos+spriteWidth-1,y_pos+(vel*2),(vel*2),spriteHeight-(vel*4)-1); 
    UpSide = new Rectangle(x_pos+(vel*2),y_pos,spriteWidth-(vel*4)-1,(vel*2)); 
    DownSide = new Rectangle(x_pos+(vel*2),y_pos+spriteHeight-1,spriteWidth-(vel*4)-1,(vel*2)); 

會發生什麼事是玩家擊中當矩形牆壁與速度一樣進入牆壁,然後被推回到牆壁之外的速度。這導致角色只要來到牆上並按住鍵,就會來回移動模糊的動作。

有沒有我可以用來解決這個問題的算法?或不同的方法?

上的字符的矩形是這樣的:Rectangles

任何幫助將不勝感激。我真的想解決這個問題

感謝

+0

嗯..當彈出牆壁時,爲什麼不把速度設置爲零? – JustJeff 2012-04-20 01:39:29

+0

我該怎麼做? – grimrader22 2012-04-20 01:48:30

回答

2

你可能要建模彈性碰撞,討論here和說明here

+1

這是一個好主意,但我14歲,我不知道什麼意思:/ – grimrader22 2012-04-20 01:52:35

+0

我懷疑你應該看看使用遊戲API,它會爲你做這種類型的東西。它也將有助於解決一般幀速率和圖形繪製的(幾乎不可避免的)問題。遊戲開發是一個非常專業的領域,所以它不會很容易。 – 2012-04-20 01:57:06

+0

是否有任何API知道我應該使用?我已經知道slick2D這看起來不錯 – grimrader22 2012-04-20 01:58:56