Вторник, 16 Августа 2022, 21:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Элементы интерфейса в гм-приложениях (Сюда буду спрашивать все что касается интерфейса)
Элементы интерфейса в гм-приложениях
BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:01 | Сообщение # 1
почетный гость
Сейчас нет на сайте
Первый вопрос. Довольно долго ломаю голову и ничего не могу понять. Есть вот такой код, событие нажатия кнопки мыши:

dropmenu=!dropmenu

if dropmenu=true
{
file_new=instance_create(x,y+sprite_height,o_mainsubmenu_btn)
file_open=instance_create(x,file_new.y+sprite_height,o_mainsubmenu_btn)
file_save=instance_create(x,file_open.y+sprite_height,o_mainsubmenu_btn)
sprite_index=s_mainmenu_btn_hover
}
else
{
with (file_new) instance_destroy()
with (file_open) instance_destroy()
with (file_save) instance_destroy()
}

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

NeZnayuДата: Воскресенье, 13 Марта 2011, 15:07 | Сообщение # 2
__танцуй!__
Сейчас нет на сайте
Quote (BornInUSSR)
dropmenu=!dropmenu

Раньше никогда не встречал такую формулировку, может дело в ней?


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
VinchensooДата: Воскресенье, 13 Марта 2011, 15:07 | Сообщение # 3
Злобный социопат с комплексом Бога
Сейчас нет на сайте
BornInUSSR, потому что не глобальные.

Напиши globalvar где-нибудь

NeZnayu, по идее, это инверсия для булета=)


QvantДата: Воскресенье, 13 Марта 2011, 15:13 | Сообщение # 4
почти ветеран
Сейчас нет на сайте
!=
ezhickovichДата: Воскресенье, 13 Марта 2011, 15:13 | Сообщение # 5
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Vinchensoo)
по идее, это инверсия для булета=)

По крайней мере так в C++...



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
VinchensooДата: Воскресенье, 13 Марта 2011, 15:14 | Сообщение # 6
Злобный социопат с комплексом Бога
Сейчас нет на сайте
Quote (Qvant)
!=

А это не равно в сравнении=)


BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:15 | Сообщение # 7
почетный гость
Сейчас нет на сайте
Quote (Vinchensoo)
потому что не глобальные.

Я к ним обращаюсь через айди обьекта, какая разница глобальные они или нет? Не пойму.
QvantДата: Воскресенье, 13 Марта 2011, 15:17 | Сообщение # 8
почти ветеран
Сейчас нет на сайте
Щас справку открою :

!: отрицание, преображает истину в ложь и наоборот (0 в 1, 1 в 0)

ezhickovichДата: Воскресенье, 13 Марта 2011, 15:19 | Сообщение # 9
[Великий и могучий хозяинъ]
Сейчас нет на сайте
Quote (Qvant)
отрицание, преображает истину в ложь и наоборот (0 в 1, 1 в 0)

И?



Я: О великий повелитель этой ничтожной вселенной - сокращённо ЁЖ!
BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:22 | Сообщение # 10
почетный гость
Сейчас нет на сайте
Quote (Qvant)
Щас справку открою :

!: отрицание, преображает истину в ложь и наоборот (0 в 1, 1 в 0)


Если переменная равна ложь - преобразовать ложь в истину.


Сообщение отредактировал BornInUSSR - Воскресенье, 13 Марта 2011, 15:25
QvantДата: Воскресенье, 13 Марта 2011, 15:22 | Сообщение # 11
почти ветеран
Сейчас нет на сайте
instance_create - это не создание объекта ! а установка ОБАЗЦА объекта в комнате.
В "креейте" объекта переменные задаются ?
BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:24 | Сообщение # 12
почетный гость
Сейчас нет на сайте
С этим выражением все так. Может дать еще код расстановки обьектов? И это... давайте по сабжу, а то я пропущу какой нибудь важный пост smile

Добавлено (13.03.2011, 15:24)
---------------------------------------------

Quote (Qvant)
В "креейте" объекта переменные задаются ?

Естественно.
QvantДата: Воскресенье, 13 Марта 2011, 15:28 | Сообщение # 13
почти ветеран
Сейчас нет на сайте
Тьфу сразу незаметил happy
with (file_new) instance_destroy() - неправильно !

instance_destroy() применяется к тому объекту в котором он вызван то есть уничтожается не file_new а dropmenu

BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:33 | Сообщение # 14
почетный гость
Сейчас нет на сайте
А оператор with тебе ничего не говорит? smile
dropmenu это переменная с булевым значением. Обьект называется mainmenu_btn и если бы он уничтожался, я бы это заметил, так как в нем достаточно событий рисования, которые в итоге пропали бы.


Сообщение отредактировал BornInUSSR - Воскресенье, 13 Марта 2011, 15:34
NeZnayuДата: Воскресенье, 13 Марта 2011, 15:36 | Сообщение # 15
__танцуй!__
Сейчас нет на сайте
BornInUSSR, а есть шанс глянуть исходник?

CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:39 | Сообщение # 16
почетный гость
Сейчас нет на сайте
Quote (NeZnayu)
BornInUSSR, а есть шанс глянуть исходник?

Есть. Тут.
Не обращай внимания на быдлокод, я еще учусь.
NeZnayuДата: Воскресенье, 13 Марта 2011, 15:43 | Сообщение # 17
__танцуй!__
Сейчас нет на сайте
1) почему-то сразу начал ругаться на премнную dropmenu
Code
ERROR in
action number 1
of Mouse Event for Left Pressed
for object o_mainmenu_btn:

Error in code at line 1:
    dropmenu=!dropmenu
             ^
at position 11: Unknown variable dropmenu

Щас попробую разобраться.


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
BornInUSSRДата: Воскресенье, 13 Марта 2011, 15:44 | Сообщение # 18
почетный гость
Сейчас нет на сайте
У меня все работает отлично.
NeZnayuДата: Воскресенье, 13 Марта 2011, 15:56 | Сообщение # 19
__танцуй!__
Сейчас нет на сайте
Так, кажется понял.
В create у пункта меню стоит свитч по id.

Когда ты создаешь событие через
variable=instance_create()

сначала выполняется create объекта, и только потом переменной variable присваивается id нового объекта.


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
BornInUSSRДата: Воскресенье, 13 Марта 2011, 16:02 | Сообщение # 20
почетный гость
Сейчас нет на сайте
Кажется я понял в чем там соль. Когда второй раз создаются обьекты, новые айди по какой то причине не читаются обьектом субменю. Сейчас подумаю как исправить.

Добавлено (13.03.2011, 16:02)
---------------------------------------------
Нет, не подумаю. По логике код правильный и должен работать как нужно. Ничерта не понимаю.

Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker Studio » Элементы интерфейса в гм-приложениях (Сюда буду спрашивать все что касается интерфейса)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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