73 lines
2.3 KiB
Ruby
73 lines
2.3 KiB
Ruby
#==============================================================================
|
|
# ** Sprite_Picture
|
|
#------------------------------------------------------------------------------
|
|
# This sprite is used to display the picture.It observes the Game_Character
|
|
# class and automatically changes sprite conditions.
|
|
#==============================================================================
|
|
|
|
class Sprite_Picture < Sprite
|
|
#--------------------------------------------------------------------------
|
|
# * Object Initialization
|
|
# viewport : viewport
|
|
# picture : picture (Game_Picture)
|
|
#--------------------------------------------------------------------------
|
|
def initialize(viewport, picture)
|
|
super(viewport)
|
|
@picture = picture
|
|
update
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Dispose
|
|
#--------------------------------------------------------------------------
|
|
def dispose
|
|
if self.bitmap != nil
|
|
self.bitmap.dispose
|
|
end
|
|
super
|
|
end
|
|
#--------------------------------------------------------------------------
|
|
# * Frame Update
|
|
#--------------------------------------------------------------------------
|
|
def update
|
|
super
|
|
# If picture file name is different from current one
|
|
if @picture_name != @picture.name
|
|
# Remember file name to instance variables
|
|
@picture_name = @picture.name
|
|
# If file name is not empty
|
|
if @picture_name != ""
|
|
# Get picture graphic
|
|
self.bitmap = RPG::Cache.picture(@picture_name)
|
|
end
|
|
end
|
|
# If file name is empty
|
|
if @picture_name == ""
|
|
# Set sprite to invisible
|
|
self.visible = false
|
|
return
|
|
end
|
|
# Set sprite to visible
|
|
self.visible = true
|
|
# Set transfer starting point
|
|
if @picture.origin == 0
|
|
self.ox = 0
|
|
self.oy = 0
|
|
else
|
|
self.ox = self.bitmap.width / 2
|
|
self.oy = self.bitmap.height / 2
|
|
end
|
|
# Set sprite coordinates
|
|
self.x = @picture.x
|
|
self.y = @picture.y
|
|
self.z = @picture.number
|
|
# Set zoom rate, opacity level, and blend method
|
|
self.zoom_x = @picture.zoom_x / 100.0
|
|
self.zoom_y = @picture.zoom_y / 100.0
|
|
self.opacity = @picture.opacity
|
|
self.blend_type = @picture.blend_type
|
|
# Set rotation angle and color tone
|
|
self.angle = @picture.angle
|
|
self.tone = @picture.tone
|
|
end
|
|
end
|