Game Maker - создание игр | HellRoom Games
Январь 15, 2025, 08:16:16 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.

Войти
Новости:
 
   Начало   Game Maker Помощь Правила форума Поиск Календарь Войти Регистрация  
Страниц: [1] 2   Вниз
  Печать  
Автор Тема: Регулируемая анимация  (Прочитано 8145 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« : Июнь 08, 2012, 15:53:21 »

У меня возник ещё один вопрос:
в соответствующем событии для игрового персонажа для проигрывания анимации я пишу:
Код:
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
spr_aleks_an_shoot.image_speed=1; 
if spr_aleks_an_shoot.image_index=[b]n[/b] 

spr_aleks_an_shoot.image_speed=0; 
}
Правилен ли этот код? Как узнать индекс изображения n? Прошу исправить, если в коде есть ошибка, так как сам понимаю, что мог многое напутать.
Записан
Briginas
Главный Модератор
*

Репутация: 673
Offline Offline

Пол: Мужской
Награды:
1 место в Дичайшем джеме #82000 сообщений!За постоянность! [200 дней на форуме]За лояльность! [+500 репутации]Настоящий игродел!1 место в конкурсе Адекватные игры #3 [Антиутопия]...
API: GameMaker Studio 2
Деятельность: Game Designer
Сообщений: 2042



« Ответ #1 : Июнь 08, 2012, 15:59:08 »

Код:
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
obj_aleksandr.image_speed=1; 
if obj_aleksandr.image_index=n 

obj_aleksandr.image_speed=0; 
}

Так будет правильнее, вместо спрайта нужно указывать объект.
Записан
VladTheCat
Немного
GM Pro user
*

Репутация: 145
Offline Offline

Пол: Мужской
Награды:
1000 сообщений!За постоянность! [100 дней на форуме]Настоящий игродел!
API: Love
Деятельность: Целая игростудия, состоящая из одного кота.
Сообщений: 1435



« Ответ #2 : Июнь 08, 2012, 16:01:31 »

image_index/speed надо указывать не у спрайта, а у объекта.
Записан


Будьте вежливы: Вам помогли? Не забудьте поставить плюс. А то банда злобных апельсинов придет за вами. И даже тех. поддержка вам не поможет. :3

Когда я что-то пишу в "<>", то это значит, что содержимое надо заменить на свое значение.
Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #3 : Июнь 08, 2012, 16:04:45 »

Что же насчет индекса?
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #4 : Июнь 08, 2012, 16:06:30 »

Цитировать
Правилен ли этот код? Как узнать индекс изображения n?
Я понял тебя так:

Снимок.PNG
Регулируемая анимация
* Снимок.PNG (42.04 Кб, 747x490 - просмотрено 710 раз.)
Записан

Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #5 : Июнь 08, 2012, 16:07:18 »

Код:
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
obj_aleksandr.image_speed=1;  
if obj_aleksandr.image_index=7  
{  
obj_aleksandr.image_speed=0;  
}

Такой код не работает.
-----------------------

Hadarak, необходимо, чтобы анимация была проиграна до последнего кадра лишь один раз, после чего на нем бы остановилась.
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #6 : Июнь 08, 2012, 16:09:12 »

Код:
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
obj_aleksandr.image_speed=1; 
if obj_aleksandr.image_index=7 

obj_aleksandr.image_speed=0; 
}

Такой код не работает.
Может потому что кадров семь? А седьмой кадр будет иметь индекс 6 т.к.  расчёт идёт с нуля.
Записан

Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #7 : Июнь 08, 2012, 16:10:38 »

Цитировать
Может потому что кадров семь? А седьмой кадр будет иметь индекс 6 т.к.  расчёт идёт с нуля.
Кадров восемь.
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #8 : Июнь 08, 2012, 16:13:07 »

В каком событии происходит этот код?
Записан

Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #9 : Июнь 08, 2012, 16:14:49 »

Изменил событие, и анимация заработала. Только вот скорость слишком высока... Насколько я понимаю, следует её значение уменьшать от единицы?
--------------------------------------------

Hadarak, было установлено в Аларме.
--------------------------------------------

Кроме того, изображения создают замкнутый цикл. Как ликвидировать эту проблему?
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #10 : Июнь 08, 2012, 16:16:14 »

Цитировать
Насколько я понимаю, следует её значение уменьшать от единицы?
Да.

Добавлено: Июнь 08, 2012, 16:17:00
Цитировать
Hadarak, было установлено в Аларме.
По этому и не работало т.к. проверка происходила только 1 раз.

Добавлено: Июнь 08, 2012, 16:20:38
Alarm:
Код:
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
obj_aleksandr.image_speed=1;
Step:
Код:
if obj_aleksandr.sprite_index = spr_aleks_an_shoot;{
if obj_aleksandr.image_index=7 {  
obj_aleksandr.image_speed=0;  
}
}
p.s. Почему ты везде приписываешь obj_aleksandr? Этот код находиться не в нём?
Записан

Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #11 : Июнь 08, 2012, 16:24:17 »

Ошибка:

Код:
ERROR in
action number 1
of  Step Event
for object obj_aleksandr:

Error in code at line 4:
   if obj_aleksandr.sprite_index = spr_aleks_an_shoot;{
                                                     ^
at position 52: Statement expected.
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #12 : Июнь 08, 2012, 16:26:14 »

Убери ; я просто скопировал, не заметил.
Код:
if obj_aleksandr.sprite_index = spr_aleks_an_shoot{
if obj_aleksandr.image_index=7 { 
obj_aleksandr.image_speed=0; 
}
}
Записан

Autodesk
Участник
****

Репутация: 32
Offline Offline

Пол: Мужской
API: GameMaker Studio Pro
Сообщений: 168



« Ответ #13 : Июнь 08, 2012, 16:31:35 »

Теперь анимации нет: с начала игры - тот самый последний кадр.
-----------------------------------------------------------------

Поспешил с ответом: анимация снова не проигрывается...
Записан
Hadarak
Активный участник
*****

Репутация: 90
Offline Offline

Пол: Мужской
Награды:
За постоянность! [10 дней на форуме]За отличную игру Burn it down!
API: GameMaker Studio 2
Сообщений: 372



« Ответ #14 : Июнь 08, 2012, 17:11:15 »

Тогда так попробуй(или скинь исходик):
Create:
Код:
xx = 0;
Alarm:
Код:
xx = 1;
Step:
Код:
if xx{
obj_aleksandr.sprite_index = spr_aleks_an_shoot;
obj_aleksandr.image_speed=1;
if obj_aleksandr.image_index=7 {  
obj_aleksandr.image_speed=0;
xx = 0;  
}
}
хотя отличий можно сказать и нет errm
Записан

Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  

HellRoom Games © 2006-2012 All Rights Reserved
Powered by SMF 1.1.21 | SMF © 2013, Simple Machines
Страница сгенерирована за 0.084 секунд. Запросов: 30.