幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4874|回复: 2

[入门教程] VX走路渐变,透明OR出现

[复制链接]

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
发表于 2009-1-30 23:25:23 | 显示全部楼层 |阅读模式
小脚本,简单货,说正题

Game_Character 加入标识
  ###################################
  attr_accessor :move_opacity             # 行动时候渐变透明
  attr_accessor :step_opacity             # 渐变的步数
  ###################################
初始化里添加
    ###############
    @move_opacity = 0
    @step_opacity = 1
    ###############

移动时更新  这个方法(def) 更改如下
  1.   #--------------------------------------------------------------------------
  2.   # ● 移动时的更新
  3.   #--------------------------------------------------------------------------
  4.   def update_move
  5.     distance = 2 ** @move_speed   # 变换移动速度与移动距离
  6.     distance *= 2 if dash?        # 跑步状态时移动速度加倍
  7.     #########################
  8.     if @move_opacity > 0 && @opacity < 250
  9.       @opacity += 255.0 / 2 ** (7 + @step_opacity - @move_speed)
  10.     elsif @move_opacity < 0 && @opacity > 5
  11.       @opacity -= 255.0 / 2 ** (7 + @step_opacity - @move_speed)
  12.     end
  13.     #########################
  14.     @real_x = [@real_x - distance, @x * 256].max if @x * 256 < @real_x
  15.     @real_x = [@real_x + distance, @x * 256].min if @x * 256 > @real_x
  16.     @real_y = [@real_y - distance, @y * 256].max if @y * 256 < @real_y
  17.     @real_y = [@real_y + distance, @y * 256].min if @y * 256 > @real_y
  18.     update_bush_depth unless moving?
  19.     if @walk_anime
  20.       @anime_count += 1.5
  21.     elsif @step_anime
  22.       @anime_count += 1
  23.     end
  24.   end
  25.   ############################
  26.   def update_stand(sign,frame)
  27.     if (@opacity < 5 && !sign) || (@opacity > 250 && sign)
  28.       return
  29.     end
  30.     if sign
  31.       @opacity += 255.0 / frame
  32.     else
  33.       @opacity -= 255.0 / frame
  34.     end
  35.   end
  36.   def ajustment
  37.     if @opacity <= 5
  38.       @opacity = 0
  39.     end
  40.     if @opacity >= 250
  41.       @opacity = 255
  42.     end
  43.   end
  44.   ############################
复制代码

现在对这个说明一下。。。多了两个方法,一个是万能的渐变
另一个是调整一下透明度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
可有可无,调整一下而已,没什么用

汇报完毕,我闪人
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复

使用道具 举报

0

主题

1

帖子

8

积分

①新人

积分
8
QQ
发表于 2012-2-17 21:19:30 | 显示全部楼层
太牛了!t挺复杂的,希望能给个范例。
呵呵呵,初入幻想森林,多多包涵!
回复 支持 反对

使用道具 举报

550

主题

9116

帖子

214748万

积分

超级版主

如同神一般的存在,腿神!拖后腿的神~~

Rank: 8Rank: 8

积分
2147483647
 楼主| 发表于 2012-2-18 19:50:56 | 显示全部楼层
从做了几次系统,范例早就弄丢了。。。OTZ。。。
我就是你们的神,庶民们,追随我吧!跟着我一起拖后腿!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-3-29 16:48 , Processed in 0.023099 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表