forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   2D-программирование (http://forum.boolean.name/forumdisplay.php?f=109)
-   -   Как сделать анимацию спрайта? (http://forum.boolean.name/showthread.php?t=3138)

alcoSHoLiK 13.04.2007 12:59

Re: Как сделать анимацию спрайта?
 
Чередование кадров должно происходить отдельно от обработки нажатия клавиш. Если б ты сделал в соответствии с приведенным мной псевдокодом, получилось бы так.
Код:

If KeyDown(KEY_UP) Then animate = true

If animate = True
  frame :+ 1
  If frame >= (3 - 1)
      frame = 0
      animate = False
  End If
End If


johnk 13.04.2007 14:46

Re: Как сделать анимацию спрайта?
 
alcoSHoLiK опередил...Тока не пиши
Цитата:

(3 - 1)
А замени на 2...ибо хотя бы от такой математики избавь БМакс...

HolyDel 15.04.2007 02:00

Re: Как сделать анимацию спрайта?
 
Цитата:

А замени на 2...ибо хотя бы от такой математики избавь БМакс...
мну кажется компилятор бмакса с этим сам разберется.

dimanche13 16.04.2007 13:40

Re: Как сделать анимацию спрайта?
 
alcoSHoLiK Спасибо, я уже разобрался! Теперь осталось сделать плавную анимацию, а то без задержки которую я делаю delay-ем кадры бегут слишком быстро. Думаю надо привязать смену кадров ко времени.. пока не знаю как, буду искать.

johnk 16.04.2007 14:02

Re: Как сделать анимацию спрайта?
 
Помочь?

dimanche13 16.04.2007 16:49

Re: Как сделать анимацию спрайта?
 
Сделал вот так, честно сказать, выдрал у кого-то из кода...

If KeyDown(KEY_UP) Then animate = True
Dir = DirUp
If animate = True And (Timer + Temp < MilliSecs())
frame :+ 1
If frame > 2
frame = 0
animate = False
End If
Timer = MilliSecs()
End If

а как бы предложил ты, JohnK ?

johnk 16.04.2007 17:03

Re: Как сделать анимацию спрайта?
 
Способ не универсальный, но все же.
Сделал бы так:
Не в главном Цикле:
Код:

ImageUP=LoadAnimImage.....
Timer=Millisecs()
Frame=0

В главном цикле:
Код:

If KeyDown(KEY_UP)
  If frame<=2
    If Timer + Нужное Кол-во<Millisecs()
      DrawImage ImageUP,x,y,frame
    EndIf
  Else
  frame=0
  Endif
Timer=Millisecs()
Frame:+1
Endif


dimanche13 16.04.2007 17:20

Re: Как сделать анимацию спрайта?
 
Такой способ тоже имеет право на жизнь, но здесь анимация заканчивается при отпускании кнопки. Немного модернизировав код можно получить нужный результат!

johnk 16.04.2007 17:23

Re: Как сделать анимацию спрайта?
 
Дерзай! ;)

dimanche13 16.04.2007 18:54

Re: Как сделать анимацию спрайта?
 
ладно с анимацией вроде разобрались. А где бы взять програмку для создания анимации, удобную, бесплатную и не большую. Что посоветуете? Или нет.. что Вы используете?

johnk 16.04.2007 19:05

Re: Как сделать анимацию спрайта?
 
Я использую Paint, ибо очень удобный. (для меня) А далее обработка PhotoShop'ом.

alcoSHoLiK 16.04.2007 19:09

Re: Как сделать анимацию спрайта?
 
http://www.boolean.name/showthread.php?t=1421
Там Image->Create panorama, что-то типа этого. А рисовать по кадрам можно и в пейнте, хотя обычно Фотошоп используют (удобный, но большой и платный).

dimanche13 17.04.2007 14:05

Re: Как сделать анимацию спрайта?
 
Боялся что посоветуют Фотошоп и Паинт... Так оно и случилось. Чтоже нет других программ? Пока в поиске. Нашел сайт с текстурами http://www.grsites.com/textures/ может кому пригодится...
Блин, да на этом сайте много чего интересного, полазайте, не прогадаете!

johnk 17.04.2007 14:10

Re: Как сделать анимацию спрайта?
 
А какие еще программы нужны? Paint + Photoshop = Красивая Графика.

dimanche13 17.04.2007 22:33

Re: Как сделать анимацию спрайта?
 
Блин а как здесь файл присоединить? Хочу показать как у меня получилась анимация. Для того чтобы поругали или похвалили. Мне важно узнать ваше мнение.


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

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot