- 注册时间
- 2004-11-7
- 最后登录
- 2009-7-28
⑦老手
pliskin
- 积分
- 7004
|
[s:2]
看这之前,最好熟悉熟悉脚本语言---看《帮助文件》是个不错的选择(这个不是广告)。
文章比较详细的说明了固定窗口的设计方式----好象也不是很详细,这要看你的理解能力了。(笑)
看了这个,基本上可以自己制作窗口了。
补充:多多利用f9的便捷,利用全局变量$game_variables[n]来 调整窗口,制作起来将很方便
《窗口教程1》——了解窗口
窗口,在这里大体上说的是菜单界面,制作并不是复杂。窗口分为两种,一种是可选择的(技能,物品等);另一种是不可选择的(金钱,时间等)。可选择的窗口重载的是 Window_Selectable中的定义,不可选择窗口重载的是Window_Base中的定义。
下面,我向大家介绍不可选择(固定)窗口。请看Window_Base前两段——初始化和释放定义,
制作一个简单窗口,主要是用初始化和释放,例如:window_gold的制作程序是这样的:
1、class Window_Gold < Window_Base表示的是;Window_Gold将会引用Window_Base中的定义。
2、初始化:既然已经定义了,那么去看看Window_Base就可以知道super后面的4个参数表示什么意思(窗口的坐标和大小)——编写窗口就是这么两条!如果你不想记忆语法,那么可以直接从window_gold中复制(从开头到super,参数自己去修改)。
3、这个窗口只是一个白框框,里面没有任何东西。继续看Window_Gold中的初始化定义。
有人问self是什么,它是指“当前执行对象的本身”,在这里表示的是窗口对象的本身(因为引用的是Window_Base中的定义)。那么, self.xxx就是窗口里的东西了。
4、self.contents = Bitmap.new(width - 32, height - 32),表示:在窗口宽度-32,高度-32的位置描绘图形,也就是在这个地方写内容。
5、refresh:刷新——因为金钱是会改变的(如果是不改变的窗口就不用刷新)
end:结束初始化定义。
6、如何刷新?self.contents.clear:把窗口中的内容清除(就象用橡皮擦一样,把一个写有字的纸擦干净,方便以后继续写)
cx = contents.text_size($data_system.words.gold).width:并没有什么特别的意义,只是限定了$data_system.words.gold的宽度,仅仅是方便的玩意。也就是说:描绘金钱数量字符串的长度,不能超过表示金钱的符号位置。
7、 self.contents.font.color = normal_color
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2)
这两句才是刷新的主流。
self.contents.font.color = normal_color:设置字体的颜色为 normal_color,也可以替换成Color.new(R,G,B,A)
self.contents.draw_text(4, 0, 120-cx-2, 32, $game_party.gold.to_s, 2):draw_text表示在contents窗口中描绘文字。这里,描绘的是金钱的数量$game_party.gold,金钱是用数字表示的,这就要把它to_s变成“字符串”才可以描绘。前面的参数,是限制文字出现的地点和大小,最后的“2”是对齐方式(表示的是右对齐)。有关draw_text去看帮助文件吧。
最后,是描绘$data_system.words.gold(金钱符号)的位置,因为本身就是一个“字符串”,所以不需要to_s
好了,今天的课就讲到这。
ps:说的制作窗口,是说程序中读取了一个窗口,但是这个窗口我们是看不见了,要想看见就要释放。
方法:在Scene_Menu中,添加生成窗口对象(格式自己去套),然后在下面的释放中也添加一个(也是自己套格式)。 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|