Анимация движения персонажа

от
Прочие языки   mobile basic, java me

Для создания анимации движения, нам понадобится восемь картинок движения, 2 вверх, 2 вниз, 2 влево, 2 вправо.
(в нашем примере это будут u1.png, u2.png, d1.png, d2.png, l1.png, l2.png, r1.png, r2.png)
  1. 10 a%=8
  2. 20 for i%=0 to a%-1
  3. 30 read a$
  4. 40 read b$
  5. 50 gelload a$,b$
  6. 60 spritegel a$,a$
  7. 70 spritemove a$, -100,0
  8. 80 data u1,u1.png,u2,u2.png,d1.png,d2,d2.png,l1,l1.png,l2,l2.png,r1,r1.png,r2,r2.png

Загружаем графические файлы с помощью ''сканера'', сопоставляем спрайты с гелями, выводим спрайты за экран
  1. 90 x%=50:y%=60:k%=1:p%=1
Задаём начальные координаты x%,y% и дополнительные переменные k%,p%
  1. 100 if right(0) then x%=x%+1:p%=p%+1:sleep 20:k%=0
Если нажата клавиша 6, то x% увеличивается на единицу, переменная p% увеличивается на единицу , пауза, k% равен нулю
  1. 110 if left(0) then x%=x%-1:p%=p%+1:sleep 20:k%=1
Если нажата клавиша 4, то x% уменьшается на единицу, переменная p% увеличивается на единицу , пауза, k% равен единице
  1. 120 if up(0) then y%=y%-1:p%=p%+1:sleep 20:k%=2
Если нажата клавиша 2, то y% уменьшается на единицу, переменная p% увеличивается на единицу , пауза, k% равен двум
  1. 130 if down(0) then y%=y%+1:p%=p%+1:sleep 20:k%=3
Если нажата клавиша 8, то y% увеличивается на единицу, переменная p% увеличивается на единицу , пауза, k% равен трём
  1. 140 if k%=0 and p%=0 then spritegel "Y","r1"
Если переменная k% равна нулю и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "r1"
  1. 150 if k%=0 and p%=1 then spritegel "Y","r2"
Если переменная k% равна нулю и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "r2"
  1. 160 if k%=1 and p%=0 then spritegel "Y","l1"
Если переменная k% равна единице и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "l1"
  1. 170 if k%=1 and p%=1 then spritegel "Y","l2"
Если переменная k% равна единице и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "l2"
  1. 180 if k%=2 and p%=0 then spritegel "Y","u1"
Если переменная k% равна двум и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "u1"
  1. 190 if k%=2 and p%=1 then spritegel "Y","u2"
Если переменная k% равна двум и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "u2"
  1. 200 if k%=3 and p%=0 then spritegel "Y","d1"
Если переменная k% равна трём и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "d1"
  1. 210 if k%=3 and p%=1 then spritegel "Y","d2"
Если переменная k% равна трём и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "d2"
  1. 220 if p%>1 then p%=0
Если p% больше единицы то обнуляем значение переменной p%
  1. 230 spritemove "Y",x%,y%
Выводим на экран спрайт
  1. 240 sleep 20:goto 100
Пауза, переход на строку 100

Переменная k% в данном примере принимая одно из четырёх значений определяет какая из четырёх клавиш нажата и в дальнейшем исходя из её значения происходит выбор нужного геля.
Так как у нас по две картинки персонажа на каждую сторону движения(например ВЛЕВО "l1" и "l2"), то мы ввели переменную p% которая принимает своё значение для каждого из двух гелей..
В совокупности значения переменных k% и p% определяют какой из восьми гелей будет преобразован в спрайт и выведен на экран..


Оригинал: http://mbteam.ru
+2   4   2
1446