设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
楼主: frantice
打印 上一主题 下一主题

[RM中级讨论] 跟我从头学脚本(教学翻译)(已发布)

 关闭 [复制链接]

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
31
 楼主| 发表于 2006-7-25 22:45:43 | 只看该作者
以下引用link006007于2006-7-25 14:42:14的发言:

支持下...不过全部看下来还需要的点毅力


看看还费力气,那我翻呢?
我是边看原文边测试边翻的,有的还为了验证几个字测试好几遍。
三大部分总共翻了853分钟。不看就算了,我自己打印出来看。
自我陶醉也行。
KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

66RPG站长

梦石
0
星屑
54
在线时间
615 小时
注册时间
2005-10-10
帖子
5734

RMVX自由创作大赛亚军第2届短篇游戏比赛亚军第5届短篇游戏比赛冠军

32
发表于 2006-7-25 22:47:55 | 只看该作者
正好和我签名暗合(写个从中级开始的教学,从入门开始的这里有了)

另,楼主的头像- -b
回复 支持 反对

使用道具 举报

Lv1.梦旅人

看不到我

梦石
0
星屑
50
在线时间
229 小时
注册时间
2005-11-6
帖子
1741

贵宾

33
发表于 2006-7-25 22:52:11 | 只看该作者
以下引用柳柳于2006-7-25 14:47:55的发言:

正好和我签名暗合(写个从中级开始的教学,从入门开始的这里有了)

另,楼主的头像- -b

第一眼看到我以为是一只老鼠在上吊{/jk}………………(头上的羽毛看成绳子了……而且那个表情…………)
回复 支持 反对

使用道具 举报

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
34
 楼主| 发表于 2006-7-25 22:56:16 | 只看该作者
以下引用小湖于2006-7-25 14:52:11的发言:

第一眼看到我以为是一只老鼠在上吊………………(头上的羽毛看成绳子了……而且那个表情…………)


真是哪壶不开提哪壶…………
居然这么说我的头像…………
要不要出来决斗{/fn}
家伙自带{/fn}
担架准备一副,绷带若干,金疮药自行料理{/fn}
KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

堕落天使

梦石
0
星屑
55
在线时间
73 小时
注册时间
2005-10-22
帖子
337
35
发表于 2006-7-28 06:05:06 | 只看该作者
frantice为啥米继续了捏?
厌世了……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

匿·蹤

梦石
0
星屑
65
在线时间
99 小时
注册时间
2006-3-19
帖子
456
36
发表于 2006-7-28 07:16:39 | 只看该作者
非常好……我急需……极度感激中…………
卐忍 → 解忍 → 元忍 → 隐忍 → 卍忍 → 匿踪(最终)
完全退步到了卐忍阶段
回复 支持 反对

使用道具 举报

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
37
 楼主| 发表于 2006-7-28 17:58:34 | 只看该作者
来更了,先……


第十一讲: Scene和Window 专题一


终于开始动手实践创建自己的窗口了^0^, 这讲开始请务必跟着我一起实践^0^, 遇到什么不懂的地方请查看以往的教学~
我们先自己建立个脚本的,名字叫My_Window, 这样今后查看方便,而且测试时候也方便,只用在事件中调用:
My_Window.new 就行了

好了, 现在开始写脚本.
先给它一个父类, 我们这个窗口是不用于选择的, 所以就用Window_Base作为父类.
class My_Window < Window_Base
  def initialize
    super(0, 0, 200, 200)
  end
end
如果测试的话, 我们会发现它会等一会儿就消失了,这很正常,因为Scene_Map这个东西; 我们没有告诉它要刷新这个窗口.我们待会儿告诉它,我们现在只是建个简单的窗口.
我们用super(x坐标, y 坐标, 宽度, 高度)来建立了一个窗口
上一讲中学习过"super",那我们这里它继承什么东西呢?因为这里 Window_Base是父类, 所以我们看看父类中都初始化了什么东西^0^
def initialize(x, y, width, height)
super()
@windowskin_name = $game_system.windowskin_name
self.windowskin = RPG::Cache.windowskin(@windowskin_name)
self.x = x
self.y = y
self.width = width
self.height = height
self.z = 100
end
这个方法在每个window窗口中都被援引,它定义了窗口的大小,位置,皮肤等等特性.
那么它后面跟着的def initialize(x, y, width, height)是做什么的呢?
我们看看RMXP的运行过程吧~:
[编译super语句]
- 接收到 "super" 指令
--> 在 Window_Base中, 我们设定了以下东西, 用super 发送出去
-> x=0
-> y=0
-> width=200
->height=200
--> 窗口建成
-回到window 编码
[结束]

好了, 回到刚才编好的窗口, 它很难看, 什么都没有, 总得给它添加点什么吧^  ^

class My_Window < Window_Base
  def initialize
    super(0, 0, 200, 200)
    self.contents = Bitmap.new(width-32, height-32)
    self.contents.font.name = "黑体"   
    self.contents.font.size = 20
    self.contents.draw_text(0, 0, 200, 32, "Yay, some text !")
  end
end
必须要有3行来添加文字, 因为我们需要写明它的字体, 字号, 以及要写什么东西.3 好了,继续解释每行的原理:
self.contents = Bitmap.new(width-32, height-32)
这个是干什么的?我们知道了,我们窗口的内容都要是"Bitmap" 类型 (Bitmap不在脚本编辑器中定义). 这样我们就能在窗口中写入文章.
要知道为什么要减去32吗? 因为箭头指着的数据是仍然要被看到, 也许是因为bitmap事实上要比window 大一点吧^0^ .(这也就是文字会被窗口的边缘给咯擦掉的原因啦)
self.contents.draw_text(0, 0, 200, 32, "Yay, some text !")
这行真正地定义了你的文章, 它个格式就是(x坐标, y 坐标, 宽度, 高度,”内容”)

当然,有些文章是用另一个方法来写的,那就是 "refresh". 它只用于当窗口显示的时候需要改变内容的,如 Window_PlayTime (游戏时间), 不过不是 Window_Gold.哦~~

好了, 我们先做个笔记, 下面是我们要做出来的效果图. 我们需要创建3个window啦. (这个是英文原图,我后面会贴出中文图)


KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

38
发表于 2006-7-28 18:03:46 | 只看该作者
讲到Window类了,楼主辛苦了...
什么时候回到sprite类?那个很有趣的说{/cy}
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

Lv1.梦旅人

查无此人

梦石
0
星屑
50
在线时间
9 小时
注册时间
2006-5-8
帖子
1399
39
 楼主| 发表于 2006-7-28 18:06:59 | 只看该作者
以下引用link006007于2006-7-28 10:03:46的发言:

讲到Window类了,楼主辛苦了...
什么时候回到sprite类?那个很有趣的说


哼哼……翻完窗口我就扯周边(地图,事件之类去了)



KRKR + NS 学习中..........
回复 支持 反对

使用道具 举报

Lv1.梦旅人

风之塞尔达

梦石
0
星屑
50
在线时间
57 小时
注册时间
2005-10-22
帖子
2492

贵宾

40
发表于 2006-7-28 18:12:27 | 只看该作者
以下引用frantice于2006-7-28 10:06:59的发言:
哼哼……翻完窗口我就扯周边(地图,事件之类去了)

那个应该要先扯的啊...既然都到窗口了,那就顺理成章的讲sprite或scence吧.要循序渐进,不要拐啊拐的... ...
唉,你是楼主你决定,无所谓啊~~~~~无所谓啊~~~~~
在程序里延续塞尔达的传说, 在画板上勾勒塞尔达的轮廓!!
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-21 20:37

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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