游戏制作工作室 place_meeting

Game maker studio place_meeting

//obj 1 has that:
if (place_meeting(x,y, obj_nomatter)){
 global.points -= 1;
 moveawayfromobj_nomatter();
 // obj 1 rotates.
}

问题是分数有时会下降一或七。 对算法有什么想法吗?谢谢!

您正在步进事件中使用它 所以如果你仍然碰撞七步,它会调用该动作一到七次

一种方法是使用计时器或变量

所以: 这是使用变量

的方法
var ones = false;
if(!ones) {
  if(place_meeting(x,y,obj_nomatter)) {
    global.points -= 1; 
    ones = true;
  }
}

这是使用定时器的方法

step event:
if(place_meeting(x,y,obj_nomatter)) {alarm[0] = room_speed;} 
//to use the room_speed, 30 for default (a second)

alarm[0]:
global.points -= 1;

//with this method if you collide more than room_speed global.points keeps going down