VX走路渐变,透明OR出现
小脚本,简单货,说正题Game_Character 加入标识
###################################
attr_accessor :move_opacity # 行动时候渐变透明
attr_accessor :step_opacity # 渐变的步数
###################################
初始化里添加
###############
@move_opacity = 0
@step_opacity = 1
###############
移动时更新这个方法(def) 更改如下
#--------------------------------------------------------------------------
# ● 移动时的更新
#--------------------------------------------------------------------------
def update_move
distance = 2 ** @move_speed # 变换移动速度与移动距离
distance *= 2 if dash? # 跑步状态时移动速度加倍
#########################
if @move_opacity > 0 && @opacity < 250
@opacity += 255.0 / 2 ** (7 + @step_opacity - @move_speed)
elsif @move_opacity < 0 && @opacity > 5
@opacity -= 255.0 / 2 ** (7 + @step_opacity - @move_speed)
end
#########################
@real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
@real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
@real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
@real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
update_bush_depth unless moving?
if @walk_anime
@anime_count += 1.5
elsif @step_anime
@anime_count += 1
end
end
############################
def update_stand(sign,frame)
if (@opacity < 5 && !sign) || (@opacity > 250 && sign)
return
end
if sign
@opacity += 255.0 / frame
else
@opacity -= 255.0 / frame
end
end
def ajustment
if @opacity <= 5
@opacity = 0
end
if @opacity >= 250
@opacity = 255
end
end
############################
现在对这个说明一下。。。多了两个方法,一个是万能的渐变
另一个是调整一下透明度ajustment。可有可无,保险起见而已,透明度5和0 在视觉上都是透明的,而250,255你也看不出来差别所以作个调整
那么调用方法,有那个我多加的万能的渐变,其实能应付很多情况。。。。。
先说移动时渐变
调用
脚本 $game_map.events.move_opacity = -1
(事件7,看这个编号就知道了,负数是变透明,正数变成可见,0是不渐变)
脚本 $game_map.events.step_opacity = 2
(当走到第二个格子的时候,简便结束)
这就可以了,其他的事件该怎么做就怎么做
比如 设置移动路线 事件7(等待移动结束)
向左走
向左走
不用移动路线,而事件的移动类型改为随机也能看出效果。。很灵活,事件还是那么调用就可以
第二个 update_stand(sign,frame) 的说明
调用方法
$game_map.events.update_stand(sign,frame)
其中 sign 为 true或 false
fram 是 来影响 每一次调用改变透明度的量的
是用方法,这是game_character 而不是 Sprite_character(不知道拼写的对否)
这样很明显了 事件里面要有循环才可以生效,要不是只改一次看不出来效果
举个例子
变数操作变数1 = 0
循环
脚本 $game_map.events.update_stand(false,30)
变数操作变数1+=1
等待1贞 (TMD我把这个最重要的给忘记了)
条件分歧如果变数1 == 30
中断循环
条件分歧结束
循环结束
必须有循环,适合场景中的事件在原地不动的时候的渐变
ajustment调用方发和上面介绍的一样
$game_map.events.ajustment
可有可无,调整一下而已,没什么用
汇报完毕,我闪人 太牛了!t挺复杂的,希望能给个范例。 从做了几次系统,范例早就弄丢了。。。OTZ。。。
页:
[1]