即時通訊開發一個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));
會發生什麼事是玩家擊中當矩形牆壁與速度一樣進入牆壁,然後被推回到牆壁之外的速度。這導致角色只要來到牆上並按住鍵,就會來回移動模糊的動作。
有沒有我可以用來解決這個問題的算法?或不同的方法?
上的字符的矩形是這樣的:
任何幫助將不勝感激。我真的想解決這個問題
感謝
嗯..當彈出牆壁時,爲什麼不把速度設置爲零? – JustJeff 2012-04-20 01:39:29
我該怎麼做? – grimrader22 2012-04-20 01:48:30