|
小脚本,简单货,说正题
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[7].move_opacity = -1
(事件7,看[7]这个编号就知道了,负数是变透明,正数变成可见,0是不渐变)
脚本 $game_map.events[7].step_opacity = 2
(当走到第二个格子的时候,简便结束)
这就可以了,其他的事件该怎么做就怎么做
比如 设置移动路线 事件7 (等待移动结束)
向左走
向左走
不用移动路线,而事件的移动类型改为随机也能看出效果。。很灵活,事件还是那么调用就可以
第二个 update_stand(sign,frame) 的说明
调用方法
$game_map.events[7].update_stand(sign,frame)
其中 sign 为 true 或 false
fram 是 来影响 每一次调用改变透明度的量的
是用方法,这是game_character 而不是 Sprite_character(不知道拼写的对否)
这样很明显了 事件里面要有循环才可以生效,要不是只改一次看不出来效果
举个例子
变数操作 变数1 = 0
循环
脚本 $game_map.events[6].update_stand(false,30)
变数操作 变数1 += 1
等待1贞 (TMD我把这个最重要的给忘记了)
条件分歧 如果 变数1 == 30
中断循环
条件分歧结束
循环结束
必须有循环,适合场景中的事件在原地不动的时候的渐变
ajustment调用方发和上面介绍的一样
$game_map.events[6].ajustment
可有可无,调整一下而已,没什么用
汇报完毕,我闪人 |
|