#=============================================================================== # Walking charset, for use in text entry screens and load game screen #=============================================================================== class TrainerWalkingCharSprite < SpriteWrapper def initialize(charset,viewport=nil) super(viewport) @animbitmap = nil self.charset = charset @animframe = 0 # Current pattern @frame = 0 # Frame counter self.animspeed = 5 # Animation speed (frames per pattern) end def charset=(value) @animbitmap.dispose if @animbitmap @animbitmap = nil bitmapFileName = sprintf("Graphics/Characters/%s",value) @charset = pbResolveBitmap(bitmapFileName) if @charset @animbitmap = AnimatedBitmap.new(@charset) self.bitmap = @animbitmap.bitmap self.src_rect.set(0,0,self.bitmap.width/4,self.bitmap.height/4) else self.bitmap = nil end end def altcharset=(value) # Used for box icon in the naming screen @animbitmap.dispose if @animbitmap @animbitmap = nil @charset = pbResolveBitmap(value) if @charset @animbitmap = AnimatedBitmap.new(@charset) self.bitmap = @animbitmap.bitmap self.src_rect.set(0,0,self.bitmap.width/4,self.bitmap.height) else self.bitmap = nil end end def animspeed=(value) @frameskip = value*Graphics.frame_rate/40 end def dispose @animbitmap.dispose if @animbitmap super end def update @updating = true super if @animbitmap @animbitmap.update self.bitmap = @animbitmap.bitmap end @frame += 1 if @frame>=@frameskip @animframe = (@animframe+1)%4 self.src_rect.x = @animframe*@animbitmap.bitmap.width/4 @frame -= @frameskip end @updating = false end end