永发信息网

Gamemaker的一些常见词 repeat break and or for 之类的词的用法

答案:1  悬赏:0  手机版
解决时间 2021-03-23 10:02
  • 提问者网友:愿为果
  • 2021-03-22 10:17
Gamemaker的一些常见词 repeat break and or for 之类的词的用法
最佳答案
  • 五星知识达人网友:掌灯师
  • 2021-03-22 10:48
关于楼主所说的常见词,大致分为三类:
一、关键词类:
关键词有if else while do until switch case default begin end with repeat break continue for var globalvar这些,其中if、while、with、repeat的结构形式如下:
if(expression)  
{
    //statements;  
}
while(expression)
{
    //statements;  
}  
with(expression)
{
    //statements;   
}
repeat(expression)
{
    //statements;  
}其中if用于条件判断,当expression的内容为真时在一步中执行下方动作一次。while则是条件循环,也是在expression内容为真是发挥作用,但是下方的动作会在一步内反复执行直到上方条件不满足为止。with里面的expression内容最终将指代一个实例,并委托该实例进行下方的操作。repeat则是用于限定次数的循环操作,即按expression值的次数反复执行下方内容。while和repeat均属于循环结构,值得一提的是,repeat是唯一一个理论上永远都不会进入死循环的循环(仅在expression的值非常大的时候才有可能造成计算压力)。
for也是一个循环结构,也是后面有括号和大括号里面的东西,只是稍作变化:
for(statement0;expression0;statement1)
{
    statements;  
}当程序进入for时,会率先执行一次statement0,此后statement0就再也不会被光顾,之后进入expression0进行判断真假,如果为真,则执行statements然后再执行statement1回来继续判断expression0,如此往复,通常我们会这么用
for(i=0;i<100;i+=1)
{
    //statements;  
}这样可以步进地进行某些操作因此for循环也被成为步进循环。
 
else是一个可选结构,只能跟在if后面表示当if条件不成立(为假)的时候执行的操作:
if(expressions)
{
    //statements0;  

else
{
    //statements1;  
}注意,else只能否定if的条件而不能给while等其他结构用。
有些时候,我们同时判断一个变量的不同值时我们采取不同的操作 ,你可以使用多个if进行判断,但是这样未免很麻烦,因此我们又有了一个关键词叫做switch,switch的结构较为复杂,需要搭配casereak使用,必要时还要搭配default。
switch(variable)
{
    case expression0 : //statements0;
    break;
    case expression1 : //statements1;
    break;
    //此处省略N个case-break结构
    default : statementsN+1 ;
}switch接到的变量逐一和case后面的值进行比对,若相符则执行该case之后的statements,break结构不是必须的,但有无break对结果可能会造成一定的区别,比如中途variable的值被改变了,而且如果或值判断时(即如等于3或等于4时都可以做的动作)不能用break,两个case还要写到一起等。当没有一个值满足时,则使用default后面的内容,换言之,default相当于else。
 
do也是一个循环,只不过和while不同,do必须要和until连用,而且do-until的循环条件要后置,也就是说do-until的语句至少会被执行一次。结构如下:
do 
{
    //statements; 
}
until(expression)注意,这里面until的内容是跳出循环的条件而非维持循环的条件,而且do和until的位置关系不能颠倒。
剩下的关键词就相对简单了,begin和end就是大括号({}),而break、continue可以单独成句:
break;
continue;这两个关键词都用于非if结构中,用于控制循环,break表示跳出循环,continue则表示跳入循环的下一轮。
最后说一下var和globalvar,这两个用于声明临时变量(后者声明全局变量),var声明的变量只能在作用域内使用,而globalvar和global.的变量一样可以全局使用,这在后面是有介绍的
 
GMS中又多了一个新的关键词叫做enum,枚举类型,感兴趣可以自己看一下。
 
二、运算符类
运算符包括+、-、*、/、&&、||、!、^^、>、<、==等,其中由字构成的运算符有div、mod、and、or、not、xor等。运算符分为一元运算符和二元运算符。一元运算符只能放在一个表达式(expression)的前面,而二元运算符前后都要连接表达式。注意,表达式和别的表达式运算之后的结果也算作一个表达式。
运算符按性质还可以分为数值运算符、字符串运算符、关系运算符、位运算符和布尔运算符(逻辑运算符),其中四则运算属于数值运算符,而四则运算中的+还可以充当字符串运算符,也是唯一一个字符串运算符,用于拼接两个字符串,四则运算符都是二元运算符,数值运算符还包括两个特殊的div和mod,div表示整除,即取除法结果的整数部分,而mod是取余运算,即返回余数结果。关系运算符有>大于、<小于、==等于、!=不等于(也可写作<>),关系运算符也都是二元运算符,用于比较两个表达式的大小关系,而返回的结果是一个布尔值(true或者false)。布尔运算符有四个:and(即&&)且、or(即||)或、not(即!)非、xor(即^^)异或。其中and、or、xor是二元运算,not是一元运算,and表示两个表达式是否都满足、or表示两个表达式是否满足其中一个,xor表示两个表达式是否满足其中一个且不都满足,而not则是取得原来表达式的否定。他们的返回结果也是布尔值,换言之存在如下关系:
true and true == true
true and false == false
false and false == false
true or true == true
true or false == true
false or false == false
true xor true == false
true xor false == true
false xor false == false
not  true == false
not false == true
在GM中,0以上被认为是true,尽管true的字面值是1,0及以下值被认为是false,尽管false的字面值是0.换言之:如9&&8的结果仍然是true这样。
位运算符这里不做介绍,帮助文档里面有。
 
三、常量类
这里面说的常量是指这些:self other all noone global local
注意,常量的使用方式和常数毫无区别
self值为-1,用于表示自身
other值为-2,表示对方实例,只能在碰撞事件中或者with中使用,注意在with中,原来的self会变成other而with的东西变成了self
all值为-3,表示全体实例
noone值为-4,表示不指任何一个实例或没有实例
global值为-5,表示全局变量
local值为-7,表示临时变量,var声明的变量属于它。
用法如下例如self.x等,all和noone不能这么用,但是all和noone可以被with(self和other也能但global和local就不能)。
作为常量,他们可以和任意一个实数进行比较以及运算。
但注意,有些只认id的位置是不能直接用self或other的。需要传递实例的id才可以。
 
望采纳,GameMaker吧为您服务
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