Суббота, 20 Апреля 2024, 02:08

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Очередь
Очередь
KrososДата: Понедельник, 08 Июля 2013, 17:49 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Долго я себе голову ломал , но так и не удалось решить одну проблему.=(

Проблема заключается в том , что когда родитель одновременно заносит два любых значения в список или в очередь или куда-угодно , то заносится всегда только одно число , а второе выбрасывается.
Как можно решить эту проблему?

Например:

Код
if UnitSpeed[O]>=100 and global.Phase1=1 //При некоторых условиях...
{
global.Phase1=0
ds_queue_enqueue(global.turn2,O)  //Число или несколько чисел заносится в очередь , но заносится только одно
}





Мой проект


Сообщение отредактировал Krosos - Понедельник, 08 Июля 2013, 17:51
USeR14Дата: Понедельник, 08 Июля 2013, 19:10 | Сообщение # 2
RUSOriginal Studio
Сейчас нет на сайте
Хм, попробуй оформить как список ds_list. Посмотри заодно пример.



KrososДата: Понедельник, 08 Июля 2013, 22:07 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
Да , но мне нужно остановить набор готовности , чтобы один объект походил , потом начал ходить другой , в случае когда готовность у них одинаковая.
В результате один объект (Тот который ходит раньше) обгоняет первый , сначала на 1 пункт , потом на 2 и т.д.
Вот такая проблема выходит ,и никак не удается решить=(
Код

if UnitSpeed[O]>=100 {
global.Phase1=0
UnitSpeed[O]-=100
ds_queue_enqueue(global.turn2,O)
}

Если поставить так , то юнит потеряет скорость , но в список не попадет.
Если не поставить UnitSpeed[O]-=100 то юнит попадет в него бесконечное количество раз.
Если поставить выше условие попадания , то попадет один , второй , третий , но начнет появляется разрыв в UnitSpeed[O] между ними , который постоянно будет увеличиваться.

Добавлено (08.07.2013, 21:38)
---------------------------------------------
вот тут кроется корень зла :
if global.Unit[O]=0 and global.Phase1=1
{
UnitSpeed[O]+=D
}
Еще не все юниты со 100 ин. походили , а он уже добавляет инициативу тем , кто еще не походил , а тем кто еще ожидает хода инициативы не получают.

Добавлено (08.07.2013, 22:07)
---------------------------------------------
Все я исправил=) Спасибо за помощь!
Я сделал так:


И теперь этой проблемы больше нету=)





Мой проект


Сообщение отредактировал Krosos - Понедельник, 08 Июля 2013, 21:39
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Очередь
  • Страница 1 из 1
  • 1
Поиск:

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