你是说想用事件中的显示图片?
用那个反而麻烦了,还是用地图上显示行走图吧,很简单。
在Sprite_Character这个类里,这类是专门管理行走图的图象显示用的。
它在Spriteset_Map这个类里被实例化到一个数组里,这个类则是处理整个地图上图片用的类。此类在update时用for去遍历它,实现刷新。
初始化,用所有的事件和角色分别将 Sprite_Character实例化,然后加到@character_sprites数组里
# 生成角色活动块 @character_sprites = [] for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
# 生成角色活动块
@character_sprites = []
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
刷新时
# 刷新角色活动块 for sprite in @character_sprites sprite.update end
# 刷新角色活动块
for sprite in @character_sprites
sprite.update
end
释放时
# 释放角色活动块 for sprite in @character_sprites sprite.dispose end
# 释放角色活动块
for sprite in @character_sprites
sprite.dispose
end
所以如果你想做倒影的话,可以依照这个的思路来做。
为了不破坏原来的Sprite_Character,可以把它复制一下,改名成Sprite_Shadow
然后在里面加上
self.angle = 180 self.mirror = true # 设置不透明度、合成方式、茂密 self.opacity = @character.opacity/2
self.angle = 180
self.mirror = true
# 设置不透明度、合成方式、茂密
self.opacity = @character.opacity/2
旋转180度,再左右反转,不透明度除2,这样就像个倒影了
之后依照上面@character_sprites的思路,再在Spriteset_Map类里加一个@shadow_sprites
例:
初始化:
# 生成角色活动块 @character_sprites = [] @shadow_sprites = [] # ★倒影数组 for i in $game_map.events.keys.sort sprite = Sprite_Character.new(@viewport1, $game_map.events[i]) @character_sprites.push(sprite) # ★倒影 sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i]) @shadow_sprites.push(sprite) end @character_sprites.push(Sprite_Character.new(@viewport1, $game_player)) # ★倒影 @shadow_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))
# 生成角色活动块
@character_sprites = []
@shadow_sprites = [] # ★倒影数组
for i in $game_map.events.keys.sort
sprite = Sprite_Character.new(@viewport1, $game_map.events[i])
@character_sprites.push(sprite)
# ★倒影
sprite = Sprite_Shadow.new(@viewport1, $game_map.events[i])
@shadow_sprites.push(sprite)
end
@character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
# ★倒影
@shadow_sprites.push(Sprite_Shadow.new(@viewport1, $game_player))
刷新:
# ★刷新角色倒影 for sprite in @shadow_sprites sprite.update end
# ★刷新角色倒影
for sprite in @shadow_sprites
sprite.update
end
释放:
# ★释放角色倒影 for sprite in @shadow_sprites sprite.dispose end
# ★释放角色倒影
for sprite in @shadow_sprites
sprite.dispose
end
就可以了。
效果:
具体你可以根据自己的需要去改。
RM的图片处理基本都在那些Sprite和Spriteset类里。
|