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