我在一个无尽的跑步者面前摆着尖刺。此外,如果我跳得更高,但仍然超过秒杀,它给我更少的积分。我该如何解决这个问题?
我有这个代码(在尖峰步骤事件中),它允许每当我跳过它时给我分数但是当我只需要1分时它给我13分。
if(collision_line(x, y, x, 0, obj_player, false, true)){
score += 1;
}
答案 0 :(得分:2)
有很多方法可以做,但最简单的方法是不改变你的代码:
if(noPointsYet && collision_line(x, y, x, 0, obj_player, false, true)){
score ++;
noPointsYet = true;
}
不要忘记在创建活动中设置noPointsYet = false;
。
当然还有更好的方法,例如将尖峰x-pos放入数组/队列并检查你是否已经使用上面正确的y-pos传递它,检查使用instance_place,获取ID并检查你是否已经过去等等。 / p>
答案 1 :(得分:2)
你要做的是创建一个绿线的精灵,这是你房间的高度。 然后创建一个新对象并取消选中“Visible”框,将其命名为您喜欢的游戏。在spike对象的create事件中,您执行以下代码:
spike_line = instance_create(Your line object name here)
spike_line.x = obj_spike.x; // obj_spike is the name of your spike object
希望它有效。 如果您发现任何错误,请发表评论。
答案 2 :(得分:0)
这可能发生了,因为玩家已经超过了13个步骤的峰值,因此得到了13分。
如果我是你,我会创建一个隐藏的物体(一条长长的黑线),然后在与钉子相同的地方产生它们。然后如果玩家与它发生碰撞,你会给出1点并摧毁不可见的线。