|
楼主 |
发表于 2008-7-12 16:43:52
|
显示全部楼层
第二章 JASS 函数篇
第一节.函数的定义与调用
WE中分CJ函数也就是common.j中提供的函数..
还有BJ函数(blizzard.j) ai函数(common.ai)
不过ai不涉及在本教程当中
还有就是用户自己定义的函数..
CJ函数: 其实是提供了一些API(Application Programming Interface,应用程序编程接口),主要是完成一些不能由自定义函数完成的功能。
BJ函数:Trigger才用的函数..既然学了JASS..我认为就54这个吧...毕竟BJ函数写的很渣..效率低下....
当然学JASS的目的就是写自定义函数..
下面我们先学下 如何定义一个函数
这里用function,endfunction,takes,returns作为关键字..
基本格式是:
[jass]function 函数名字 takes 参数类型|参数名字 returns 返回值类型
endfunction[/jass]
当然,参数和返回值并不是必须的。如果这个函数并不学要参数和返回值,可以写nothing
下面举个基本的函数例子,计算两个数的相加,并返回一个值:
[jass]function ADD takes real a,real b returns real
return a+b
endfunction[/jass]
这个函数中大家看到takes后面跟了2个参数..分别是real型a和b,returns后面跟的是一个变量类型.这里是real
这里return的作用是返回值...需要注意的是return跟的表达式的类型 必须和函数申明里的一样..
比如这里需要的返回值是real,你就不能返回一个unit.
return还有一个作用就是结束函数.函数运行到这里..将直接退出..所以return一般是要写在函数的结束处..
然后既然函数写好了...那么我们以后就可以直接调用它了,不必每次这些东西了..这个就是函数的优点
就以这个为例子
调用这个函数的时候,你需要给它2个参数,他便会返回这两个参数的和..
调用函数用call作为关键字...
格式如下:
[jass]call 函数名字(参数)[/jass]
这里要注意的是 参数 的个数和类型必须和定义的时候匹配
例子:
[jass]call ADD(1,2)[/jass]
这个就是基本的函数调用方式.... 当然这个函数会返回一个实数值....这里会返回3...
这个返回值会随着参数给的不同而不同.
以上应该很好理解吧
接下我们就利用CJ函数写一个简单的函数吧
这里有一个技巧..
就是CJ函数 如果你不能很好的记住的话...(其实不用刻意的去记忆..慢慢熟练以后,自然会记住..BLZ的函数命名是有一定规则的)
你可以用T写出来后,转化为J....(具体操作为在触发窗口下 选择 编辑--转化为自定义脚本)
不过T中大部分都是BJ函数...
不过你可以用一些JASS编辑软件..查看此函数...如果是BJ函数...你基本可以在函数过程中找到同样功能的CJ函数(用某人的话来说就是BJ是阉割后的CJ)..不过要注意参数...
所以不要以英文不好来..给自己找借口了...
以下是一个例子:我们来做一个计算2个数的和并显示到屏幕的函数(这么又是计算2个数的和啊....不要不耐烦...基础很重要)
[jass]function ADD2 takes real a,real b returns nothing
local real c = a+b
call DisplayTextToPlayer( Player(0), 0, 0, R2S(c))
endfunction[/jass]
这个函数中DisplayTextToPlayer便是一个CJ函数... 功能就是向指定玩家,指定屏幕坐标,显示一个字符串...
其实这个函数里还有定义了一个c...(其实不要也可以,目的是为了让大家看清楚)顺便温习一下局部变量的定义....
发现了吧...其实JASS很简单...不比T难多少....
本节就到这里了
下一节中将会介绍..函数中的基本语法....
|
|