我尝试了多种方法来确保跳跃顺利。但每次我只是被传送而不是平滑跳跃:/
我尝试使用重复,但没有改变任何东西。我添加了 yvel 但这也没有帮助。
这是我使用的脚本(针对平台)
var xvel = 0;
var yvel = 0;
if (keyboard_check(vk_left)) {
xvel = xvel - 5;
}
if (keyboard_check(vk_right)) {
xvel = xvel + 5;
}
if (!keyboard_check(vk_space)) {
if (!place_meeting(x, y, obj_wall)) {
yvel = yvel + 4;
}
}else {
if (place_meeting(x, y + 3, obj_wall)) {
yvel = yvel - 5;
}
}
x += xvel;
y += yvel;
if (yvel >= 0) {
yvel = yvel - 1;
}else {
yvel = yvel + 1;
}
if (xvel >= 0) {
xvel = xvel - 1;
}else {
xvel = xvel + 1;
}
我假设这一切都在Step Event中,所以你应该把这部分放在Create Event中,并删除
var
关键字,这使得变量对于对象来说是持久的,并且Create Event只会被执行开始时一次:
var xvel = 0;
var yvel = 0;
还有其他想法,例如重力变量和不同速度的碰撞检查(着陆回地面),但这太详细了。我建议使用教程,因为平台碰撞是一件很难陷入的事情。