好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

Jass基础教程.doc

23页
  • 卖家[上传人]:工****
  • 文档编号:478098525
  • 上传时间:2024-01-07
  • 文档格式:DOC
  • 文档大小:263.50KB
  • / 23 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • JASS基础教程■ 作者:天零萃梦 ■ 转载请注明本文出处: ■ 本文假定您拥有WE触发器最基础的知识以及熟悉Windows的基本操作■ 文中所用UI版本: 夜天新手助推器(1.24汉化UI)//=====================================================================// Blizzard.j ( define Jass2 functions that need to be in every map script )//=====================================================================本文尽量运用WE中实际编写Jass代码的例子来说明Jass的基本语法和用法Jass : Just Another Script System 什么是Jass?JASS(正确地说是JASS 2)是魔兽3的程序语言,用于控制游戏和地图的进行,也是魔兽游戏和地图的基础 地图编辑器中摆放的单位(Unit),区域(Region) ,触发(Trigger)……等,最终都会被翻译成JASS语言存在地图文件里,在游戏时被使用。

      为什么要学习Jass?某些功能仅仅依靠GUI(GUI:用户图形界面,既T的编辑环境)是无法完成的,必须用Jass来实现. 例如只对某玩家播放音效, 或者让某些华丽的技能支持多人释放等.Jass可以定义局部变量以及自定义函数,增加设计的方便性. 熟练使用Jass可以很好的提高效率, 往往Jass几个输入字符就能完成的事情,GUI需要点选动作无数次才能做完.GUI虽然可以完成几乎所有的功能,但是对于内存释放能力太差,转化成的Jass代码会执行许多额外的动作. 用Jass可以写出比GUI效率更高的代码,可以更灵活和更有效率地控制地图运行Jass 的基本使用方法在地图制作时,Jass 的基本使用方法有3种1. 自定义脚本区编辑Jass (位置在触发编辑器左侧,触发器树的最顶端,左键点击地图名字即可进入)2. 触发器转换为代码后编辑Jass (选定触发器后,选择菜单->编辑->转化为自定义文本,确定后可将触发器转换为Jass代码)精选文档3. 在触发器中直接编辑Jass (使用动作->自定义代码动作来输入Jass)一 变量篇变量是指在运行过程中随时可以发生变化的量,与其相对的是常量,但是在地图中不允许自定义常量,所以我们这里只说变量.变量是数据的临时存放场所.在代码中可以只使用一个变量,也可以使用多个变量,变量中可以存放文字,数值,单位以及玩家等.由于变量让你能够把程序中准备使用的每一段数据都赋给一个简短,易于记忆的名字,因此它们十分有用.变量分为全局变量和局部变量,全局变量是指在任何地方(任意触发器,任意函数中)都可以使用的变量,例如我们在触发器中创建的变量. 而局部变量,则是仅仅在触发器(或函数)当前运行时才存在的变量.创建全局变量只能在变量编辑器中设置.变量的创建和使用方法1. 变量的命名规则 要使用变量,必须给变量取一个名字,就好像每个人都有自己的名字一样. 在JASS中,变量的命名必须遵循一下规则1. 变量名必须以字母开头,名字中间只能以字母,下划线”_”或数字组成,最后一个字符只可使用字母或数字2. 在作用范围内不可使用相同名字的变量3. 变量名不能与任何函数名字相同4. 变量名不能是Jass中保留的关键字(关键字详见附录2)例如strName1 intMax_Length intLesson strNo3等是合法的变量名,而A&B right_ 3M _Number是非法的变量名需要注意的是变量名是区分大小写的, 也就是说,Jass不会认为“a”和“A”是同一种东西.定义和使用变量时,通常要把变量名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等.这样会增加理解的难度.例如, 要记录的数值是一个单位的生命值 , 可以写为 unitLife 或者 精选文档danWeiShengMingZhi,这样仅仅通过变量名就能知道我们记录的是什么,增加阅读难度的话如果出现了BUG, 需要排错时是很困难的. 2.变量的声明 在变量使用前,必须在代码中进行声明,即创建该变量. 在GUI中,我们可以使用变量编辑器来声明新变量在这里声明的变量,是全局变量, 这也是唯一声明全局变量的方法(在仅使用WE的前提下).所以我们这里暂时不讲全局变量的声明, 只用知道声明全局变量就在变量编辑器中创建就可以了注:为了区分全局变量和局部变量的名字,GUI自动在所有变量编辑器设置的全局变量名的前面都加了udg_ 前缀, 因此图中的变量名实际为udg_unitLife局部变量的声明格式为 local <变量类型> <变量名>变量类型是用来区分变量储存的数据类型,比如用于储存单位,就要使用单位 unit注:Jass中变量类型与WE中变量类型对照表见附录1例:local unit trigUnit这样就声明了一个类型为单位的变量, 变量名为trigUnit另外变量的声明要求在所有其他动作的前面.例如: // 下文中 <动作> 为除了声明变量之外的任意动作 比如”等待 2秒” 设置变量等..local unit trigUnitlocal unit dmgUnit<动作> //正确 局部变量声明在所有动作之前 而下面的代码是不正确的. local unit trigUnit local unit dmgUnit <动作> local unit targetUnit //错误 局部变量声明在动作之后 每一条语句必须各占一行 ,例如下面的代码是错误的 local unit trigUnit local unit dmgUnit //错误 每条语句必须各占一行 变量在声明时, 允许对其赋予初始值,格式为 local <变量类型> <变量名> = <表达式>精选文档 其中,表达式是统称. 表达式执行的结果与变量类型要相同 例如声明一个变量trigUnit为触发单位 local unit trigUnit = GetTriggerUnit() 例如声明一个变量 playerId 为 触发玩家索引号, 另一个变量 I 为174 (整数: integer) local integer playerId = GetConvertedPlayerId(GetTriggerPlayer()) local integer I = 1743. 变量的使用 声明完变量后,接下来就是如何使用变量的问题了. 对于任意变量通用的赋值操作符是 “=” 它用于将后面的表达式计算后把结果赋予变量. 表达式得到的结果要求与变量类型相同 另外Jass要求,除初始化之外, 对变量进行赋值时必须使用set 关键字 格式为 set <变量名> = <表达式> 例如: local unit trigUnit set trigUnit = GetTriggerUnit() 对于整数,实数来说,可以使用普通的计算符号来进行计算操作.其中 + - * / 分别对应着 加减乘除 (另外 – 还表示负号)例如local integer a = 1set a = a + 1 // 将 a + 1 计算的结果赋予 a ,效果为a 自身增加1对于字符串, 可以使用 “+ “ 来连接两个字符串local string s = “hello” + “ I am a chimp”请看下图的例子此触发的执行结果是,在屏幕上显示出 34.变量操作举例:变量的值互换 local integer a = 3 // a的初始值为3 local integer b = 4 // b的初始值为4 local integer c // 临时变量c set c = a // 将a的值存储到c中 set a = b // 将 b的值赋予 a精选文档 set b = c // 将c中储存的值(原a的值)赋予b 如果用下面的代码的话就错了,因为在set a = b时 a的值已经变为b的 local integer a = 3 local integer b = 4 set a = b //a的值已经变为b set b = a 注: 声明的局部变量如果类型不是整数,实数,字符串,布尔值,Code,(并且已经为其赋值) 那么使用完毕后要设置其为空值 null 以释放12字节的内存, 例如local unit u = GetTriggerUnit() 使用完毕后要 set u = null 数组变量 数组是可以用相同名字引用的一系列变量,并用数字(索引)来识别它们。

      在许多场合,使用数组可以缩短和简化程序,因为可以利用索引值设计一个循环,高效处理多种情况数组有上界和下界,数组的元素在上下界内是连续的 在Jass中,数组的上下界为0-8191,如果超过了界限则会出现错误 数组变量的命名规则与普通变量相同. 声明方法为 local <类型名> array <变量名> // 注: 数组声明不允许赋初始值 数组变量在使用时,与普通变量的唯一区别是必须加一对中括号和整数索引(也可以是整数形式的变量) 例如: local integer array i // 声明了数组变量 i local integer a = 4 set i[0] = 1 set i[1] = 2 set i[3] = i[1] + i[2] set i[a] = 2*i[3] // 以整数变量作为数组索引 整数实数字符串以及类型转换 在对变量赋值时, 例如 123 23.4 “string” 这些也是有其类型的 例如 1.2 为实数. 3为整数 而”jass2” 是字符串, 这些实际上是一些常量 Jass中规定 带小数点的为实数 小数点前后如果为0则可以省略,例如下列是正确的小数写法 3.14159 -1.5708 .1234 170. -.3 不能把一个实数直接赋予一个整数变量, 例如下面的写法是错误的 local integer id = 123. // 错误 123. 是一个实数 set id = 1.0 // 错误 1.0 是一个实数 没有小数点的数字为整数: 例如 2 107 512 -1 0 可以将一个整数赋予整数变量或实数变量, 例如 local integer I = 1 local real r = I // 正确 因为整数可以自动转换为实数 (隐式转换)精选文档 用双引号括起来的是字符串, 例如 “Hello。

      点击阅读更多内容
      相关文档
      2025年教师招聘考试教育理论综合知识考试题库(单项选择题763题).docx 2025年教师招聘考试必考的面试考试题库.docx 2025年江苏生禁毒知识网络竞赛考试题库(280题).docx 2025年教师招聘考试公共基础知识模拟题库.docx 2025年江苏省第十届大学生就业创业知识竞赛考试题库(200题).docx 2025年煤矿安全监测监控证考试必刷题库附答案.docx 2025年教师资格证考试公共基础知识考试复习题库.docx 2025年江苏生禁毒知识网络竞赛考试题库(210题).docx 2025年江苏生禁毒知识网络竞赛考试题库(270题).docx 2025年教师资格证(教育公共基础知识)考试题库(500题).docx 2025年江苏生禁毒知识网络竞赛考试题库(260题).docx 2025年教师招聘考试中学教育理论综合知识考试模拟试题(五套).docx 2025年教师资格证考试教育公共基础知识考试题库(400题).docx 2025年教师招聘考试(教育综合基础知识)复习题库.docx 2025年江苏生禁毒知识网络竞赛考试题库(220题).docx 2025年江苏生禁毒知识网络竞赛考试题库(290题).docx 2025年教师招聘考试最新教育理论基础知识考试复习题库.docx 2025年教师编制考试教育教学公共基础知识考试复习题库(350题).docx 2025年江苏生禁毒知识网络竞赛考试题库(250题).docx 2025年江苏省大学生就业创业知识竞赛考试题库(200题).docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.