我们之前学习了变量。回忆一下变量,我们想到它是变化的,可以从1变成2,也可以从1变成0,它是一个数值,那还有其他的变量吗?这一节,我们就开始学习类型,它可以解答你的疑问。
让我来到第一个类型的关卡,关闭传送门。
在游戏开始的时候,传送门是打开的。就像这样子一样。
如果我们让角色直接走过去,传送门就把我们送到一座小砖块上了,那怎么样才能把传送门关上呢?设想一下,传送门是一个房间的门,这个门的状态有两种:
门--打开
门--关闭
是不是,那么我们对传送门可否给它的状态进行设定?
传送门.打开()
传送门.关门()
是的,系统给我们了传送门的状态的设定代码。就是这句:
greenPortal.isActive =false
false代表“否”,true代表“是”。
greenPortal.isActive =false //代表传送门是关闭的。
greenPortal.isActive =ture //代表传送门是打开的。
我们把过关的要求,放在这里:
学会了,传送门状态的变更方法,我们可以进行下面的工作了。写代码。
代码如下:
greenPortal.isActive =false
var MoveNum = 0
while MoveNum < 30 {
moveForward()
MoveNum +=1
if isBlocked && isBlockedLeft && isBlockedRight {
turnLeft()
turnLeft()
}
if isOnClosedSwitch {
toggleSwitch()
}
if MoveNum %6==3{
turnLeft()
}
}
在这里,我们首先就改变了传送门的状态,然后创造了一个变量,让变量用于标准移动的次数。然后通过while循环,去判断走路的方向和动作操作。
MoveNum %6==3
这一句是用来判断角色是否回到十字路口的中心,“%6”表示除以六,是个除法的表示形式。因为在这个地图里,每走一个路口来回经过的砖块数量是6,在这个地图上是不变的。所以,我们偷一下懒。等于3,是因为,前面角色走到中心,已经经过了三块砖。
执行结果如下:
我们改变的传送门的状态,叫做属性。属性的状态可以改变的话,也是一种变量。
想想,还有什么其他的方法可以让角色自己走遍十字路的砖块。