Понедельник, 18 Ноября 2024, 03:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Два игрока
SirArCadeДата: Четверг, 23 Ноября 2017, 17:28 | Сообщение # 1
частый гость
Сейчас нет на сайте
Помогите пожалуйста с одной проблемой.

В общем, я делаю платформер. При нажатии на Alt появляется второй игрок с помощью объекта ob_spawn_clone. Уровень заканчивается, при взаимодействии с ob_end_LVL.

Код
/// ob_player2
//Step
if (place_meeting(x, y, ob_end_LVL) && keyboard_check_pressed(ord('S'))){
    global.win ++;
    instance_destroy();
}


Код
///ob_player
//Step
if (place_meeting(x, y, ob_end_LVL) && keyboard_check_pressed(ord('X'))){
    global.win ++;
    instance_destroy();
}


Код
if instance_number(ob_spawn_clone) = 1{
    if global.win = 1{
        if (instance_number(ob_player) = 0) && (instance_number(ob_player2) = 0){
            instance_create(0, 0, ob_menu);                
        }
    }
}
if instance_number(ob_spawn_clone) = 0{
    if global.win = 2{
        if (instance_number(ob_player) = 0) && (instance_number(ob_player2) = 0){
            instance_create(0, 0, ob_menu);
        }
    }
}


Проблема в том, что когда финиширует один игрок - всё нормально, появляется ob_menu и можно перейти на следующий уровень. А когда двое, то ob_menu начинает беспрерывно появляться.
Помогите. В чём ошибка?
ASH2Дата: Пятница, 24 Ноября 2017, 14:11 | Сообщение # 2
участник
Сейчас нет на сайте
Я не до конца понимаю весь смысл нижнего кода и где он находится, но видимо, необходимо сам алгоритм появления ob_menu запихнуть не в Step, а в Alarm, чтобы он срабатывал единожды. Ну, и активацию этого Alarm пихай в объекты игроков до их уничтожения

Карсон и Питееерс!!!
SirArCadeДата: Пятница, 24 Ноября 2017, 16:15 | Сообщение # 3
частый гость
Сейчас нет на сайте
ASH2, Спасибо. Теперь всё работает.

Сообщение отредактировал SirArCade - Пятница, 24 Ноября 2017, 16:23
ASH2Дата: Пятница, 24 Ноября 2017, 16:29 | Сообщение # 4
участник
Сейчас нет на сайте
SirArCade, ты знаешь, очень сложно понять какие подобные ньюансы тебе нужны, когда ты не описываешь их, да и в коде каких-то комментариев так же нет. Могу только догадываться, зачем проверка на ob_spawn_clone. Но в любом случае, я нигде не вижу из кода

Код
if instance_number(ob_spawn_clone) = 0{
    if global.win = 2{
        if (instance_number(ob_player) = 0) && (instance_number(ob_player2) = 0){
            instance_create(0, 0, ob_menu);
        }
    }
}


почему строчка instance_create(0, 0, ob_menu); может прекращать срабатывать

___
Окей, тогда не важно


Карсон и Питееерс!!!

Сообщение отредактировал ASH2 - Пятница, 24 Ноября 2017, 16:30
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг