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

Project1

 找回密码
 注册会员
搜索
查看: 8173|回复: 24
打印 上一主题 下一主题

脚本小讲堂[4]

 关闭 [复制链接]

Lv2.观梦者

龙骑

梦石
0
星屑
525
在线时间
10 小时
注册时间
2007-12-31
帖子
2030
跳转到指定楼层
1
发表于 2008-2-18 21:34:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
脚本小讲堂:
1:http://rpg.blue/web/htm/news910.htm
2:http://rpg.blue/web/htm/news911.htm
3:http://rpg.blue/web/htm/news914.htm


相信大家一定不是在瞎等“小讲堂[4]”,肯定有看别人的教程,如果你这样做了,那你就是聪明人~~
在此推荐一篇绿的一篇帖子:http://rpg.blue/viewthread.php?tid=74862 ]

那么就开始吧。



写完“[3]”后,有人问我,“随机数怎么写?”在次先跟大家道个歉,因为上篇没有说到,现在跟大家补说。

  1. p rand(10)
复制代码

这其实是个函数,跟变量不一样的是,它能随机出现XX到XX的数字。这里的重点就是括号里的数字。
“(10)”其实是随机显示0到9的其中一个数字,要想实现随机出现0到10,就要写成:
  1. p rand(11)
复制代码

p rand(11)   0..10(隨機11個數)
p rand(10)+1 1..10(隨機10個數)

再测试一下……就会看到随机的效果。

根据以前学过的以及现在的内容,结合起来,可以写成:
  1. a = 10  #为a代入10
  2. p rand(a)  #随机显示a值
复制代码



曾经看到有人问怎样做横版战斗,于是看了看脚本,下面就教大家做属于自己的横版战斗。

首先打开脚本编辑器,看到左边那列,如果英语比较好,一看就知道哪个是哪个。为了节省大家的时间,已经找好了:Game_Actor。
这个actor是角色的意思,点开那脚本,看第4行:
处理角色的类。

所以英文不好的同学要想弄懂,就一定要看注释。

好了,我们看到第8行
  1. class Game_Actor < Game_Battler
复制代码


这里的class可不是班级的意思,其实是一个类,为下面的脚本定一个义。
“Game_Actor”与“ Game_Battler”中的小于号不是比较的意思,这是父、子类。
这两点我们以后会遇到,并且做解释。

继续往下看,从第567行开始,你会看到

  1.   #--------------------------------------------------------------------------
  2.   # ● 取得战斗画面的 X 坐标
  3.   #--------------------------------------------------------------------------
  4.   #--------------------------------------------------------------------------
  5.   # ● 取得战斗画面的 Y 坐标
  6.   #--------------------------------------------------------------------------
  7.   #--------------------------------------------------------------------------
  8.   # ● 取得战斗画面的 Z 坐标
  9.   #--------------------------------------------------------------------------
复制代码


这就是我们本讲的主要内容。



  1.   #--------------------------------------------------------------------------
  2.   # ● 取得战斗画面的 X 坐标
  3.   #--------------------------------------------------------------------------
  4.   def screen_x          #这是一个函数的定义,以后会讲到
  5.     # 返回计算后的队伍 X 坐标的排列顺序
  6.     if self.index != nil   #条件分歧+语法
  7.       return self.index * 160 + 80  #重点重点!!
  8.     else
  9.       return 0
  10.     end
  11.   end
复制代码


你会看到一些蓝色的字,这些就是系统的保留字。保留字就是这种语言独特的东东,没有什么道理可言,我们目前遇到过的有if、elsif、slse、end等等。
再回来看,
* 160 + 80

就是角色的X坐标*160,80就是角色的距离(暂时这么理解,因为比较容易,到时候就知道我讲的不对了)
所以可以根据这个来调战斗图的X坐标。
同样道理,Y坐标也可以更改,在这里就不多讲了,算是个作业好了。


如果调好了,又想把那个蓝色的、碍眼的框去掉,那该怎么办呢?
.找到Window_BattleStatus(显示战斗画面同伴状态的窗口。),看到第13行

2.在它前面加上个"self.back_opacity = 0",
也就是


  1. #--------------------------------------------------------------------------
  2. # ● 初始化对像
  3. #--------------------------------------------------------------------------
  4. def initialize
  5.    super(0, 320, 640, 160)
  6.    self.back_opacity = 0
  7.    self.contents = Bitmap.new(width - 32, height - 32)
  8.    @level_up_flags = [false, false, false, false]
  9.    refresh
  10. end
复制代码

这里,self.back_opacity = 0 中的 0 是透明度,所以再测试战斗,就会看到蓝色的框没了,却看到了黑色的东东(因为战斗背景的那一条原来就是黑色的)。
如果想去掉那些信息,就要再改。

Lv3.寻梦者 (暗夜天使)

名侦探小柯

梦石
0
星屑
3299
在线时间
3619 小时
注册时间
2006-9-6
帖子
37400

开拓者贵宾第3届短篇游戏大赛主流游戏组亚军第5届短篇游戏比赛亚军

2
发表于 2008-2-18 21:41:51 | 只看该作者
沙发,
慢慢看……
回复 支持 反对

使用道具 举报

Lv2.观梦者

傻♂逼

梦石
0
星屑
374
在线时间
1606 小时
注册时间
2007-3-13
帖子
6562

烫烫烫开拓者

3
发表于 2008-2-18 21:50:42 | 只看该作者
这其实是个函数,跟变量不一样的是,它能随机出现XX到XX的数字。这里的重点就是括号里的数字。
“(10)”其实是随机显示1到9的其中一个数字,要想实现随机出现1到10,就要写成:
错!
rand(10)+1
哎呀,蛋疼什么的最有爱了
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

4
发表于 2008-2-18 23:00:50 | 只看该作者
同楼上
回复 支持 反对

使用道具 举报

头像被屏蔽

Lv1.梦旅人 (禁止发言)

梦石
0
星屑
46
在线时间
10 小时
注册时间
2007-5-27
帖子
2558

第1届Title华丽大赛新人奖

5
发表于 2008-2-19 00:49:36 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽
回复 支持 反对

使用道具 举报

Lv2.观梦者

龙骑

梦石
0
星屑
525
在线时间
10 小时
注册时间
2007-12-31
帖子
2030
6
 楼主| 发表于 2008-2-19 04:26:45 | 只看该作者
以下引用yangff于2008-2-18 13:50:42的发言:

这其实是个函数,跟变量不一样的是,它能随机出现XX到XX的数字。这里的重点就是括号里的数字。
“(10)”其实是随机显示1到9的其中一个数字,要想实现随机出现1到10,就要写成:
错!
rand(10)+1

一样的意思哦……
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
55
在线时间
1 小时
注册时间
2006-10-2
帖子
693
7
发表于 2008-2-20 04:58:29 | 只看该作者
这个是不是解读RMXP脚本的?
在6R混,你必须学会无视,不然吃亏的是你自己..
回复 支持 反对

使用道具 举报

Lv5.捕梦者

御灵的宠物

梦石
12
星屑
8438
在线时间
88 小时
注册时间
2006-12-11
帖子
3148

第2届TG大赛亚军

8
发表于 2008-2-20 09:04:10 | 只看该作者
一样的意思?
LZ你真的应该去补习一下囧TZ
rand(11)是0~10
rand(10)+1是1~10……
我的Lofter:http://nightoye.lofter.com/

回复 支持 反对

使用道具 举报

Lv1.梦旅人

彩色的银子

梦石
0
星屑
50
在线时间
190 小时
注册时间
2006-6-13
帖子
1361

贵宾

9
发表于 2008-2-20 17:54:05 | 只看该作者
“(10)”其实是随机显示1到9的其中一个数字,要想实现随机出现1到10,就要写成:


这..阁下是不是应该自己先去补习一下.

rand(max)
是返回0~max-1的随机数啊
-.-
回复 支持 反对

使用道具 举报

Lv2.观梦者

龙骑

梦石
0
星屑
525
在线时间
10 小时
注册时间
2007-12-31
帖子
2030
10
 楼主| 发表于 2008-2-20 20:24:30 | 只看该作者
已经编辑之………………
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 14:45

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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