幻想森林

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

自制窗口教程(翻译的)

[复制链接]

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
发表于 2005-4-13 20:59:00 | 显示全部楼层 |阅读模式
这是一个比较详细的自制窗口教程,下午逐字逐句看完了,顺便翻译了一下和大家分享

出自   phylomortis.com(并未得到翻译授权)

翻译:appleseed

http://www.phylomortis.com/resource/script/tut002.html

以上是原网址,有图,对照着看,效果更佳。

1

首先要知道的是,要创建一个和尤其中其他窗口风格一样的窗口,你的窗口所对应的类就必须

包含于(就是<)Window_Base,如果你的窗口还含有选择项的话,还必须包含于

Window_Selectable,这次我们要做的是做一个不含有选择项的用来给玩家显示刚得到的物品的

窗口。

这个新建窗口的类的骨架就如下面的源码1。

首先初始化函数,它包括两项:
type 是得到物品的种类
id  是得到物品的id

然后介绍一下super的用法:
super(本窗口距游戏屏幕左边沿的x坐标, 本窗口距游戏屏幕上边沿的y坐标, 本窗口的宽度,

本窗口的高度) 根据这些参数,大家可以订制自己需要的窗口。

另一个要值得注意的每当一个窗口被初始化,最后都要调用一下refresh方法。这样,我们就得

到了一个空的窗口。

最后,因为我们要给物品的type和id赋值,所以type 和id的变量是attr_accessor(什么意思?不懂 ...)


<RE>然后就是要把我们需要的内容放在这个窗口里。
在上面的源码中,我们要替换
# ------------------------
    </PRE><RE># ------------------------
的部分以实现这个想法。</PRE><RE>在下面的源码2中:
首先清除窗口,制定文字颜色</PRE><RE>在介绍一下draw_text函数,这个是用来在指定位置显示字符串的
self.contents.draw_text(距左边距离x,距上边距离y,显示内容分配宽度,显示内容的高度</PRE><RE>,“字符串本身”)
这样我们就在第一行写了"Acquired"(得到)
(appleseed:为什么字符串是中文就不会正常显示???)
在下面就是一个分歧语句,判断得到的物品类型,而用不同的函数把物品描写出来(这些函数</PRE><RE>都在Window_Base里面定义)。
这样创建窗口就基本完成了</PRE><RE> </PRE><RE>为了能够正常使用,还要修改Scene_Map类,因为我们的窗口是要满足条件才弹出,一定时间以</PRE><RE>后消失
这个主要用几个变量实现。
@itemdelay:这个是控制窗口出现时间的,平时是-1
@acquire_window:这个是召唤窗口的,平时赋值为“假”,窗口不会出现
if @item_acquired[0] != 0 && @item_acquired[1] != 0 && @itemdelay < 0
这句话说出了窗口弹出的3个条件:物品type和id被赋值(非零),而且窗口当前没有显示
这时候@acquire_window被赋值“真”,同时@itemdelay被赋值125,开始倒计时125桢。
(所以,窗口停留时间,修改@itemdelay = 125这一句就行)。</PRE><RE>[...]
</PRE><PRE><PRE>最后,在rm界面的得到物品事件中,插入下面两行脚本
$sence.@item_acquired[0] = 1(1=物品2=武器3=防具)
$sence.@item_acquired[1] = 001(就是数据库里面的物品编号)
这样一个得到物品的弹出窗口就做好了。</PRE><PRE>(appleseed:为什么这个脚本不能显示中文名称?)
</PRE><PRE>翻译有许多不到的地方,还请大家包含,有错误,还请各位高手指出,大家共同学习进步。</PRE></PRE>


[此贴子已经被作者于2005-4-13 21:08:41编辑过]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
继续荒野与渡鸟的那场梦......
回复

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
 楼主| 发表于 2005-4-13 21:09:41 | 显示全部楼层
这是一个比较详细的自制窗口教程,下午逐字逐句看完了,顺便翻译了一下和大家分享
出自   phylomortis.com(并未得到翻译授权)
翻译:appleseed
http://www.phylomortis.com/resource/script/tut002.html
以上是原网址,有图,对照着看,效果更佳。
1
首先要知道的是,要创建一个和尤其中其他窗口风格一样的窗口,你的窗口所对应的类就必须
包含于(就是<)Window_Base,如果你的窗口还含有选择项的话,还必须包含于
Window_Selectable,这次我们要做的是做一个不含有选择项的用来给玩家显示刚得到的物品的
窗口。
这个新建窗口的类的骨架就如下面的源码1。
首先初始化函数,它包括两项:
type 是得到物品的种类
id  是得到物品的id
然后介绍一下super的用法:
super(本窗口距游戏屏幕左边沿的x坐标, 本窗口距游戏屏幕上边沿的y坐标, 本窗口的宽度,
本窗口的高度) 根据这些参数,大家可以订制自己需要的窗口。
另一个要值得注意的每当一个窗口被初始化,最后都要调用一下refresh方法。这样,我们就得
到了一个空的窗口。
最后,因为我们要给物品的type和id赋值,所以type 和id的变量是attr_accessor(什么意思?不懂 ...)
[upload=txt]viewFile.asp?ID=9014[/upload]
<RE>然后就是要把我们需要的内容放在这个窗口里。
在上面的源码中,我们要替换
# ------------------------
    </PRE><RE># ------------------------
