Пятница, 19.04.2024, 21:13
Главная Регистрация RSS
Приветствую Вас, Гость
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Форум » Разработка игр » Вопросы по game maker » О действиях, переменных и др. (Статус: Решено)
О действиях, переменных и др.
никитаДата: Среда, 12.08.2015, 22:33 | Сообщение # 1
Мастер
Группа: Модераторы
Сообщений: 532
Награды: 0
Репутация: 51
Статус: Offline
Создам отдельную тему, т.к. в главной теме не приходит ответ уже пару дней.
Давно я тут не появлялся, но сейчас я на даче, тут проц Intel Celeron... Ничего кроме гамака не идет, даже на нем игры лагают. Вот я и снова залез в него.
Собственно, к чему я это веду. Три вопроса:
1. У меня есть много похожих объектов и один их "родитель", т.е. parent. В событии create родителя этих объектов прописан какой-то код. И вот такая проблема. Этот код применяется ко всем объектам кроме тех, у которых есть собственный код в событии create. Поэтому мне приходится постоянно дублировать код из родителя объектов в сами объекты. Это не очень удобно. Как можно этого избежать?
2. Есть объект, у него есть события create и destroy. В create записана переменная des, которая принимает значения true или false в зависимости от ситуации. Так вот, в destroy стоит проверка значения этой переменной, и если она равна true, выполняется какое-то действие. Но вот беда: запускаю игру и вылезает ошибка подобного рода

Код
action number 1
of Destroy Event
for object blockparent:

Error in code at line 1:
       if des = true     
         ^
at position 4: Unknown variable des
Код ошибки говорит, что в событии destroy находится неизвестная переменная des. Т.е. инициализация переменной происходит после события destroy. Что с этим можно сделать?
3. Есть код, создающий систему частиц. Буду краток. Частицы создаются позади всех объектов в комнате, даже если глубину поменять. Нужно, чтобы они появлялись на переднем плане. Что делать?


ВАСЕЧКА - Попугай

Сообщение отредактировал Volk - Понедельник, 01.02.2016, 14:47
 
BRESSДата: Пятница, 14.08.2015, 20:24 | Сообщение # 2
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Цитата никита ()
Это не очень удобно. Как можно этого избежать?
Никак.

Цитата никита ()
Есть объект, у него есть события create и destroy. В create записана переменная des, которая принимает значения true или false в зависимости от ситуации.
Можно код из события Create?

Цитата никита ()
Нужно, чтобы они появлялись на переднем плане.
Ты пользовался part_type_death?


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
sashaДата: Пятница, 14.08.2015, 22:06 | Сообщение # 3
Очень почетный титул
Группа: Проверенные
Сообщений: 216
Награды: 3
Репутация: 86
Статус: Offline

Цитата
Никак.
 Постойте-ка, а как же event_inherited() ?
пруф
 
никитаДата: Суббота, 15.08.2015, 14:50 | Сообщение # 4
Мастер
Группа: Модераторы
Сообщений: 532
Награды: 0
Репутация: 51
Статус: Offline
Цитата sasha ()
Постойте-ка, а как же event_inherited() ?

Спасибо, помогло. Теперь дублировать код не приходится. Впервые слышу об этой функции biggrin
Цитата BRESS ()
Можно код из события Create?

Это проблему я уже решил, но немного более трудным способом. Изменять я уже ничего не хочу, но узнать все же будет полезно.
Собственно, код в Create довольно большой, к тому же, как я говорил раньше, я его изменил. Но все же он был примерно таким:
Код
gen = false
des = true
if global.create = true then gen = true
if gen = false {
move_snap(16,16)
y+=8
if instance_place(x,y,blockparent) {
des = false
instance_destroy() }
if global.place=0 {
if !instance_place(x+16,y,blockparent) && !instance_place(x-16,y,blockparent) && !instance_place(x,y+16,blockparent) && !instance_place(x,y-16,blockparent) {
des = false
instance_destroy() }
}
}

Ну а про событие Destroy я уже говорил. Мне нужно узнать, как сначала инициализировать переменную, а затем только через запросить ее в Destroy.
Цитата BRESS ()
Ты пользовался part_type_death?

Нет. Если это поможет, вот код:
Код
ps = part_system_create()
pt = part_type_create()
part_type_alpha1(pt,random_range(0.5,0.8))
part_type_size(pt,0.3,0.5,0,0)
part_type_gravity(pt,0.6,270)
part_type_life(pt,25,35)
part_type_sprite(pt,sprite_index,0,0,0)
part_type_direction(pt,20,160,0,0)
part_type_speed(pt,1,2,0,0)
em = part_emitter_create(ps)
part_emitter_region(ps,em,x,x+16,y,y+16,pt_shape_square,0)
part_emitter_burst(ps,em,pt,irandom_range(4,10))

Спасибо за ответ!


ВАСЕЧКА - Попугай
 
BRESSДата: Воскресенье, 16.08.2015, 19:57 | Сообщение # 5
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Цитата sasha ()
 Постойте-ка, а как же event_inherited() ?
пруф
Не знал. Прошу прощения.

Цитата никита ()
Нет. Если это поможет, вот код:
Ну так воспользуйся этой функцией )


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
никитаДата: Воскресенье, 16.08.2015, 22:15 | Сообщение # 6
Мастер
Группа: Модераторы
Сообщений: 532
Награды: 0
Репутация: 51
Статус: Offline
Цитата BRESS ()
Ну так воспользуйся этой функцией
Ты кажется чего-то напутал) part_type_death не может глубину изменить. Короче, сам разобрался. Нужно было всего лишь написать part_system_depth, а я эту функцию не знал, все пытался изменить глубину через тип частиц.


ВАСЕЧКА - Попугай
 
BRESSДата: Вторник, 18.08.2015, 20:07 | Сообщение # 7
Мастер-ломастер
Группа: Администраторы
Сообщений: 3120
Награды: 1
Репутация: 224
Статус: Offline
Цитата никита ()
Ты кажется чего-то напутал) part_type_death не может глубину изменить. Короче, сам разобрался. Нужно было всего лишь написать part_system_depth, а я эту функцию не знал, все пытался изменить глубину через тип частиц.
Позабывал, видно, я уже всё. Просто давно Game Maker не пользуюсь. Мб, выпустят вторую версию Студии ближе к Январю, вновь займусь Гамаком :)


Для ваших вопросов по Game Maker есть специально созданный форум. Оставьте в покое мою личку. Спасибо за внимание!
 
Форум » Разработка игр » Вопросы по game maker » О действиях, переменных и др. (Статус: Решено)
  • Страница 1 из 1
  • 1
Поиск: