вторник, 19 марта 2013 г.

восмифреймовое движение

Появились чарсеты из "Ванька", в которых движение производится за 8 фреймов, соответственно, возникла необходимость ввести их корректно в XP. Вот пример:
Гугление толку особо не дало, потому пришлось чуть поковыряться в коде.

Итак:
1) Создаем глобальную переменную
$anim_count = 8 # число фреймов на движение (кадров)
2) Добавим параметр класса  Game_Character
attr_accessor :frames_count и в initialize ставим = $anim_count
3) В классе Sprite_Character ставим на 28 строке
  @cw = bitmap.width / @character.frames_count (было 4)
4) Если сделать только 3 и запустить игру - то фреймы персонажа будут меняться медленно и использоваться только первые четыре, поэтому в классе Game_Character (2й файл) пишем:

  • @pattern = (@pattern + 1) % @frames_count (15 строка) - чтобы брать все 8 кадров, а не 4, как было раньше
  • Чтобы анимация не была медленной, в update_move делаем так
    • if @walk_anime
    •       @anime_count += 1.5 * (@frames_count / 4) 
    •     elsif @step_anime
    •       @anime_count += 1 * (@frames_count / 4)
  • в update_stop аналогично
Вот и всё, запускаем и наслаждаемся плавной анимацией Ваньки Малолесьева или вашего крутого чарсета из 8ми кадров.