查看: 28197|回复: 63

[原创发布] RB的视频脚本教程【暂停更新,目前期数为8+4】

[复制链接]
梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

发表于 2015-7-16 22:17:45 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 RyanBern 于 2017-8-23 11:50 编辑

给自己开个新坑,不知道自己的视频做得如何呢?走过路过,想要学习脚本的同学们可以过来看看,看后请把你们的意见砸过来吧。
视频上传的优酷,有高清画质(第三期开始是超清画质),看起来感觉还可以,应该不至于看不清吧。
喜欢本视频的同学点一下关注吧,或者在这个主楼点评也行,这样我更新之后你会受到提示的。
每一讲的内容我拆成了若干部分上传,所以看的时候大家可能要看60*N秒的广告,这个我不是故意的。据说分段上传能避免被吞,并且能给高清画质。我第一次整个传的时候youku给我吞个干干净净-_-||
提示:B站的观看效果较清楚一些,如果B站的地址无法观看,请尽快向我反映情况。另外youku上的超清视频的清晰度也是可以的,不过缺点就是有烦人的广告-_-||


写在前面
经过十多天的不懈努力,这个视频教程也初步更新差不多了,目前主要章节有8辑,再加上4个特别篇,感觉够大家看一阵子了。每一辑的总共时常大约一个小时(第八辑是100分钟),为了避免大家看视频产生不耐烦情绪,我把视频分拆成了若干部分,每一部分的时常在20分钟左右。教程里面讲了很多脚本编写的实例,起初大家可以模仿着来,如果有不理解的地方也没有关系,可以到论坛里面和我交流。当然光是看完这些视频,自己写脚本,改脚本仍然会有许多困难,大家不要着急,写脚本的技能是慢慢培养的,只有你多写,多思考,少伸手,你的水平才有可能提高。最后我还是希望大家多评论,你们的关注就是我更新的动力。这个教程并不是不更新了,只是最近精力有限,实在是做不动了,另外我目前能想到的内容也做差不多了,容我找找灵感。如果可能的话,16年1月份会续更。


网盘下载地址:http://pan.baidu.com/s/1i4ANbIP
视频已经全部上传,如果两个站点都无法观看,可以到此网盘里面寻找。



优酷专辑地址:http://list.youku.com/albumlist/show/id_26059746
B站专辑地址:http://www.bilibili.com/video/av2588100/



RB的视频脚本教程第一辑——图片标题(4集全)

Part I:标题文字淡入效果
B站观看地址:http://www.bilibili.com/video/av2588100/index_1.html
Part II:标题文字淡入效果(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_2.html
Part III:图片标题命令的制作
B站观看地址:http://www.bilibili.com/video/av2588100/index_3.html
Part IV:图片标题的命令制作(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_4.html
RB的视频脚本教程第二辑——战斗画面美化(4集全)

Part I:横版战斗系统初步
B站观看地址:http://www.bilibili.com/video/av2588100/index_5.html
Part II:HP/SP槽的绘制
B站观看地址:http://www.bilibili.com/video/av2588100/index_6.html
Part III:HP/SP槽的绘制(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_7.html
Part IV:角色命令窗口的美化
B站观看地址:http://www.bilibili.com/video/av2588100/index_8.html
RB的视频脚本教程第三辑——地图美化(4集全)

Part I:制作地图名和金钱显示窗口
B站观看地址:http://www.bilibili.com/video/av2588100/index_10.html
Part II:制作地图名和金钱显示窗口(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_11.html
Part III:物品得失提示窗口的设计
B站观看地址:http://www.bilibili.com/video/av2588100/index_12.html
Part IV:物品得失提示窗口的设计(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_13.html
RB的视频脚本教程第四辑——技能公式(4集全)

Part I:制作技能的Critical效果
B站观看地址:http://www.bilibili.com/video/av2588100/index_14.html
Part II:制作物理特技沉默和技能消耗物品效果
B站观看地址:http://www.bilibili.com/video/av2588100/index_15.html
Part III:制作武器属性加成技能威力和被动技能"致命一击"的效果
B站观看地址:http://www.bilibili.com/video/av2588100/index_16.html
Part IV:制作"吸血"特技(R考场第二期)
B站观看地址:http://www.bilibili.com/video/av2588100/index_17.html
第四辑范例工程: 技能公式.rar (188.37 KB, 下载次数: 380)
RB的视频脚本教程第五辑——对话框加强(4集全)

Part I:默认对话框脚本解说
B站观看地址:http://www.bilibili.com/video/av2588100/index_19.html
Part II:对话框显示人物的名字和立绘
B站观看地址:http://www.bilibili.com/video/av2588100/index_20.html
Part III:制作对话框文字逐个显示的效果
B站观看地址:http://www.bilibili.com/video/av2588100/index_21.html
Part IV:教你如何给【显示文章】添加额外控制码
B站观看地址:http://www.bilibili.com/video/av2588100/index_22.html
第五辑范例工程: 对话框美化.rar (273.67 KB, 下载次数: 358)
RB的视频脚本教程第六辑——队伍跟随(4集全)

Part I:默认地图人物显示机制的解说以及新类Game_Follower的构造
B站观看地址:http://www.bilibili.com/video/av2588100/index_23.html
Part II:将新建的Game_Follower和Sprite_Character连接
B站观看地址:http://www.bilibili.com/video/av2588100/index_24.html
Part III:队伍跟随的实现
B站观看地址:http://www.bilibili.com/video/av2588100/index_25.html
Part IV:队伍跟随的实现(续)
B站观看地址:http://www.bilibili.com/video/av2588100/index_26.html
第六辑范例工程: 人物跟随.rar (189.02 KB, 下载次数: 289)
RB的视频脚本教程第七辑——任务系统(4集全)

Part I:任务数据库的建立
B站观看地址:http://www.bilibili.com/video/av2588100/index_28.html
Part II:队伍增添任务处理以及任务列表初步描绘
B站观看地址:http://www.bilibili.com/video/av2588100/index_29.html
Part III:任务列表与任务详细信息的描绘
B站观看地址:http://www.bilibili.com/video/av2588100/index_30.html
Part IV:任务详细信息的描绘与任务场景的最终制作
B站观看地址:http://www.bilibili.com/video/av2588100/index_31.html
第七辑范例工程: 任务系统.rar (189.5 KB, 下载次数: 296)
RB的视频脚本教程第八辑——技能升级系统(6集全)

Part I:技能升级数据库的设计
B站观看地址:http://www.bilibili.com/video/av2588100/index_32.html
Part II:显示角色和剩余技能点数
B站观看地址:http://www.bilibili.com/video/av2588100/index_33.html
Part III:制作可升级的技能列表
B站观看地址:http://www.bilibili.com/video/av2588100/index_34.html
Part IV:制作技能升级前后对比窗口
B站观看地址:http://www.bilibili.com/video/av2588100/index_35.html
Part V:技能升级前后对比窗口(续)以及制作升级确认提示窗口
B站观看地址:http://www.bilibili.com/video/av2588100/index_36.html
Part VI:技能升级场景的最终制作
B站观看地址:http://www.bilibili.com/video/av2588100/index_37.html
第八辑范例工程: 技能升级.rar (191.09 KB, 下载次数: 342)
RB的视频脚本教程特别篇——额外内容的收录

EPS01:p函数查错范例
B站观看地址:http://www.bilibili.com/video/av2588100/index_9.html
EPS02:数据库功能拓展
B站观看地址:http://www.bilibili.com/video/av2588100/index_18.html
EPS03:alias使用方法简介
B站观看地址:http://www.bilibili.com/video/av2588100/index_27.html
EPS04:谈谈各种类型的变量
B站观看地址:http://www.bilibili.com/video/av2588100/index_38.html


最后的最后:如果你想支持RB的话,就塞一些糖给我吧/w\
求糖.rb (19 Bytes, 下载次数: 4, 售价: 20 星屑)

点评

因为我本来就是大叔啊,没事P叔会看到这帖的。  发表于 2015-7-20 19:29
好大叔的声音……话说这贴没版主加分吗?  发表于 2015-7-20 18:28
好哪啥啊?  发表于 2015-7-20 15:55
声音好那啥啊 = =  发表于 2015-7-20 15:09
[s]评分数超过限制 囧[/s]  发表于 2015-7-16 22:46

评分

参与人数 22星屑 +7001 梦石 +5 赞 +5 收起 理由
15217320790 + 1 我很赞同
ghostboy + 1 我很赞同
miantouchi + 1 精品文章
cc610523 + 1 精品文章
2017pig + 1 我很赞同
zaiy2863 + 1 rb本人没有露面(破坏凑整哈).
2498126422 + 10 凑个整
邪月长啸 + 120 精品文章
怪蜀黍 + 5000 + 5 精品文章
龙和许也 + 30 塞糖

查看全部评分

梦石
20
星屑
1840
在线时间
6925 小时
注册时间
2012-12-14
回帖
10960

短篇十战斗者组别冠军开拓者贵宾短篇九勇士组亚军

发表于 2015-7-16 23:20:39 | 显示全部楼层
路过围观一下,结果发现视频失效
录视频的话,自我感觉选对录制软件是关键吧(大雾)
然后优酷的审核比较奇怪,一直不想在优酷放视频也是个原因。
魔女喜欢放在土豆上。不过视频的唯一缺点就是有广告(大雾)

点评

所以说还是bilibili大法好!~\(≧▽≦)/~!  发表于 2015-7-17 10:16
我正在想办法弄,传了2小时结果给我屏蔽了,比较懊恼。我会努力修复的  发表于 2015-7-16 23:22
大家好,这里是晨露的说。请多多指教。
刚入门RM软件制作,请大家多多帮助我哦。
落雪君的欢乐像素教程,欢迎查阅。

回复

使用道具 举报

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
回帖
1057
发表于 2015-7-16 23:25:41 | 显示全部楼层
是实现视频播放的脚本么QAQ

点评

啊,是,youku都给我气糊涂了  发表于 2015-7-16 23:38
不应该是基础脚本教学么。。。  发表于 2015-7-16 23:32
是基础教学脚本-_-||  发表于 2015-7-16 23:27
RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复

使用道具 举报

梦石
0
星屑
48
在线时间
784 小时
注册时间
2013-1-4
回帖
1057
发表于 2015-7-17 00:59:11 | 显示全部楼层
本帖最后由 墨凌羽 于 2015-7-17 15:05 编辑

鉴于视频还没传好(结果写完发现已经好了ORZ) 我就在这擅做主张的讲几个Ruby脚本的小坑/小技巧(班门弄斧,还望见谅)
说坑是因为稍不注意就会让你耗费很长时间去debug,而说小技巧则是用得好可以带来很不错的效果
[fold=内容]1.and/or和&&/||
这两个大体来看效果差不多,然而,很重要的一点是优先度的问题。来看看下面这段代码:
[pre lang="ruby" line="1"]x = true and false # => x 的值为 true
x = true && false  # => x 的值为 false[/pre]造成这样结果的原因是and/or的优先度不仅比&&/||低,更比=低而&&/||的优先度比=高。(and和or的优先度一样,而&&比||高)

2.super和super()
super和super()都是呼叫超类的当前方法,然而要注意的是super会把当前的参数传递给超类,而super()则不会。所以写super不是偷懒也不是装逼而是代码本身的需要。

3.module A;class B和 class A::B
这两个看起来也差不多,如果你试下下面这段代码就会知道不同在哪里。
[pre lang="ruby" line="1"]X = 0
module A
     X = 1
     class B
        def x1
           p X
        end
    end
end
class A::B
  def x2
      p X
  end
end
A::B.new.x1 # 输出1
A::B.new.x2 # 输出0[/pre]原因:module A 和class A::B的词法域并不相同。
4. 表达式1 ? 表达式2 : 表达式3和 if 表达式1 then 表达式2 else 表达式3 end
?:和ifthen差不多效果。然而,还是优先度的问题。
x ? return 1 : return 2 的结果是会报错而if x then return 1 esle return 2 end 则不会。(这样写则没问题: x ? (return 1) : (return 2) 不过推荐这么写 return x ? 1 : 2 )

5.还是? : 的问题。
用这个语句可以写出漂亮的代码,同时也不用像if then else end 那样需要敲太多的东西(简直写五行脚本必备啊)。不过能不能写出跟复杂的结构呢?当然可以,只要用好嵌套就行。
不过,如果写成[pre lang="ruby" line="1"] x > 60 ? x < 80 ? "一般" :  x < 100 ? "优秀" : "错误" : "不及格" [/pre]极大地降低可读性,比起if then else end 的嵌套,阅读起来很费劲。一个解决办法是写成这样:
[pre lang="ruby" line="1"]x > 60 ? x > 80 ? x > 100 ? "优秀" : "错误" : "一般" : "不及格" [/pre]则极大的提高了可读性。

6.return的一种作死写法
[pre lang="ruby" line="1"]def read(p) return x=[],File.open(p,"r").readlines().each{|i|x.push(i.split(","))} end
read("text.csv")[0].each{|i| i.each{|n| p n}}[/pre]
这段代码初看可能会觉得有问题,因为return的第一项x是个空数组。然而并不是,return语句会先对后面的表达式求值然后再返回,x在return语句的第二个表达式里被push进了元素。不过,如果写成return File.open(p,"r").readlines().each{|i|x.push(i.split(","))},x[]则会报错。因为在计算第一个表达式时会x还未定义。(这又是一个被五行脚本憋出来的鬼写法)

7.特殊方法和类方法
[pre lang="ruby" line="1"]class A
  ...
end
def A.y
   2
end
a = A.new
def a.x
    x = 1
end[/pre]这里x是特殊方法,y是类方法。特殊方法是针对对象而不是类(类方法恰好相反).这两个都可以用来定义Monkey Patch。

8.private关键字
private可以定义私有方法,然而这并不能把self.method方法变为私有方法。
[pre lang="ruby" line="1"]class A
  private
  def self.x
    puts 1
  end
end
A.x [/pre]结果是1而不是抛出 NoMethodError。
要把类方法变为私有可以这么写
[pre lang="ruby" line="1"]class A
  class << self
    private
    def x
        puts 1
    end
  end
end
A.x[/pre]结果会抛出 NoMethodError
或者
[pre lang="ruby" line="1"]class A
  def self.x
    puts 1
  end
  private_class_method :x
end[/pre]记得private_class_method要写在方法的后面不然会抛出NameError[/fold]

点评

高亮不代表是关键字,不高亮也不代表是关键字。比如关键字 __FILE__ 通常是不高亮的,require,attr_reader 这种的通常是高亮的  发表于 2015-7-17 15:24
中文"?"的问题已修复。代码高亮什么的VScode这玩意里private是和关键字一样的。。。ORZ(这玩意里ruby语法高亮出现错误的不止一个。。。)最后求塞糖~   发表于 2015-7-17 15:08
? :里面的'?'不要打成中文的啊,你这里有几处就是中文的。[s]你看private都没有变颜色,能是关键字么[/s]  发表于 2015-7-17 08:10
p Module.private_method_defined? :private # => true  发表于 2015-7-17 06:50
这么早起床。。。然而我还没有睡ORZ我一直都是当做关键字来着。。。。难道是方法?  发表于 2015-7-17 06:49

评分

参与人数 3星屑 +333 收起 理由
taroxd + 33 我很赞同
RyanBern + 140 糖
恐惧剑刃 + 160 精品文章

查看全部评分

RM-GUI延期。。。最近被黑心老板压迫T_T
二次元少女的shitake,长着长脸,身高165,蓝色卷双马尾,FCUP,瞳色黑色,病气和御宅属性,是天才少女。
回复

使用道具 举报

梦石
0
星屑
2044
在线时间
758 小时
注册时间
2013-7-3
回帖
117
发表于 2015-7-20 00:49:50 | 显示全部楼层
本帖最后由 x水管修理工x 于 2015-7-20 07:38 编辑

视频的清晰度看不太清楚啊,能不能把工程也发上来看看?

点评

另外前三辑(不包括特别篇)的工程都是用的http://rm.66rpg.com/thread-380938-1-1.html里面的考场工程。  发表于 2015-7-20 09:15
B站的视频清晰度是可以的,上传优酷的视频可能有些模糊,最近我会补一份传到B站上。  发表于 2015-7-20 09:14
签名什么的?呵呵
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2015-7-20 07:08:01 | 显示全部楼层
噗……那个工程上网络脚本是要干什么用……

点评

估计是作者天真地想把他的游戏弄成正版带成cdkey然后联网激活  发表于 2015-7-20 09:13
回复

使用道具 举报

梦石
0
星屑
400
在线时间
602 小时
注册时间
2014-5-8
回帖
602
发表于 2015-7-22 08:06:41 | 显示全部楼层
能不能教教怎么写队列系统呢?虽然有现成的,但是缺点太多,除了第一个角色,其他的角色不能判断坐标,还全是日文注释。

点评

可是XP不带  发表于 2015-7-22 11:37
VA自带。  发表于 2015-7-22 08:15
回复

使用道具 举报

梦石
0
星屑
9292
在线时间
2504 小时
注册时间
2011-5-20
回帖
14521

开拓者

发表于 2015-7-22 20:45:48 | 显示全部楼层
RBQ教程点赞那么RB考场的题目现在还在收集?

点评

没有啊,下一期考场如果有的话也是半年后  发表于 2015-7-25 22:40
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复

使用道具 举报

梦石
0
星屑
400
在线时间
602 小时
注册时间
2014-5-8
回帖
602
发表于 2015-7-26 13:42:05 | 显示全部楼层
按照你的那个逐字描绘的教程,我做出来的为什么什么字都没有呢,不知道哪一步做错了,帮忙看看呗(前面的名称窗口的头像没加,直接做的逐字描绘)
[pre lang="ruby"]#==============================================================================
# ■ Window_Message
#------------------------------------------------------------------------------
#  显示文章的信息窗口。
#==============================================================================

class Window_Message < Window_Selectable
  Mes_Speed = 1
  #--------------------------------------------------------------------------
  # ● 初始化状态
  #--------------------------------------------------------------------------
  def initialize
    super(80, 304, 480, 160)
    self.contents = Bitmap.new(width - 32, height - 32)
    self.visible = false
    self.z = 9998
    @fade_in = false
    @fade_out = false
    @contents_showing = false
    @cursor_width = 0
    @contents_drawing = false
    @x = @y = 0
    @delay = 0
    @text = ""
    self.active = false
    self.index = -1
  end
  #--------------------------------------------------------------------------
  # ● 释放
  #--------------------------------------------------------------------------
  def dispose
    terminate_message
    $game_temp.message_window_showing = false
    if @input_number_window != nil
      @input_number_window.dispose
    end
    super
  end
  #--------------------------------------------------------------------------
  # ● 处理信息结束
  #--------------------------------------------------------------------------
  def terminate_message
    self.active = false
    self.pause = false
    self.index = -1
    self.contents.clear
    # 清除显示中标志
    @contents_showing = false
    # 呼叫信息调用
    if $game_temp.message_proc != nil
      $game_temp.message_proc.call
    end
    # 清除文章、选择项、输入数值的相关变量
    $game_temp.message_text = nil
    $game_temp.message_proc = nil
    $game_temp.choice_start = 99
    $game_temp.choice_max = 0
    $game_temp.choice_cancel_type = 0
    $game_temp.choice_proc = nil
    $game_temp.num_input_start = 99
    $game_temp.num_input_variable_id = 0
    $game_temp.num_input_digits_max = 0
    # 开放金钱窗口
    if @gold_window != nil
      @gold_window.dispose
      @gold_window = nil
    end
    return
    @text = text.clone
  end
  
  def draw_single_character(c)
    # \\ 的情况下
        if c == "\000"
          # 还原为本来的文字
          c = "\\"
        end
        # \C[n] 的情况下
        if c == "\001"
          # 更改文字色
          text.sub!(/\[([0-9]+)\]/, "")
          color = $1.to_i
          if color >= 0 and color <= 7
            self.contents.font.color = text_color(color)
          end
          # 下面的文字
          next
        end
        # \G 的情况下
        if c == "\002"
          # 生成金钱窗口
          if @gold_window == nil
            @gold_window = Window_Gold.new
            @gold_window.x = 560 - @gold_window.width
            if $game_temp.in_battle
              @gold_window.y = 192
            else
              @gold_window.y = self.y >= 128 ? 32 : 384
            end
            @gold_window.opacity = self.opacity
            @gold_window.back_opacity = self.back_opacity
          end
          # 下面的文字
          next
        end
        # 另起一行文字的情况下
        if c == "\n"
          # 刷新选择项及光标的高
          if y >= $game_temp.choice_start
            @cursor_width = [@cursor_width, x].max
          end
          # y 加 1
          y += 1
          x = 0
          # 移动到选择项的下一行
          if y >= $game_temp.choice_start
            x = 8
          end
          # 下面的文字
          next
        end
        # 描绘文字
        self.contents.draw_text(4 + x, 32 * y, 40, 32, c)
        # x 为要描绘文字的加法运算
        x += self.contents.text_size(c).width
    end
  #--------------------------------------------------------------------------
  # ● 设置窗口位置与不透明度
  #--------------------------------------------------------------------------
  def reset_window
    if $game_temp.in_battle
      self.y = 16
    else
      case $game_system.message_position
      when 0  # 上
        self.y = 16
      when 1  # 中
        self.y = 160
      when 2  # 下
        self.y = 304
      end
    end
    if $game_system.message_frame == 0
      self.opacity = 255
    else
      self.opacity = 0
    end
    self.back_opacity = 160
  end
  #--------------------------------------------------------------------------
  # ● 刷新画面
  #--------------------------------------------------------------------------
  def update
    super
    # 渐变的情况下
    if @fade_in
      self.contents_opacity += 24
      if @input_number_window != nil
        @input_number_window.contents_opacity += 24
      end
      if self.contents_opacity == 255
        @fade_in = false
      end
      @contents_drawing = true
      return
    end
    if @contents_drawing
      if @delay > 0
        @delay -= 1
        return
      end
      if @text != nil && (c = @text.slice!(/./m)) != nil
        draw_single_character(c)
        @delay = Mes_Speed
        return
      end
      # 选择项的情况
      if $game_temp.choice_max > 0
        @item_max = $game_temp.choice_max
        self.active = true
        self.index = 0
      end
      # 输入数值的情况
      if $game_temp.num_input_variable_id > 0
        digits_max = $game_temp.num_input_digits_max
        number = $game_variables[$game_temp.num_input_variable_id]
        @input_number_window = Window_InputNumber.new(digits_max)
        @input_number_window.number = number
        @input_number_window.x = self.x + 8
        @input_number_window.y = self.y + $game_temp.num_input_start * 32
      end
      @contents_drawing = false
      return
    end
    # 输入数值的情况下
    if @input_number_window != nil
      @input_number_window.update
      # 确定
      if Input.trigger?(Input::C)
        $game_system.se_play($data_system.decision_se)
        $game_variables[$game_temp.num_input_variable_id] =
          @input_number_window.number
        $game_map.need_refresh = true
        # 释放输入数值窗口
        @input_number_window.dispose
        @input_number_window = nil
        terminate_message
      end
      return
    end
    # 显示信息中的情况下
    if @contents_showing
      # 如果不是在显示选择项中就显示暂停标志
      if $game_temp.choice_max == 0
        self.pause = true
      end
      # 取消
      if Input.trigger?(Input::B)
        if $game_temp.choice_max > 0 and $game_temp.choice_cancel_type > 0
          $game_system.se_play($data_system.cancel_se)
          $game_temp.choice_proc.call($game_temp.choice_cancel_type - 1)
          terminate_message
        end
      end
      # 确定
      if Input.trigger?(Input::C)
        if $game_temp.choice_max > 0
          $game_system.se_play($data_system.decision_se)
          $game_temp.choice_proc.call(self.index)
        end
        terminate_message
      end
      return
    end
    # 在渐变以外的状态下有等待显示的信息与选择项的场合
    if @fade_out == false and $game_temp.message_text != nil
      @contents_showing = true
      $game_temp.message_window_showing = true
      reset_window
      
      Graphics.frame_reset
      self.visible = true
      self.contents_opacity = 0
      if @input_number_window != nil
        @input_number_window.contents_opacity = 0
      end
      @fade_in = true
      return
    end
    # 没有可以显示的信息、但是窗口为可见的情况下
    if self.visible
      @fade_out = true
      self.opacity -= 48
      if self.opacity == 0
        self.visible = false
        @fade_out = false
        $game_temp.message_window_showing = false
      end
      return
    end
  end
  #--------------------------------------------------------------------------
  # ● 刷新光标矩形
  #--------------------------------------------------------------------------
  def update_cursor_rect
    if @index >= 0
      n = $game_temp.choice_start + @index
      self.cursor_rect.set(8, n * 32, @cursor_width, 32)
    else
      self.cursor_rect.empty
    end
  end
end
[/pre]
回复

使用道具 举报

梦石
0
星屑
9557
在线时间
5074 小时
注册时间
2013-6-21
回帖
3459

开拓者贵宾剧作品鉴家

 楼主| 发表于 2015-7-26 20:19:47 | 显示全部楼层
布罗利 发表于 2015-7-26 13:42
按照你的那个逐字描绘的教程,我做出来的为什么什么字都没有呢,不知道哪一步做错了,帮忙看看呗(前面的名 ...

大致看了一下,发现如下问题:
1. process_all_characters方法没有定义,那个@text = text.clone本来是此方法的一句话,结果被误写到terminate_message里面去了。由于没有处理文字的这一步骤,所以文字当然就不显示了。
2. draw_single_character里面的变量x, y, text均要变为实变量@x, @y, @text,原因请自己思考。
3. draw_single_character里面的next要变成return,这是因为原来这些语句是在while循环当中,而当方法独立出来之后没有循环,所以此时结束本次描绘需要写return。

不过既然范例工程都放出来了为什么不先对照看看呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部