Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для компьютеров > BlitzMax > 2D-программирование

Ответ
 
Опции темы
Старый 09.04.2007, 19:00   #1
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Как сделать анимацию спрайта?

Возможно этот вопрос поднимался. И невозможно, а точно! Хотелось бы посмотреть на реализацию через БлитцМакс. Ссылки, примеры и ваши наработки. В крайнем случае принципы работы.
(Offline)
 
Ответить с цитированием
Старый 09.04.2007, 19:05   #2
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Мою гаму видел?

Если нет, то в подписи сайт, смотри на здоровье! Кста тама есть переведенная часть хелпа, там то, что именно тебе нужно.
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 12:15   #3
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Зарегился у тебя на сайте. Скачал хелп к мах2д - там не нашел что мне нужно... и игры твоей не нашел. Дай ссылки прямые, чтоли...
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 14:28   #4
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Как сделать анимацию спрайта?

Ну в хелпе смотри как сделать, т.е. команды LoadAnimImage и DrawImage, а реализация есть тут.
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 14:54   #5
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Как сделать анимацию спрайта?

А если тебе код нужен, то вот так там делается:
ExplImage:TImage=LoadAnimImage ("incbin::images\1.bmp",128,128,0,24) - гружу картинку
Далее в типе взрыва делаю функцию и метод
Function Create(x#,y#)
Local c:Explosion=New Explosion
c.x#=x#
c.y#=y#
c.frame=0
ListAddLast (ExpList,c)
End Function
Method update()
If frame<=23
SetScale 0.5,0.5
DrawImage explimage,x,y,frame
SetScale 1,1
Else
ListRemove(ExpList,Self)
End If
frame:+1
End Method
А потом использую в цикле

Explosion.Create(a.GetX(),a.GetY())

For Local vzriv:Explosion=EachIn ExpList
vzriv.update
Next
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 15:02   #6
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Ссылка на "spacer" ? я не заметил там никакой анимации... А что использовать надо команды LoadAnimImage и DrawImage это я и так знал... Хотя нашел у тебя статейку "Сто одно Изображение" сейчас вникаю...
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 15:05   #7
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Как сделать анимацию спрайта?

"я не заметил там никакой анимации... "

- а взрыв?
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 16:07   #8
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Ой да точно взрывы есть! А то я один раз стрельнул да и не попал нив кого. Вырубил. Ок. Ща попробую, спасибо!
(Offline)
 
Ответить с цитированием
Старый 10.04.2007, 16:40   #9
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Как сделать анимацию спрайта?

Кстати, dimanche13 в 5 посте, я написал как это сделать
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 13:03   #10
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Спасибо JohnK, но у меня некоторые затруднения, потому что у тебя взрыв - это последовательный набор картинок всех стадий взрыва. Ты их перебираешь и если кончились фреймы удаляешь. У меня Бомберман . Есть картинка с какого-то сайта стадии его движения вверх ,вниз и т.д. Но когда бомберчел движется вверх надо показать как он перебирает ногами, вправо то же самое и во все стороны. То есть не перебор картинок от начала до конца а по-другому... вот.
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 14:01   #11
johnk
Легенда
 
Регистрация: 01.10.2006
Сообщений: 3,705
Написано 296 полезных сообщений
(для 568 пользователей)
Re: Как сделать анимацию спрайта?

Если это отдельные картинки то немного легче. Делается так:
vniz=loadanimimage("vniz.bmp".....и пошло поехало)
If keydown(KEY_DOWN) 
Ты должен проверить какой кадр, что бы не было ошибок. Допустим у тебя 5 кадров тогда
if frame<=4 (4 потому что отсчет идет с 0)
Потом просто рисуешь картинку
drawimage vniz,x,y,frame
а если пошел 6 кадр, то вернуть его на первый (а точнее нулевой)
Else frame=0
endif
 увеличиваешь кадр
Frame:+1
endif
(Offline)
 
Ответить с цитированием
Старый 11.04.2007, 15:52   #12
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Да надо уже хоть что-нибудь попробовать. У самого парочка мыслей есть на этот счет и тебе спасибо, JohnK. Вот попробую выложу что получилось! или не получилось...
(Offline)
 
Ответить с цитированием
Старый 12.04.2007, 23:29   #13
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

У меня какая-то фигня получается. Да я шагаю вверх и персонаж машет ногами (простите мой русский язык)то есть вроде идет, но при отпускании кнопки может остановиться с занесеной для шага ногой, то есть движение не завершается а кнопка отпущена.
(Offline)
 
Ответить с цитированием
Старый 13.04.2007, 01:58   #14
alcoSHoLiK
Дэвелопер
 
Регистрация: 17.01.2006
Сообщений: 1,512
Написано 78 полезных сообщений
(для 110 пользователей)
Re: Как сделать анимацию спрайта?

Обнуляй кадр.
Другой вариант - устанавливать переменную состояния. Псевдокод:
If keypressed Then animate = true
...
DrawImage x, y, frame
...
If animate Then
   frame = frame + 1
   If frame = max_frames Then 
      animate = false
      frame = 0
   End If
End If
Тогда анимация будет длится до последнего кадра.
(Offline)
 
Ответить с цитированием
Старый 13.04.2007, 12:20   #15
dimanche13
Мастер
 
Регистрация: 19.03.2007
Сообщений: 1,039
Написано 153 полезных сообщений
(для 252 пользователей)
Re: Как сделать анимацию спрайта?

Я сделал вот так :

If KeyDown(KEY_UP)
If animate = True
If frame < (3 - 1)
frame :+ 1
Else
frame = 0
animate = False
End If
Else
frame = 0
animate = True
End If
End If

А alcoSHoLiKу вопрос можешь показать на реальном проектк как твой код реализуется, а то у меня не получилось...
А вопрос так и завис в воздухе... может есть у кого-нить ссылка на подобный код...
(Offline)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поворот спрайта nil0q Основной форум 4 15.09.2009 15:55
2d в OpenGL. вывод тени от спрайта aureli0 C++ 12 14.09.2009 22:25
помогите! передвижение спрайта Jlemyp 2D-программирование 10 21.06.2009 21:09
Вернуть анимацию Max Payne 3D-программирование 19 06.02.2009 23:38
Добавить анимацию поможете? CRASHER 3D Моделирование 2 08.12.2007 20:28


Часовой пояс GMT +4, время: 06:13.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com