Студия производителя игр place_meeting

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

Проблема в том, что очков выпадает иногда один или семь. Есть идеи для алгоритмов? Благодарю вас!


person Raphael    schedule 06.09.2016    source источник
comment
Ваш вопрос расплывчатый и лишен контекста. Пожалуйста, измените его, чтобы нам было ясно, что вы хотите сделать, какой результат вы ожидаете... и что вы получаете взамен.   -  person user919426    schedule 06.09.2016
comment
Чтобы улучшить ответы, которые вы получаете на свои вопросы, подумайте о том, чтобы опубликовать минимальный, полный и проверяемый пример, подсветка синтаксиса, чтобы ваш вопрос был понятен в заголовке,добавление необходимых тегов... и переходите к часто задаваемым вопросам для получения дополнительной информации   -  person user919426    schedule 06.09.2016


Ответы (1)


вы используете это в событии шага, поэтому оно вызывает действие один или семь раз, если вы все еще сталкиваетесь на семи шагах

один из способов - использовать таймер или переменную

Итак: это метод, использующий переменную

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
person Heavybrush    schedule 06.09.2016