的部分以实现这个想法。</PRE><RE>在下面的源码2中:
首先清除窗口,制定文字颜色</PRE><RE>在介绍一下draw_text函数,这个是用来在指定位置显示字符串的
self.contents.draw_text(距左边距离x,距上边距离y,显示内容分配宽度,显示内容的高度</PRE><RE>,“字符串本身”)
这样我们就在第一行写了\"Acquired\"(得到)
(appleseed:为什么字符串是中文就不会正常显示???)
在下面就是一个分歧语句,判断得到的物品类型,而用不同的函数把物品描写出来(这些函数</PRE><RE>都在Window_Base里面定义)。
这样创建窗口就基本完成了</PRE><RE> [upload=txt]viewFile.asp?ID=9015[/upload]</PRE><RE>为了能够正常使用,还要修改Scene_Map类,因为我们的窗口是要满足条件才弹出,一定时间以</PRE><RE>后消失
这个主要用几个变量实现。
@itemdelay:这个是控制窗口出现时间的,平时是-1
@acquire_window:这个是召唤窗口的,平时赋值为“假”,窗口不会出现
if @item_acquired[0] != 0 && @item_acquired[1] != 0 && @itemdelay < 0
这句话说出了窗口弹出的3个条件:物品type和id被赋值(非零),而且窗口当前没有显示
这时候@acquire_window被赋值“真”,同时@itemdelay被赋值125,开始倒计时125桢。
(所以,窗口停留时间,修改@itemdelay = 125这一句就行)。</PRE><RE>[...]
</PRE><PRE><PRE>最后,在rm界面的得到物品事件中,插入下面两行脚本
$sence.@item_acquired[0] = 1(1=物品2=武器3=防具)
$sence.@item_acquired[1] = 001(就是数据库里面的物品编号)
这样一个得到物品的弹出窗口就做好了。</PRE><PRE>(appleseed:为什么这个脚本不能显示中文名称?)
</PRE><PRE>翻译有许多不到的地方,还请大家包含,有错误,还请各位高手指出,大家共同学习进步。</PRE></PRE>
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
 楼主| 发表于 2005-4-13 21:10:26 | 显示全部楼层
真败了,明明把那些脚本都删了。。。。[em06]
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
 楼主| 发表于 2005-4-13 21:19:06 | 显示全部楼层




恩,大家看这个文件吧,里面是写好的网页
[em06]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

carol3 该用户已被删除
发表于 2005-4-13 22:05:42 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
 楼主| 发表于 2005-4-13 23:49:12 | 显示全部楼层
恩,原来如此,谢谢柳柳.


问题解决了,是字体设置的问题
[em07]
[此贴子已经被作者于2005-4-14 0:16:03编辑过]
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

13

主题

72

帖子

2053

积分

⑥精研

积分
2053
发表于 2005-4-14 12:22:19 | 显示全部楼层
执行脚本时发生SyntaxError,我用的物品名是中文的。。。。。。。。。
21世纪最贵的是什么? 人才!! 科学技术才是第一生产力!!! 所以……………(画外音:打劫,把钱交出来!) …… ………… 所以我最烦这些强盗了,一点技术含量都没有。
回复 支持 反对

使用道具 举报

14

主题

375

帖子

5760

积分

⑦老手

科学大迫力研究所

积分
5760
 楼主| 发表于 2005-4-14 13:54:11 | 显示全部楼层
错误?是哪部分的错误?
物品名可以是中文,但是在自己写的脚本里要设置
self.contents.font.name = \"黑体\"(原来是英文字体)
才能够显示
继续荒野与渡鸟的那场梦......
回复 支持 反对

使用道具 举报

13

主题

72

帖子

2053

积分

⑥精研

积分
2053
发表于 2005-4-14 16:26:42 | 显示全部楼层
不清楚啊
运行脚本就提示:执行脚本时发生SyntaxError
出来按F11直接是在Game_Temp那页。
21世纪最贵的是什么? 人才!! 科学技术才是第一生产力!!! 所以……………(画外音:打劫,把钱交出来!) …… ………… 所以我最烦这些强盗了,一点技术含量都没有。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

35

积分

②入门

积分
35
发表于 2007-5-6 02:39:08 | 显示全部楼层
我也是按A键等几个就出现哪个提示 [s:5]  [s:6]
呵呵
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 14:33 , Processed in 0.033175 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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