Re: [請益] 請教簡單的座標問題
看板GameDesign作者InitialPower (InitialPower)時間14年前 (2011/08/25 01:33)推噓1(1推 0噓 6→)留言7則, 3人參與討論串3/3 (看更多)
剛剛做出我的第二個疑問
所以來分享一下
就是已知angle,speed,要如何計算點移動量dx,dy
這個主要要做成以下的應用
當玩家按下螢幕上的某一點X2,Y2
就從玩家目前所在的位置X1,Y1
射出一顆子彈沿著(X1,Y1)至(X2,Y2)行走的子彈
然後有幾個前提
1.子彈沒有打中敵人的話,必須飛出螢幕之外
2.因為遊戲類型的關係,射擊角度只能限定在+-30度
3.子彈飛行的速度必須一致
所以想來想去,只能用角度來轉換成子彈的飛行路徑
因此我必須
1.先計算(X1,Y1)(X2,Y2)兩點間的角度
2.如果超過+-30度的話,強制設定角度為+30度或-30度
3.利用角度與子彈速度計算,X軸與Y軸的位移量
我的解決法是這樣的(in lua)
local dx = math.sin( math.rad( angle ) ) * speed;
local dy = math.cos( math.rad( angle ) ) * -speed;
bullet:setLinearVelocity( dx, dy );
這段程式碼可能會因為各語言座標軸或是其他功能需要更改
如果需要的人可以自行參考摟,多謝指教
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 112.105.100.157
推
08/25 01:43, , 1F
08/25 01:43, 1F
→
08/25 11:15, , 2F
08/25 11:15, 2F
→
08/25 11:16, , 3F
08/25 11:16, 3F
→
08/26 19:36, , 4F
08/26 19:36, 4F
→
08/26 19:37, , 5F
08/26 19:37, 5F
→
08/26 19:38, , 6F
08/26 19:38, 6F
→
08/26 19:38, , 7F
08/26 19:38, 7F
討論串 (同標題文章)
完整討論串 (本文為第 3 之 3 篇):
請益
1
4