偶久网

 找回密码
 注册会员

QQ登录

只需一步,快速开始

首页 改图教学 查看内容

JASS教程—0基础新手向教程

2017-5-22 15:35| 发布者: 邪恶叔| 查看: 4490

第一章:魔兽程序的概念
先举个非常简单的例子:计算器
当你输入 1+1= 之后,就会出来数字2
其中 1+1= 一共两个数字两个符号,是需要输入的东西,在程序中叫做参数,得到的答案2(即计算器运算程序计算后得到的值)叫返回值。

那么这个程序在JASS中是什么样子的呢?
首先,我们必须输入一个特定的东西(单词、符号之类的)来告诉电脑,接下来的这串内容是JASS程序。在JASS中,用function这个单词来开头。(这个单词是函数的意思)
也就是:
  1. function  xxxxxxx
复制代码


于是电脑就知道这个function后面的那串x是程序,接下来用到这个函数的时候要按照这个里面写的来执行。

现在回到刚才 1+1=2 这个例子,之前说了,参数是需要输入的,但是输入的参数可不止 1+1= 这么些,也可能是 1+2= 、2+5= 等等。也就是说,输入的参数是“第一个数字”“运算符”“第二个数字”,然后等号的意思就是告诉电脑该出返回值了。

与之前function同理,必须用一个引导词告诉电脑接下来是参数,以及用另一个引导词告诉电脑这个函数有一个返回值。
JASS中的写法就是:
[jass]function takes 第一个数字,第二个数字 returns 一个数字[/jass]
其中takes就是参数的引导词,retrurns就是告诉电脑有返回值,不同的参数之间用逗号隔开。

突然发现上面这个函数没有“运算符”这个参数,并且仅仅是告诉了电脑有一个返回值,但究竟怎么得到这个值电脑还是不知道。
于是,我们要把运算过程告诉电脑:
  1. function takes 第一个数字,第二个数字 returns 一个数字
  2.     return 第一个数字 + 第二个数字
复制代码


这个函数第二行的意思就是:返回  第一个数字加上第二个数字所得到的答案;也就是,返回值 = 第一个数字 + 第二个数字

至此,这个加法函数的功能就编完了,但是JASS还不知道这个函数已经结束了,怎么办?
……对了,用个引导词告诉它这个函数结束了就行了~
在结尾加上endfunction,即
  1. function takes 第一个数字,第二个数字 returns 一个数字
  2.     return 第一个数字 + 第二个数字
  3. endfunction
复制代码


PS:return前面空四格是很好的编程习惯,为了下次看的时候能很清楚地区分函数的开头结尾和中间的运算过程。这种空格在编程中叫做缩进(indentation)。
小技巧:当光标在最前面时,按TAB键直接缩进四格。

最后,就是使用这个函数的方法了,并不是写成  1+1  这种数学式,而是
这个函数(第一个数字,第二个数字)这种形式,
比如 1+1 就是 这个函数(1,1),但是每次都叫“这个函数”很傻,函数多了电脑也不知道我们说的到底是哪个函数,所以给每个函数一个名字也是必须的。

既然这是加法那就叫“add”吧,同时,JASS程序中是不能用中文的,所以换成英文(num是number的缩写):
  1. function add takes num1, num2 returns num3
  2.     return num1 + num2
  3. endfunction
复制代码



PS:“num1 + num2”中间没有空格也行,即“num1+num2”,现在不用刻意去记哪些需要哪些不需要,学多了看多了写多了就知道了。

于是,使用这个函数的时候就写成add(num1,num2)的形式就好了。
看到这里估计有些同学已经联系不到魔兽了。。现在联动一下:
把这个程序应用到魔兽中的话,使用add(x,y)后就可以得到x+y的值了(x,y为输入的两个数字)。比如用来增加HP,那么x是现有HP的值,y是增加的量,算出来后就是增加后的HP了,然后设置单位的HP为计算后的值。这是魔兽程序中最最基础的运行方式,当然还需要“事件”来触发启动这个函数,之后会讲到~

最后一个PS:本章只是给0基础的同学们一个JASS程序的概念,跟JASS用于魔兽的各种写法还是有一定差距的;另外,上面这个函数还是少了一点东西,下一章节会讲。
返回顶部