Элементы интерфейса в гм-приложениях
|
|
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 |
Злобный социопат с комплексом Бога
Сейчас нет на сайте
| А это не равно в сравнении=)
|
|
| |
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 |
почетный гость
Сейчас нет на сайте
| С этим выражением все так. Может дать еще код расстановки обьектов? И это... давайте по сабжу, а то я пропущу какой нибудь важный пост Добавлено (13.03.2011, 15:24) ---------------------------------------------
Quote (Qvant) В "креейте" объекта переменные задаются ? Естественно.
|
|
| |
Qvant | Дата: Воскресенье, 13 Марта 2011, 15:28 | Сообщение # 13 |
почти ветеран
Сейчас нет на сайте
| Тьфу сразу незаметил with (file_new) instance_destroy() - неправильно ! instance_destroy() применяется к тому объекту в котором он вызван то есть уничтожается не file_new а dropmenu
|
|
| |
BornInUSSR | Дата: Воскресенье, 13 Марта 2011, 15:33 | Сообщение # 14 |
почетный гость
Сейчас нет на сайте
| А оператор with тебе ничего не говорит? 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) --------------------------------------------- Нет, не подумаю. По логике код правильный и должен работать как нужно. Ничерта не понимаю.
|
|
| |