limil Пользователь Сейчас: Offline
Имя: limil Откуда: Белая Церковь Регистрация: 01.02.2011
| Aniмация Анимация,анимация...Без тебя в игре никак! Почему именно в игре?А разве вам интересна игра без ощущения движения ,физики? Можно и заставку сделать конечно. Начнем с того,что в бейсике нереально воспроизвести цельный *.gif файл,поэтому анимацию осуществляют поочередной сменой картинок ,эпизодов. Например,нам надо сделать хорошую "немегающую" очистками экрана анимационную заставку... Многие подумают - если не очищать перед сменой картинок экран ,то будет размазня. Другие сразу вспомнят спрайты,но морока с их закидыванием за пределы экрана опять же надоест Итак,начнем с заставки. Алгоритм: 1. Создаем массив с нужным количеством картинок. 2. Сканер эпизодов(я без него никуда ,и попутно записываем каждой переменной массива имя спрайта . Обязательно в data пишим все названия в правильном порядке исполнения . Это главное, остальное увидите. Примерный код: 10 dim a$(10) 20 for i%=0 to 9 30 read s$:read d$ 40 gl s$,d$ 50 sg s$,s$ 60 sm s$,5000,5000 70 a$(i%)=s$ 80 next i% 90 data a,a.png,b,b.png,c,c.png,d,d.png,e,e.png,f,f.png,g,g.png,k,k.png,j,j.png,l,l.png Основное написали ,а теперь я вам скажу одну интересную вещь. ......................... Если делать из геля спрайт,то заменив лишь имя самого геля в коде ,оставив тоже самое имя спрайта - этот,заменит предыдущий спрайт. Т.е.: 10 sg "а","f" 20 sg "а","d" 30 sg "а","e" ......................... Этот момент как раз и осуществит анимацию . Продолжаем идти: 100 for i%=0 to 9 110 sg "a",a$(i%) 120 sm "a",0,0 130 next i% 140 gt 100 // приписал для бесконечной смены спрайтов. Ну вот и все,в этом ничего сложного нет. А для особых людей,сразу отвечаю на вопрос - "Анимация закончилась,а спрайт нестирается.Че делать?" Убрать последний далеко за экран ,мой ответ! Ну а теперь напишем простейший поворот персонажа при нажатии 2,8,4,6. Что нужно ? Картинка для каждой кнопки и чуть -чуть мозгов)) Примерный код: 10 for i%=1 to 4 20 read s$:read d$ 30 gl s$,d$ 40 sg s$,s$ 50 sm s$,5000,5000 60 next i% 70 data a,a.png,b,b.png,c,c.png,d,d.png 80 sm "a",x%,y% 90 if up(0) then sg"a","a":y%=y%-1 100 if down(0) then sg"a","b":y%=y% +1 110 if left(0) then sg"a","c":x%=x%-1 120 if right(0) then sg"a","d":x%=x%+1 130 gt 80 Тут я написал все наглядно ,чтоб вы поняли принцип. На этом завершим еще одну мою статью )) Автор: kiriman
|