多语言展示
当前在线:315今日阅读:142今日分享:25

学习TC,第二节。

对于游戏脚本制作的经验很多人想认真的学习下去,我们就给大家一步一步的说。4游戏脚本制作3学习TC,第一节。
工具/原料
1

TC

2

TC综合开发工具文档

方法/步骤
1

转义字符字符串取值没什么限制,在引号''中可以填:数字、中文、字母 、特殊字符、以及他们的组合,字符串的值都要用双引号扩起来,比如 '我是字符型',当然,有人会问,如果字符串要带 ' 号,怎么处理,难道是 ''' ,不是的,这样编译会语法报错,TC综合开发工具会把前面两个''看成一个字符串,后面那个',就语法报错,这个时候就需要转义字符了,下面我们介绍一下转义字符,一般应用不到它假如我们要表示 ''' 这样是错的,应该这样写 '\'',这样就是表示了一个字符串,里面的值就只有一个 'TC的转义字符,我们这里列几个比较常用的:1、\' 转义双引号 ('_\'ABC\'_\'EFG\'_',用messagebox输出_'ABC'_'EFG'_)2、\' 转义单引号('_\'ABC\'_\'EFG\'_',用messagebox输出_'ABC'_'EFG'_)3、\\ 转义斜杠('c:\\tc',用messagebox输出c:\tc,如果这里只用单斜杠就变成制表符\t了,就不是我们要的路径了)4、\n 回车符('123\n456',用messagebox输出123  456 ,这里自动换行了)5、\r 换行符('123\r456',用messagebox输出123  456 ,这里自动换行了)6、\t 转义制表符 ('123\t456',这里的字串就等于123    456,中间会把\t替换成4个空格)当单独使用'\r'或者是'\n'的时候都不能达到换行时,我们可以使用'\r\n'来处理

2

表达式TC综合开发工具里的表达式大体分为:计算表达式、条件表达式计算表达式:它一般是用在赋值过程中,或者是和条件表达式混合使用这样的表达式里只有数字运算符(如:+、-、+=、*=等等运算符),没有关系运算符(如:>、== 、 >=、!=等等运算符)变量使用例如:复制代码目标x =(x+偏移x)* 比例x结果 = (150+632)*100/(89-59)条件表达式:它一般是用在条件判断过程中,返回的是条件成立(真)或者不成立(假).例如:如果语句、循环语句以及遍历语句它使用的是关系运算符例如:代码if(((5+5)*4)/2 > 5+5*4/2 && (4==6 || 4!=6))  messagebox('最终返回值是真')else  messagebox('最终返回值是假')end计算表达式和关系表达式的综合使用:代码var 计数器=0while(计数器<100)  计数器++  messagebox(计数器)end

3

流程语句在程序执行过程中,其值不发生改变的量称为常量,其值可变的量称为变量在使用的过程当中,一定要清楚的知道什么是变量,什么是常量,不能把变量当常量使用,更不能把常量当变量使用if ... elseif ... else ... endwhile...endfor...endbreakcontinueselect...case:...end 会在 《学习TC第二节_详解流程语句》 中详细解释。

4

功能的理解功能是TC移动项目应用的基本模块,通过对功能模块的调用实现特定的功能.TC综合开发工具中的功能相当于其它高级语言的子程序,在其他高级语言中,比如C,C++中,称为函数.允许用户建立自己定义的功能用户可把自己的算法编成一个个相对独立的功能模块,然后用调用的方法来使用功能可以说TC移动应用的全部工作都是由各式各样的功能完成的,所以也把TC语言称为功能式语言.由于采用了功能模块式的结构,TC语言易于实现结构化程序设计使程序的层次结构清晰,便于程序的编写、阅读、调试.(关键字,function,end)从功能定义的角度看,功能可分为库功能(API)和用户定义功能两种.1、库功能(API):由TC综合开发工具提供,用户无须定义,也不必在程序中定义,可以在程序中直接调用.2、用户自定义功能:由用户按需要写的功能对于用户自定义功能,不仅要在程序中定义功能本身,而且在调用的时候,直接写函数名自定义功能的分类:    第一:根据功能函数有无参数分为:无参数功能与有参数功能.无参数功能:代码function 测试()end无参功能:功能定义、功能说明及功能调用中均不带参数主调功能和被调功能之间不进行参数传送.有参数功能:复制代码function 测试(参数1,参数2)end参数的个数可以有多个,用户自己根据需要使用但是一般建议不要超过10个.有参功能:也称为带参功能在功能定义及功能说明时都有参数,称为形式参数(简称为形参).在功能调用时也必须给出参数,称为实际参数(简称为实参).进行功能调用时,主调功能将把实参的值传送给形参,供被调功能使用.    第二:根据有无返回语句分为:有返回值功能和无返回值功能.有返回值语句的功能:代码function 获取姓名()  返回 '张三'end这样程序在调用这个获取姓名的功能后,就可以获取到这个功能的返回值'张三'.无返回语句的功能:代码function 获取姓名()  var 姓名='张三'end这个没有返回语句,那么在调用这个功能的时候,只能单独的调用功能,而不能像有返回值的那样去使用.在功能的调用时,我们只能掌握以下几点就可以很多的调用了.1、明白功能的作用,之后使 功能名()的格式进行调用.2、明确功能的参数个数、各个参数的类型以及作用,之后按照参数的格式传入相应参数即可.3、确定功能是否有返回值,没有则直接调用方法即可如果有返回值则确定返回值的作用,需要返回值做处理则使用变量存储返回值,不需要返回值就可以像无返回值那样直接调用即可.掌握这几点,基本上可以熟练的使用功能了.

