以下是Dash能力的代码。持续时间在每一步事件中减少。
case "dash":
//------------------OOOOOOOOOOOOOOO
speed = dash_speed
if (dash_duration <= 0) {
speed = 0
movement_lock = false
state = "walk"
}
break;
我的普通移动是由move_and_colide处理的,所以我没有移动相关的问题。但是我的Dash能力只是速度,导致碰撞问题。我尝试了以下代码:
if (place_meeting(x, y, Owall)) {
x = xprevious
y = yprevious
}
但这并没有解决问题,Dash能力仍然会碰撞到墙壁。
我还尝试了以下代码:
x = xprevious
y = yprevious
将其放入与墙壁的碰撞事件中,但这只会在Dash能力停止一段距离之前停止,非常烦人。
我希望能够得到更好的碰撞系统的帮助。
评论 (0)