Вопрос по функциям draw
| |
Randall | Дата: Четверг, 03 Марта 2011, 01:35 | Сообщение # 1 |
участник
Сейчас нет на сайте
| Собственно, вопрос. Работают ли функции типа draw_sprite где-то кроме события draw и если да, то как это реализовать?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Четверг, 03 Марта 2011, 02:21 |
|
| |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 02:07 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Нет, функции рисования срабатывают только в событии рисования.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Четверг, 03 Марта 2011, 02:16 | Сообщение # 3 |
участник
Сейчас нет на сайте
| А возможно ли выполнить рисование Draw так, чтобы спрайты из других событий остались видимыми?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
GameMix | Дата: Четверг, 03 Марта 2011, 09:36 | Сообщение # 4 |
старожил
Сейчас нет на сайте
| Randall, я так понял, нужно отображать спрайт объекта, в котором выполняется событие рисования. Тогда, в событии "draw" этого объекта можно написать: Code draw_sprite(sprite_index,0,x,y); sprite_index - это спрайт, выбранный для объекта в его окне со свойствами.
Steel Standoff - 2D аркада. Мои статьи
|
|
| |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 12:55 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Quote (Randall) А возможно ли выполнить рисование Draw так, чтобы спрайты из других событий остались видимыми? Отрисовка спрайтов в событии рисования происходит слоями. Серва рисуется первая функция, поверх нее вторая и так далее. Спрайты из других событий (я так понимаю анимация например движения в степе) не отображаются. Если имеется событие рисования в котором используется функция драв, все прочие события ничего показывать не будут. Нужно либо рисовать в другом обьекте, либо перенести анимацию в драв из степа или другого события.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
Сообщение отредактировал Made_In_USSR - Четверг, 03 Марта 2011, 12:57 |
|
| |
NeZnayu | Дата: Четверг, 03 Марта 2011, 13:01 | Сообщение # 6 |
__танцуй!__
Сейчас нет на сайте
| Просто добавить в draw строчку: draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); Когда в draw есть какие-то действия - объект перестает рисовать свой спрайт.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Randall | Дата: Четверг, 03 Марта 2011, 16:27 | Сообщение # 7 |
участник
Сейчас нет на сайте
| В общем понятно. Задача такова - вся анимация расписана в степе. При определенных условиях надо рисовать еще один спрайт в том же самом объекте, например, монстр бежит, а когда прыгает на игрока, попердывает ))). Вот это дело сзади и надо дорисовать вторым спрайтом так, чтобы монстр не пропал. опять же замечу - весь код в степ затолкан уже, через change sprite. Какие еще есть варианты?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
Сообщение отредактировал Randall - Четверг, 03 Марта 2011, 16:28 |
|
| |
NeZnayu | Дата: Четверг, 03 Марта 2011, 16:33 | Сообщение # 8 |
__танцуй!__
Сейчас нет на сайте
| Quote (NeZnayu) Просто добавить в draw строчку: draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha); Внимательнее надо быть.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Randall | Дата: Четверг, 03 Марта 2011, 16:42 | Сообщение # 9 |
участник
Сейчас нет на сайте
| Quote Когда в draw есть какие-то действия - объект перестает рисовать свой спрайт. я внимателен как никогда. Это означает, что полюбому придется все убирать из степа и переписывать для draw Добавлено (03.03.2011, 16:42) --------------------------------------------- Ввиду специфики игры еще весьма желателен вариант - сделать это вторым объектом. Тогда следующий вопрос - как их связать между собой? Монстра и его допспрайт, если таковых монстров в игре десятки?
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
NeZnayu | Дата: Четверг, 03 Марта 2011, 16:54 | Сообщение # 10 |
__танцуй!__
Сейчас нет на сайте
| Quote (Randall) Это означает, что полюбому придется все убирать из степа и переписывать для draw Нет. Я же говорю - будь внимателен! Ничего не надо переписывать. Quote (NeZnayu) Просто добавить в draw строчку: draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Randall | Дата: Четверг, 03 Марта 2011, 16:55 | Сообщение # 11 |
участник
Сейчас нет на сайте
| попробую
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
NeZnayu | Дата: Четверг, 03 Марта 2011, 16:57 | Сообщение # 12 |
__танцуй!__
Сейчас нет на сайте
| Это надо было сделать до того как писать что не работает.
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 17:51 | Сообщение # 13 |
заслуженный участник
Сейчас нет на сайте
| Нужно наверное обьяснить человеку, что эта строчка рисует в драв тот спрайт, который задается в степе. Можно и дальше продолжать менять спрайты в любом событии, эта функция всегда будет рисовать нужный спрайт.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
NeZnayu | Дата: Четверг, 03 Марта 2011, 18:05 | Сообщение # 14 |
__танцуй!__
Сейчас нет на сайте
| Я ответил на конкретный вопрос :) Проблема большинства новичков - им не нужны ответы, им нужно чтобы все сделали за них, разжевали и в рот положили..
CombatForce - 2d TDS долгожданный релиз Noobster - самый простой конструктор игр в мире LaLaLaLAMA! - игра не про Ламу
|
|
| |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 18:08 | Сообщение # 15 |
заслуженный участник
Сейчас нет на сайте
| Потому что нет базовых знаний в математике или программировании. Вполне логично что они ничего не понимают и просят разжевать. Другое дело что некоторые не только не понимают, но и не хотят понимать. Это те про кого ты говоришь
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| | |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 20:04 | Сообщение # 17 |
заслуженный участник
Сейчас нет на сайте
|
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
Randall | Дата: Четверг, 03 Марта 2011, 21:36 | Сообщение # 18 |
участник
Сейчас нет на сайте
| Господа, не теоретизируйте зря) Во-первых, всем спасибо за помощь, во-вторых, это означает лишь то, что я не понял сказанную вами по разному фразу. Теперь ясно, что добавив функцию прорисовки спрайта в draw, можно добиться отрисовки нужных спрайтов с заданными ранее в степе условиями, из-за чего я и не хотел переносить весь код из step в draw. еще раз спасибо
1. Adventure Mouse - мини-аркада про мыш и его друга сыр 2. Герои Реконструкции и Страйкбола - тематическая пошаговая стратегия 3. Dangerous Dave 5: Fansequel - трибьют на Dangerous Dave Всё здесь http://zvizdez.ru/download.php?list.1
|
|
| |
Made_In_USSR | Дата: Четверг, 03 Марта 2011, 22:26 | Сообщение # 19 |
заслуженный участник
Сейчас нет на сайте
| Quote (Randall) функцию прорисовки спрайта Текущего спрайта. Не зря как аргумент используется sprite_index а не имя спрайта. А вообще салат дал ценный совет не только тебе но и всем, включая меня. Я тоже не думал что все настолько просто.
Новичкам изучающим GML кликать сюда. Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
|
|
| |
kashey_immortal | Дата: Понедельник, 08 Октября 2012, 22:23 | Сообщение # 20 |
был не раз
Сейчас нет на сайте
| Всем доброго времени суток. Пару недель назад начал осваивать Game maker и, как наверное делают многие новички, писал все повороты спрайтов в стипсы И постепенно начал понимать что функционал события "драв" гораздо обширнее и удобнее. С переносом кода возникли некоторые проблемы. Часть я решил с помощью гугла) Осталось ещё 2-е, решение которых найти не смог
собственно 1-я. спрайты движения главного героя накладываются друг на друга а нужно чтоб рисовался один спрайт в зависимости от направления. Или нажатых клавиш которые его задают. подскажите что не так: Code if keyboard_check(ord('A')) {draw_sprite(stalk_beg_1,image_index,x,y)} if keyboard_check(ord('D')) {draw_sprite(stalk_beg_5,image_index,x,y)} if keyboard_check(ord('W')) {draw_sprite(stalk_beg_7,image_index,x,y)} if keyboard_check(ord('S')) {draw_sprite(stalk_beg_3,image_index,x,y)} if keyboard_check(ord('A'))and keyboard_check(ord('W')){draw_sprite(stalk_beg_8,image_index,x,y)} if keyboard_check(ord('D'))and keyboard_check(ord('W')){draw_sprite(stalk_beg_6,image_index,x,y)} if keyboard_check(ord('A'))and keyboard_check(ord('S')) {draw_sprite(stalk_beg_2,image_index,x,y)} if keyboard_check(ord('D'))and keyboard_check(ord('S')) {draw_sprite(stalk_beg_4,image_index,x,y)} И 2-я проблема в мобах. спрайты реагируют на движение, но вырисовывается только первый кадр спрайта из 20 и тем самым нет анимации хотьбы Code if (direction>158)and(direction<203) {draw_sprite(alpha_beg_1,image_index,x,y)} if (direction>203)and(direction<248) {draw_sprite(alpha_beg_2,image_index,x,y)} if (direction>248)and(direction<293) {draw_sprite(alpha_beg_3,image_index,x,y)} if (direction>293)and(direction<338) {draw_sprite(alpha_beg_4,image_index,x,y)} if (direction>338)and(direction<360){draw_sprite(alpha_beg_5,image_index,x,y)} if (direction>1)and(direction<23){draw_sprite(alpha_beg_5,image_index,x,y)} if (direction>23)and(direction<68) {draw_sprite(alpha_beg_6,image_index,x,y)} if (direction>68)and(direction<113) {draw_sprite(alpha_beg_7,image_index,x,y)} if (direction>113)and(direction<158) {draw_sprite(alpha_beg_8,image_index,x,y)} Заранее спасибо за помощь. Плюсану всем кто ответит по существу
|
|
| |
|