如何让我的跳跃更加流畅,而不是用游戏制作者语言进行传送/捕捉

问题描述 投票:0回答:1

我尝试了多种方法来确保跳跃顺利。但每次我只是被传送而不是平滑跳跃:/

我尝试使用重复,但没有改变任何东西。我添加了 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;
}
2d velocity gml
1个回答
0
投票

我假设这一切都在Step Event中,所以你应该把这部分放在Create Event中,并删除

var
关键字,这使得变量对于对象来说是持久的,并且Create Event只会被执行开始时一次:

var xvel = 0;
var yvel = 0;

还有其他想法,例如重力变量和不同速度的碰撞检查(着陆回地面),但这太详细了。我建议使用教程,因为平台碰撞是一件很难陷入的事情。

© www.soinside.com 2019 - 2024. All rights reserved.