版大说的影子方向是因为光源的问题了……如果版大还能研制出动态的影子那就…………神了…… 这个东西我放弃了。。。我突然想起来 你是八方向的。。。无法兼容,此其一。。其二脚本速度比较慢,倒不是掉帧的问题,只是初始化的时间长
我1.66GHZ双核256MB内存。。。集成显卡 一个 128X196的行走图 是 0.125秒。所以我做了一半就不做了。。。可以给你看看脚本 覆盖同名脚本
#==============================================================================
# ■ Sprite_Character
#------------------------------------------------------------------------------
# 角色显示用脚本。监视 Game_Character 类的实例、
# 自动变化脚本状态。
#==============================================================================
class Sprite_Character < RPG::Sprite
#--------------------------------------------------------------------------
# ● 定义实例变量
#--------------------------------------------------------------------------
attr_accessor :character # 角色
#--------------------------------------------------------------------------
# ● 初始化对像
# viewport: 查看端口
# character : 角色 (Game_Character)
#--------------------------------------------------------------------------
def initialize(viewport, character = nil)
super(viewport)
@character = character
update
@shadow = Sprite.new
if @character.character_name != ""
w = self.bitmap.width
h = self.bitmap.height
@shadow.bitmap = Bitmap.new(w,h)
c = Color.new(0,0,0,160)
for i in 0...w
for j in 0...h
if self.bitmap.get_pixel(i,j).alpha!=0
@shadow.bitmap.set_pixel(i, h-1-j, c)
end
end
end
end
@shadow.ox = self.ox
@shadow.z = self.z
end
#--------------------------------------------------------------------------
# ● 更新画面
#--------------------------------------------------------------------------
def update
super
# 元件 ID、文件名、色相与现在的情况存在差异的情况下
if @tile_id != @character.tile_id or
@character_name != @character.character_name or
@character_hue != @character.character_hue
# 记忆元件 ID 与文件名、色相
@tile_id = @character.tile_id
@character_name = @character.character_name
@character_hue = @character.character_hue
# 元件 ID 为有效值的情况下
if @tile_id >= 384
self.bitmap = RPG::Cache.tile($game_map.tileset_name,
@tile_id, @character.character_hue)
self.src_rect.set(0, 0, 32, 32)
self.ox = 16
self.oy = 32
# 元件 ID 为无效值的情况下
else
self.bitmap = RPG::Cache.character(@character.character_name,
@character.character_hue)
@cw = bitmap.width / 4
@ch = bitmap.height / 4
self.ox = @cw / 2
self.oy = @ch
end
end
# 设置可视状态
self.visible = (not @character.transparent)
# 图形是角色的情况下
# 设置脚本的坐标
self.x = @character.screen_x
self.y = @character.screen_y
self.z = @character.screen_z(@ch)
# 设置不透明度、合成方式、茂密
self.opacity = @character.opacity
self.blend_type = @character.blend_type
self.bush_depth = @character.bush_depth
if @tile_id == 0
# 设置传送目标的矩形
sx = @character.pattern * @cw
sy = (@character.direction - 2) / 2 * @ch
self.src_rect.set(sx, sy, @cw, @ch)
if @shadow
sx = @character.pattern * @cw
sy = (8 - @character.direction) / 2 * @ch
@shadow.src_rect.set(sx, sy, @cw, @ch)
@shadow.x = self.x
@shadow.ox = self.ox
@shadow.y = self.y
@shadow.z = self.z
@shadow.opacity = self.opacity
@shadow.blend_type = self.blend_type
@shadow.bush_depth = self.bush_depth
end
end
# 动画
if @character.animation_id != 0
animation = $data_animations[@character.animation_id]
animation(animation, true)
@character.animation_id = 0
end
end
end
………………腿神大我彻底彻底的服了…………
速度与质量兼备啊…………我完全没看出来有卡帧的…………
但是进入菜单界面,阴影仍继续存在……
而且阴影会遮挡其他NPC
我试了一下,4个NPC,速度和频率都不同
反正尽量不用两个值都为6的速度还可以
阴影跟角色脚的距离有点开,阴影透明度应该稍微淡 这个东西是半成品。。。我都说了这个东西有问题啊。。。这个完全不会卡祯。。。我只是说这个东西可能和八方向不兼容,并且初始化的时间长啊
回 23楼(secondsen) 的帖子
是啊 在人物是八方行走时 打开游戏突然卡了一下 但是人物的八方和影子不同的还有人物和影子的距离 离的远啊 哪么 正立和倒立的影子 用谁最好呢 你们想想吧回 25楼(secondsen) 的帖子
我说了我电脑上没有初始化的事件的说……1.86Ghz的CPU双核 2G内存 8600GT
07年的机子了……一点事没有……
RM好像不会硬解码一类的,我觉得跟显存有关系? 应该CPU的问题。。。另外,只要有事件就会有初始化。。。你能看到影子就一定有事件。有事件,事件刚生成时会初始化。。。也就是换地图屏幕会变黑的那段时间里进行。
倒立影子要考虑优先级。。。当然是正立的简单。。。这个东西LZ是八方脚本就需要专门定做,自求多福吧