Project1

标题: 脚本小讲堂[4] [打印本页]

作者: 劍之飛龍☆    时间: 2008-2-18 21:34
标题: 脚本小讲堂[4]
脚本小讲堂:
1:http://rpg.blue/web/htm/news910.htm
2:http://rpg.blue/web/htm/news911.htm
3:http://rpg.blue/web/htm/news914.htm
[LINE]1,#dddddd[/LINE]
相信大家一定不是在瞎等“小讲堂[4]”,肯定有看别人的教程,如果你这样做了,那你就是聪明人~~
在此推荐一篇绿的一篇帖子:http://rpg.blue/viewthread.php?tid=74862 ]

那么就开始吧。
[LINE]1,#dddddd[/LINE]

写完“[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值
复制代码

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

首先打开脚本编辑器,看到左边那列,如果英语比较好,一看就知道哪个是哪个。为了节省大家的时间,已经找好了: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.   #--------------------------------------------------------------------------
复制代码


这就是我们本讲的主要内容。
[LINE]1,#dddddd[/LINE]

  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坐标也可以更改,在这里就不多讲了,算是个作业好了。
[LINE]1,#dddddd[/LINE]
如果调好了,又想把那个蓝色的、碍眼的框去掉,那该怎么办呢?
.找到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 是透明度,所以再测试战斗,就会看到蓝色的框没了,却看到了黑色的东东(因为战斗背景的那一条原来就是黑色的)。
如果想去掉那些信息,就要再改。

作者: 越前リョーマ    时间: 2008-2-18 21:41
沙发,
慢慢看……
作者: yangff    时间: 2008-2-18 21:50
这其实是个函数,跟变量不一样的是,它能随机出现XX到XX的数字。这里的重点就是括号里的数字。
“(10)”其实是随机显示1到9的其中一个数字,要想实现随机出现1到10,就要写成:
错!
rand(10)+1
作者: 水迭澜    时间: 2008-2-18 23:00
同楼上
作者: 沉影不器    时间: 2008-2-19 00:49
提示: 作者被禁止或删除 内容自动屏蔽
作者: 劍之飛龍☆    时间: 2008-2-19 04:26
以下引用yangff于2008-2-18 13:50:42的发言:

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

一样的意思哦……
作者: shanely    时间: 2008-2-20 04:58
这个是不是解读RMXP脚本的?
作者: 水迭澜    时间: 2008-2-20 09:04
一样的意思?
LZ你真的应该去补习一下囧TZ
rand(11)是0~10
rand(10)+1是1~10……

作者: 神思    时间: 2008-2-20 17:54
“(10)”其实是随机显示1到9的其中一个数字,要想实现随机出现1到10,就要写成:


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

rand(max)
是返回0~max-1的随机数啊
作者: 劍之飛龍☆    时间: 2008-2-20 20:24
已经编辑之………………
作者: 零度·幻    时间: 2008-3-7 05:01
发布完毕
http://rpg.blue/web/htm/news1013.htm
VIP +3

              [本贴由 御灵 于 2008-3-7 13:23:59 最后编辑]
作者: 劍之飛龍☆    时间: 2008-3-7 05:21
哥,你忘记把标题改成“发布完毕”……
作者: 零度·幻    时间: 2008-3-7 05:51
完毕.....下次不会了{/hx}
作者: 劍之飛龍☆    时间: 2008-3-7 05:56
以下引用零度·幻于2008-3-6 21:51:23的发言:

完毕.....下次不会了

好孩子,知错就改……开个小玩笑……{/hx}{/gg}

顺便说一声,谢谢 了~~~
作者: 50568358    时间: 2008-3-7 17:10
我想问问,rand(10)到底是0~9还是1~9啊
作者: 劍之飛龍☆    时间: 2008-3-7 20:23
以下引用50568358于2008-3-7 9:10:09的发言:

我想问问,rand(10)到底是0~9还是1~9啊

0~9 {/bz}
作者: 破碎容颜    时间: 2008-5-10 02:28
提示: 作者被禁止或删除 内容自动屏蔽
作者: lichaolong    时间: 2008-6-10 22:17
提示: 作者被禁止或删除 内容自动屏蔽
作者: 不陌生    时间: 2008-6-15 20:45
什么游戏吗?
作者: hermasx    时间: 2008-6-22 21:40
我晕
Y坐标怎么改啊
透明度怎么改?鄙视新手吖?{/ll}
作者: 灯笼菜刀王    时间: 2008-6-22 22:56
坐标就是数轴上的东东。范围是-∞到+∞的整数。 1代表1像素 y坐标就是y轴上的数

透明度是0~255的数,数越大越不透明,0是完全透明,255是完全不透明。

作者: q2571875    时间: 2008-6-22 23:02
终于出四了。。。。
作者: zhangxunya    时间: 2008-6-28 21:44
{/ll}
为啥不把Y轴的也给说出来呀,5555,偶虾米都8会,{/dk}
作者: 雪之祭曲    时间: 2008-8-18 14:50
提示: 作者被禁止或删除 内容自动屏蔽
作者: 淘金鸭    时间: 2008-8-18 16:44
什么意思?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1