Project1

标题: 请教一下,这个脚本是干嘛用的,因为没有任何注释。 [打印本页]

作者: 爆焰    时间: 2012-1-18 19:14
标题: 请教一下,这个脚本是干嘛用的,因为没有任何注释。
就是这段。
  1. module RPG
  2. class Sprite < ::Sprite
  3.    def animation_set_sprites(sprites, cell_data, position, invisible = false)
  4.      if invisible
  5.        for i in 0..15
  6.          sprites[i].visible = false
  7.        end
  8.        return
  9.      end
  10.      for i in 0..15
  11.        sprite = sprites[i]
  12.        pattern = cell_data[i, 0]
  13.        if sprite == nil or pattern == nil or pattern == -1
  14.          sprite.visible = false if sprite != nil
  15.          next
  16.        end
  17.        sprite.visible = true
  18.        sprite.src_rect.set(pattern % 5 * 192, pattern / 5 * 192, 192, 192)
  19.        if position == 3
  20.          if self.viewport != nil
  21.            sprite.x = self.viewport.rect.width / 2
  22.            sprite.y = self.viewport.rect.height - 225
  23.          else
  24.            sprite.x = 320
  25.            sprite.y = 240
  26.          end
  27.        else
  28.          sprite.x = self.x - self.ox + self.src_rect.width / 2
  29.          sprite.y = self.y - self.oy + self.src_rect.height / 2
  30.          sprite.y -= self.src_rect.height / 4 if position == 0
  31.          sprite.y += self.src_rect.height / 4 if position == 2
  32.        end
  33.        sprite.x += cell_data[i, 1]
  34.        sprite.y += cell_data[i, 2]
  35.        sprite.z = 2000
  36.        sprite.ox = 96
  37.        sprite.oy = 96
  38.        sprite.zoom_x = cell_data[i, 3] / 100.0
  39.        sprite.zoom_y = cell_data[i, 3] / 100.0
  40.        sprite.angle = cell_data[i, 4]
  41.        sprite.mirror = (cell_data[i, 5] == 1)
  42.        sprite.opacity = cell_data[i, 6] * self.opacity / 255.0
  43.        sprite.blend_type = cell_data[i, 7]
  44.      end
  45.    end
  46.    def update_loop_animation
  47.      if @_animation_duration > 0
  48.        frame_index = @_loop_animation_index
  49.        cell_data = @_loop_animation.frames[frame_index].cell_data
  50.        position = @_loop_animation.position
  51.        animation_set_sprites(@_loop_animation_sprites, cell_data, position,true)
  52.      else
  53.        frame_index = @_loop_animation_index
  54.        cell_data = @_loop_animation.frames[frame_index].cell_data
  55.        position = @_loop_animation.position
  56.        animation_set_sprites(@_loop_animation_sprites, cell_data, position)
  57.        for timing in @_loop_animation.timings
  58.          if timing.frame == frame_index
  59.            animation_process_timing(timing, true)
  60.          end
  61.        end
  62.      end
  63.    end
  64. end
  65. end
复制代码
dsu_plus_rewardpost_czw
作者: 沙之爱罗    时间: 2012-1-18 20:05
http://rpg.blue/thread-60628-1-1.html

根据这个帖子……这个脚本应该是循环动画在角色行动时消失  的这个作用




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1