Пятница, 19 Апреля 2024, 16:44

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопрос по функциям draw (можно ли рисовать в нескольких событиях одновременно?)
Вопрос по функциям 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
__танцуй!__
Сейчас нет на сайте
Quote (Randall)
попробую

Это надо было сделать до того как писать что не работает.


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
заслуженный участник
Сейчас нет на сайте
Потому что нет базовых знаний в математике или программировании. Вполне логично что они ничего не понимают и просят разжевать. Другое дело что некоторые не только не понимают, но и не хотят понимать. Это те про кого ты говоришь smile

Новичкам изучающим GML кликать сюда.
Много примеров, исходников, библиотек и вообще всего что вам только может пригодиться. Автор портала, прости меня за ссылку, наболело =)
NeZnayuДата: Четверг, 03 Марта 2011, 18:11 | Сообщение # 16
__танцуй!__
Сейчас нет на сайте
Фигово что таких большинство.


CombatForce - 2d TDS долгожданный релиз
Noobster - самый простой конструктор игр в мире
LaLaLaLAMA! - игра не про Ламу
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)}

Заранее спасибо за помощь. Плюсану всем кто ответит по существу
Форум игроделов » Конструкторы игр и лёгкие в освоении системы разработки игр » Game Maker » Вопрос по функциям draw (можно ли рисовать в нескольких событиях одновременно?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:

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