簡體   English   中英

物理,像車一樣轉

[英]Physics, turn like a car

我很難讓花栗鼠物理引擎完成我想要的工作。 似乎可行的唯一解決方案需要一些繁重的向量數學運算。 在進入游戲其他部分的兔子洞之前,我希望有人可以為我提供更好的解決方案。 所需的游戲玩法如下:

  • 角色在自頂向下的視圖中在有限空間內移動
  • 在角色面對的任何方向上移動始終是恆定速度
  • 玩家點擊屏幕,這會使角色“轉向”到觸摸的位置

基本思想就像開車。 您不能立即轉身,而必須先掉頭。 那輛車也必須保持恆定的速度。 我該怎么辦? 額外的問題:如何覆蓋花栗鼠調用的任何方法來更新身體的位置,這是一個好主意嗎?

本教程包含有關如何使用特殊配置的關節進行自上而下控制的教程: http : //chipmunk-physics.net/tutorials/ChipmunkTileDemo/

它基於Chipmunk Pro,但是有關控制角色的內容很容易適應香草Chipmunk。 如果您想查看一些C代碼,則非Pro Chipmunk源代碼附帶的“ Tank”演示程序實現的功能幾乎相同。

基本上,您希望逐漸改變播放器的方向。 您可以以恆定的速率執行此操作,因此當您點擊屏幕時,它將開始以恆定的速率旋轉,直到達到正確的方向為止。 這將給出一個圓形的轉彎圓。 但是,這將影響您的位置,因此您必須繼續轉彎,直到您與所輕拍的位置發生碰撞。 您要走的路徑與Achtung die kurve游戲的路徑類似。

因此,您必須保存播放器的位置和方向(x,y和phi坐標)。 並確定是否停止轉彎,您可以執行以下操作:

dx = playerx - tapx;
dy = playery - tapy;
targetAngle = atan2(dy,dx);
if (phi > targetAngle)
    {
    if (phi - targetAngle > PI) omega = rotate;
    else omega = -rotate;
    }
else if (phi < targetAngle)
    {
    if (targetAngle - phi > PI) omega = -rotate;
    else omega = rotate;
    }
else omega = 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM