簡體   English   中英

根據角度獲取x和y的運動

[英]Get x and y Movement Based On Angle, Sort Of

我知道如何正常進行此操作,假設向上是0度

X += Speed * Math.Cos(angle);

Y += speed * Math.Sin(angle);

但是,如果我假設向上實際上是270度,而右邊是0度,我不知道該怎么做。 (我使用的是Game Maker,他們決定將正確的角度設為0度而不是向上)

我將如何去做呢? 我可能會忽略一個簡單的解決方案,但是在數學方面我並不是最聰明的人。

X + =速度* Math.Cos((角度+ 270)%360);

那就是我會做的。 由於您將圖形逆時針旋轉270度。

角度調整

您所需要做的就是調整角度。 您將北測量為0 degrees此程序將北測量為270 degrees 要解決此問題,只需減去它們偏離的270 這樣的事情就足夠了:

# angle is the programs offset version (North=270)
# corrected_angle is your fixed version (North=0)

corrected_angle = angle-270; # mod by 360 if you it to be non-negative

X += Speed * Math.Cos(corrected_angle);

Y += speed * Math.Sin(corrected_angle);

[注意:如果(1,0)和(0,1)不在您期望的位置,那么您將需要調整的不僅僅是角度。 這也假設在程序中順時針旋轉時角度增加,並且在順時針旋轉時希望角度增加。 ]

如果您實際上使用的是GameMaker,則它們具有名為lengthdir_x和lengthdir_y的函數,它們可以完全滿足您的要求(以大小和角度(以度為單位)查找長度)。

暫無
暫無

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

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