首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >游戏平台

游戏平台
EN

Stack Overflow用户
提问于 2017-03-27 20:10:43
回答 1查看 75关注 0票数 1

我只在unity和Game maker上工作了两个月,所以我真的不太擅长。我有个小问题。我有一个与主要角色发生冲突的平台,现在可以工作了。但是如果我想添加两个或更多的平台,游戏就会变得糟糕。我现在在Game Maker Studio工作。

代码语言:javascript
复制
    //React to inputs
move = key_left + key_right;
hsp = move * movespeed;
if (vsp < 10) vsp += grav;

if (place_meeting(x,y+1,obj_platform) || place_meeting(x,y+1,obj_platform1)){
    vsp = key_jump * -jumpspeed;
}

//Horizontal collision
if (place_meeting(x+hsp,y,obj_platform) || place_meeting(x+hsp,y,obj_platform1)){
    while (!place_meeting(x+sign(hsp),y,obj_platform ) || place_meeting(x+sign(hsp),y,obj_platform1)){
        x += sign(hsp);
    }
    hsp = 0;
}
x += hsp;

//Vertical collision
if (place_meeting(x,y+vsp,obj_platform) || place_meeting(x,y+vsp,obj_platform1)){
    while (!place_meeting(x,y+sign(vsp),obj_platform ) || place_meeting(x,y+sign(vsp),obj_platform1)){
        y += sign(vsp);
    }
    vsp = 0;
}
y += vsp;

//Diagonal collision
if(place_meeting(x+hsp, y+vsp, obj_platform ) || place_meeting(x+hsp,y+vsp,obj_platform1)){
    while(!place_meeting(x+sign(hsp), y + sign(vsp),obj_platform ) || place_meeting(x+sign(hsp), y + sign(vsp),obj_platform1)){
        x+= sign(hsp);
        y+= sign(vsp);
    }
    hsp = 0;
    vsp = 0;
}

我没有看到我正在犯的错误,平台的工作方式应该是这样的,但是如果你跳到platform1上,整个游戏就会变得糟糕。

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2017-03-27 21:53:35

它很可能卡在while循环中。Sign函数返回1表示正数,-1表示负数,0表示0。

如果Game Maker有日志记录功能,或者某种类型的控制台输出,那么在while循环中编写一些东西。或者,如果它不尝试这样的东西:

代码语言:javascript
复制
counter = 0;
while(!place_meeting(x+sign(hsp), y + sign(vsp),obj_platform ) || place_meeting(x+sign(hsp), y + sign(vsp),obj_platform1)){
    counter+= 1;
    x+= sign(hsp);
    y+= sign(vsp);
    if (counter>100){
        //do something visible, for example teleport player.
    }
}

我知道这不是非常有效的方法,但作为GM,我记得在调试方面总是很糟糕的IDE。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43046070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档