Четверг, 14 Ноября 2024, 11:30

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Приоритетная очередь и приоритет id объектов.
ИнтернетДата: Понедельник, 28 Марта 2016, 11:14 | Сообщение # 1
постоянный участник
Сейчас нет на сайте
Проблема такая. Есть один спрайт с 8 image, нужно чтобы экземпляры объекта с этим спрайтом, в зависимости от приоритета своего id, ставили нужный image_index.
Делаю так.
В Create объекта.
Код
global.os_yrov=ds_priority_create()//создаём приор. очередь
ds_priority_add(global.os_yrov,other.id,other.id)// записываем id объекта и ставим приоритет id
alarm[0]=10 //отсчитываем 10 единиц до записи всех id экземпляров в приор. очередь

В alarm[0]
Код
nomer=ds_priority_delete_min(global.os_yrov)//записываем наименьший id в переменную nomer и из очереди его удаляем
alarm[0]=5

В Step
Дальше я не знаю как сделать :(
Например мы записали такие id (10000,10001,10002,10003) nomer=10000 (наименьшему)
теперь нужно nomer.image_index =1
потом этот id из списка удалить и уже (10001,10002,10003) nomer=10001 (наименьшему)
и nomer.image_index =2 и т.д, но почему то так не работает.
:'(

Добавлено (28 марта 2016, 11:14)
---------------------------------------------
Что не кто не знает?

Сообщение отредактировал Интернет - Понедельник, 28 Марта 2016, 09:42
LuxorixДата: Понедельник, 28 Марта 2016, 11:55 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
id может быть и 100024 и вообще не обязательно идти по порядку. Поэтому если у тебя 8 спрайтов, то просто заведи переменную глобальную global.img_index=0 и прибавляй к ней каждый раз единицу, когда удаляешь из очереди id. А значение ее приравнивай вот так nomer.image_index=global.img_index

LUXORIX GAMES
ИнтернетДата: Понедельник, 28 Марта 2016, 18:02 | Сообщение # 3
постоянный участник
Сейчас нет на сайте
В том то и проблема, что очерёдность важна, этот объект прндставляет собой выбор уровней (1 image= 1 уровень т.д по 8 image =8 уровень)
Raven84Дата: Понедельник, 28 Марта 2016, 18:48 | Сообщение # 4
старожил
Сейчас нет на сайте
Интернет,
Цитата
В том то и проблема, что очерёдность важна, этот объект прндставляет собой выбор уровней

Не совсем понял о чем ты, но кажется мне, что ты слишком мудришь и все можно сделать гораздо проще. Можешь попроще и поточнее описать проблему?

Добавлено (28 марта 2016, 18:47)
---------------------------------------------
Зачем выбор уровня по id определять? Гораздо проще может по координатам? Хотя и это не лучший вариант, но он гораздо проще!
Я так понимаю у тебя несколько объектов на экране, которые обозначают уровни, т.е. на каждом объекте различные спрайты изображений (которые в свою очередь обозначают уровни)?

Добавлено (28 марта 2016, 18:48)
---------------------------------------------
Если так, то может instance_position лучше использовать к примеру?


Super Knight Story (в разработке)
Idolzzz - игра доступна в Steam и Play Market
Oliver's Adventures in the Fairyland
ИнтернетДата: Понедельник, 28 Марта 2016, 22:46 | Сообщение # 5
постоянный участник
Сейчас нет на сайте
Цитата Raven84 ()
Можешь попроще и поточнее описать проблему?

Есть 1 объект А, ставлю в комнату 8 экземпляров объекта А. (это делаю чтобы не создавать объекты А Б В Г и т.д)
Так вот я хочу чтобы каждый, начиная с первого экземпляра, получил свой image_index, чтобы потом из объекта А руководить уровнями в зависимости какой стоит image.


Добавлено (28 марта 2016, 22:46)
---------------------------------------------
Сделал так.
В Create.
Код
image_speed=0
global.slow=ds_priority_create()
alarm[0]=2
global.img_index=0
images=0

В Step
Код
images=ds_priority_delete_min(global.slow)
global.img_index+=1
images.image_index=global.img_index

В alarm[0]
Код
ds_priority_add(global.slow,other.id,other.id)

Всё тему можно закрывать разобрался изменил в Create global.img_index=-1


Сообщение отредактировал Интернет - Понедельник, 28 Марта 2016, 22:51
  • Страница 1 из 1
  • 1
Поиск:

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