5

功能参数详解在TC综合开发工具里面,功能的参数有如下几种形式:1、无参数功能代码function 测试()end无参功能:测试()功能没有参数,那么在调用的时候,就不需要传入值。2、有参数功能,但是没有默认值与引用传参代码function 测试(参数1,参数2)end有参功能:测试()功能有2个参数,那么在调用测试功能时,需要传入2个参数。3、有默认参数的功能代码function 测试(参数1,参数2=0)end测试功能有2个参数,第1个是参数没有默认值,第2个参数带默认值,那么在调用这样方法的时候,既可以省略第2个参数,只传一个参数,也可以写2个参数传入如上的调用方法有下面2种,其效果是一样的。测试(100)// 程序会使用默认值处理测试(100,0) // 程序不使用默认值,而使用传入的值,只是值于默认值相等。注意:如果参数中某个参数设置了默认值,那么这个参数后面的所有参数都必须设置默认值,否则在编译的时候,编译器会提示你参数错误如下的写法是错误的:代码function 测试(参数1,参数2=0,参数3,参数4)end上面的错误代码修改下就正确了。代码function 测试(参数1,参数2=0,参数3=0,参数4=1)end4、引用传参的功能引用传参的概念来自C++的语法,它的作用在于:传入参数的值会在功能里被修改,而这个修改不会因为功能结束而变化,但是非引用的参数在功能里无法修改的。在功能需要返回多个参数时,我们可以使用这个方法来实现。如下:代码function 引用传值(&A,&B)// 引用传参  A=A*2    B=B*4    return 0  endfunction 普通传值(A,B)// 非引用传参  A=A*2    B=B*4    return 0  endfunction 按钮0_点击()    var A=10,B=15    引用传值(A,B)// 因为是引用传参,那么AB的值会发生改变  messagebox(A&'和'&B)//输出20和60 endfunction 按钮1_点击()    var A=10,B=15    普通传值(A,B)// 因为是非引用传参,那么AB的值不会发生改变  messagebox(A&'和'&B)//输出10和15end

6

数组的定义与访问数组是一系列数据的集合,可以存储大量数据,通过数组的下标、key,可以实现对数据的快速访问.为什么要使用数组呢?如果您有一个项目列表(例如汽车品牌列表),在单个变量中存储这些品牌名称是这样的代码var cars1 = '宝马'var cars1 = '卡宴'var cars1 = '奥迪'不过,假如您希望对变量进行遍历并找出特定的那个值?或者如果您需要存储300个汽车品牌,而不是3个呢?解决方法是他用数组存储!数组能够在单一变量名中存储许多值,并且您能够通过引用key来访问某个值.TC中数组创建与使用数组里面是可以同时存储多种类型数据TC中数组分为三类:1、索引数组代码var a = array('宝马','卡宴','奥迪')////或者var a = array()a[0] = '宝马'a[1] = '卡宴'a[2] = '奥迪'//遍历数组for(var i=0;i<3;i++)   messagebox(a[i])end2、关联数组代码var a = array('key1'='宝马','key2'='卡宴','key3'='奥迪')//或者var a = array()a['key1'] = '宝马'a['key2'] = '卡宴'a['key3'] = '奥迪'//显示指定数组元素messagebox(a['key2'])3、多维数组代码//(1)、索引多维数组var a = array(array('Volvo',22,18),array('BMW',15,13),array('Saab',5,2))//或者var a = array()a[0] = array('Volvo',22,18)a[1] = array('BMW',15,13)a[2] = array('Saab',5,2)//遍历数组for(var i=0;i<3;i++)  for(var j=0;j<3;j++)     messagebox(a[i][j])  endend//(2)、关联索引数组var a = array('key1' = array('Volvo',22,18),'key2' = array('BMW',15,13),'key3' = array('Saab',5,2))//或者var a = array()a['key1'] = array('Volvo',22,18)a['key2'] = array('BMW',15,13)a['key3'] = array('Saab',5,2)//显示指定数组元素messagebox(a['key1'][1])在TC综合开发工具里面,对于数组的操作提供了一系列非常详细的api,更多示例请大家参考数组空间的相关api

注意事项
1

学习过程中碰到问题要问人可以在QQ群或者是论坛咨询。

2

在TC界面下按F1就会有《TC综合开发工具文档》

推荐信息