请教贴,圆周运动的问题
gamemaker吧
全部回复
仅看楼主
level 13
Venus🔥
楼主
我想让着四个圆围绕着圆心转动,但是我一旦打开游戏,虽然说确实围绕着圆心转动,但是这是个圆会重合成一个,而不会按原始位置绕圆心转动,请求大佬看看一下代码哪里出问题了,怎么改动。
create:
orbit=200
center_x=obj.x
center_y=obj.y
alarm[6]=1
aa=10
alarm[6]:
direction+=aa
x=lengthdir_x(orbit,direction)+center_x
y=lengthdir_y(orbit,direction)+center_y
alarm[6]=1
2022年06月19日 14点06分
1
level 10
zzfuns🌱
圆方程呢?
2022年06月19日 14点06分
2
Venus🔥
我没用那个法,我用的lengthdir_这个函数,这个也可以绕圆心转,但是这四个点会重合的
2022年06月19日 15点06分
level 15
sunyubokkkkk
Create加一句direction=point_direction(obj.x,obj.y,x,y);
否则4个点的direction都是从0开始,以一样的速度运动,凭什么不重合呢
2022年06月19日 23点06分
3
Venus🔥
确实解决了前面的问题了,但是又出了个新问题,那就是当alarm[6]开始执行时,会出现那四个红点会向中心都缩一段距离才开始转,也就是都向中心靠近一下。这是不是lengthdir函数的事啊?该怎么解决这种情况呢?
2022年06月20日 04点06分
Venus🔥
再补充一点,这次orbit我不是用200表示了,而是换成了红点到中心的距离,也就是orbit=distance_object(obj)
2022年06月20日 05点06分
sunyubokkkkk
@Venus🔥
distance_object函数求的是包含碰撞遮罩的最短距离,不是中心点的距离。因此你应该能发现缩的这一段距离差不多等于四个红点的sprite半径。要取中心点距离,用point_distance函数。
2022年06月20日 11点06分
Venus🔥
@sunyubokkkkk
感谢,我说呢,怎么会往里缩一点,大佬果然厉害。
2022年06月20日 12点06分
level 13
Venus🔥
楼主
已解决
2022年06月20日 12点06分
4
level 1
贴吧用户_abMZ393
Ys6 手游sf玩不玩
2022年08月11日 18点08分
5
1