Анимация движения персонажа
от heavenzip
Для создания анимации движения, нам понадобится восемь картинок движения, 2 вверх, 2 вниз, 2 влево, 2 вправо.
(в нашем примере это будут u1.png, u2.png, d1.png, d2.png, l1.png, l2.png, r1.png, r2.png)
Загружаем графические файлы с помощью ''сканера'', сопоставляем спрайты с гелями, выводим спрайты за экран
Задаём начальные координаты x%,y% и дополнительные переменные k%,p%
Если нажата клавиша 6, то x% увеличивается на единицу, переменная p% увеличивается на единицу , пауза, k% равен нулю
Если нажата клавиша 4, то x% уменьшается на единицу, переменная p% увеличивается на единицу , пауза, k% равен единице
Если нажата клавиша 2, то y% уменьшается на единицу, переменная p% увеличивается на единицу , пауза, k% равен двум
Если нажата клавиша 8, то y% увеличивается на единицу, переменная p% увеличивается на единицу , пауза, k% равен трём
Если переменная k% равна нулю и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "r1"
Если переменная k% равна нулю и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "r2"
Если переменная k% равна единице и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "l1"
Если переменная k% равна единице и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "l2"
Если переменная k% равна двум и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "u1"
Если переменная k% равна двум и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "u2"
Если переменная k% равна трём и переменная p% равна нулю, то сопоставляем спрайт "Y" с гелем "d1"
Если переменная k% равна трём и переменная p% равна единице, то сопоставляем спрайт "Y" с гелем "d2"
Если p% больше единицы то обнуляем значение переменной p%
Выводим на экран спрайт
Пауза, переход на строку 100
Переменная k% в данном примере принимая одно из четырёх значений определяет какая из четырёх клавиш нажата и в дальнейшем исходя из её значения происходит выбор нужного геля.
Так как у нас по две картинки персонажа на каждую сторону движения(например ВЛЕВО "l1" и "l2"), то мы ввели переменную p% которая принимает своё значение для каждого из двух гелей..
В совокупности значения переменных k% и p% определяют какой из восьми гелей будет преобразован в спрайт и выведен на экран..
Оригинал: http://mbteam.ru
(в нашем примере это будут u1.png, u2.png, d1.png, d2.png, l1.png, l2.png, r1.png, r2.png)
- 10 a%=8
- 20 for i%=0 to a%-1
- 30 read a$
- 40 read b$
- 50 gelload a$,b$
- 60 spritegel a$,a$
- 70 spritemove a$, -100,0
- 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
Загружаем графические файлы с помощью ''сканера'', сопоставляем спрайты с гелями, выводим спрайты за экран
- 90 x%=50:y%=60:k%=1:p%=1
- 100 if right(0) then x%=x%+1:p%=p%+1:sleep 20:k%=0
- 110 if left(0) then x%=x%-1:p%=p%+1:sleep 20:k%=1
- 120 if up(0) then y%=y%-1:p%=p%+1:sleep 20:k%=2
- 130 if down(0) then y%=y%+1:p%=p%+1:sleep 20:k%=3
- 140 if k%=0 and p%=0 then spritegel "Y","r1"
- 150 if k%=0 and p%=1 then spritegel "Y","r2"
- 160 if k%=1 and p%=0 then spritegel "Y","l1"
- 170 if k%=1 and p%=1 then spritegel "Y","l2"
- 180 if k%=2 and p%=0 then spritegel "Y","u1"
- 190 if k%=2 and p%=1 then spritegel "Y","u2"
- 200 if k%=3 and p%=0 then spritegel "Y","d1"
- 210 if k%=3 and p%=1 then spritegel "Y","d2"
- 220 if p%>1 then p%=0
- 230 spritemove "Y",x%,y%
- 240 sleep 20:goto 100
Переменная k% в данном примере принимая одно из четырёх значений определяет какая из четырёх клавиш нажата и в дальнейшем исходя из её значения происходит выбор нужного геля.
Так как у нас по две картинки персонажа на каждую сторону движения(например ВЛЕВО "l1" и "l2"), то мы ввели переменную p% которая принимает своё значение для каждого из двух гелей..
В совокупности значения переменных k% и p% определяют какой из восьми гелей будет преобразован в спрайт и выведен на экран..
Оригинал: http://mbteam.ru