判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
5.2 判断玩家的选择判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
上一节说明了,脚本中的判断语句对于游戏的重要性,但是列举的例子还是太抽象了。读者无需为此感到困惑,作者可以在此处列举些更实际的例子:玩家是否按下了游戏视图中的特定按钮,或者键盘上的特定按键,玩家是否击败了小怪等等。这些都是游戏脚本中需要使用判断语句的地方。
5.2.1 最常用的判断语句——if判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
在生活中,人类习惯使用“是”和“否”做出判断,但在游戏的脚本中,通常是使用“真”和“假”来做出判断的。本小节将以脚本中最常用的if语句来说明,在脚本中做出判断的方法。
1.if语句判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
在脚本中,if语句的书写格式如下,表示的游戏执行流程如图5-2所示。
if(需要判断的部分)
{
//语句或者语句块;判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
}
q if及其后面的括号“( )”是必不可少的;
q 大括号“{ }”里包含的是语句块,即多条语句,如果语句块里只有一条语句,那么大括号“{ }”就可以省略;
q 当从判断部分得出的结论是true时,就执行大括号里面的语句,否则就直接跳过大括号里的语句;
图5-2 if语句表示的游戏执行流程图
2.需要判断的部分
这部分代码可以是表达式,也可以是方法。但是无论如何,这个部分应该可以明确的给出true或者false。true和false实际上是布尔类型的数据(在第2章中曾以表格的形式列出)。也就是说,从需要判断的部分里,可以得到一个数据,而这个数据是布尔类型的。至于表达式,它既可以是逻辑表达式,又可以是关系表达式,如图5-3所示。
图5-3 判断部分的构成和结果判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
3.逻辑表达式
构成逻辑表达式的逻辑运算符有3种:!(非)、&&(与)和||(或),这种表达式的运算结果如表5.1所示。
表5.1 逻辑表达式的运算结果
a | b | !a | !b | a&&b | a||b |
true | true | false | false | true | true |
true | false | false | true | false | true |
false | true | true | false | false | true |
false | false | true | true | false | false |
注释:a和b是参与逻辑运算的两个数据。
4.关系表达式判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
构成关系表达式的关系运算符有6种,它们的名称、使用示例及功能如表5.2所示。
表5.2 关系运算符、使用示例及功能
关系运算符 | 名称 | 使用示例 | 功能 |
== | 等于 | a == b | a等于b时,true,否则,false |
!= | 不等于 | a != b | a不等于b时,true,否则,false |
> | 大于 | a > b | a大于b时,true,否则,false |
< | 小于 | a < b | a小于b时,true,否则,false |
>= | 大于等于 | a >= b | a大于等于b时,true,否则,false |
<= | 小于等于 | a <= b | a小于等于b时,true,否则,false |
5.2.2 if语句游戏示例判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
请按照下面的步骤,完成游戏示例的制作:
(1)为游戏场景添加3个游戏对象:Directional light、Sphere和Plane。调节各游戏对象在游戏场景中的位置、朝向和大小,如图5-4所示。得到的游戏场景和游戏视图,如图5-5所示。
图5-4 设置各游戏对象Transform组件下的属性
图5-5 在Scene和Game视图里,查看各游戏对象的相对位置,以及游戏视图效果
Sphere是玩家在游戏中需要操作的游戏对象,而Plane则是为了模拟游戏中的“地面”而存在。
(2)在Hierarchy视图里选中Sphere对象,然后单击Component|Physics|Rigidbody命令,即可为Sphere对象添加刚体(Rigidbody)组件,如图5-6所示,此组件将使得Sphere对象如现实世界一般,会受到重力的影响。如果Sphere在空中的话,那么它就会因为收到重力的影响而下坠。
图5-6 为Sphere对象添加的刚体组件
(3)打开脚本MyScript,并添加下面的代码:
01 using UnityEngine;
02 using System.Collections;
03
04 public class MyScript : MonoBehaviour
05 {
06 private GameObject mySphere;
07 private Vector3 myVec;
08 void Start()
09 {
10 mySphere = GameObject.Find (“Sphere”);
11 }
12 void Update()
13 {
14 myVec = mySphere.transform.position;
15 //判断小球是否在Y轴方向上,超过了一定的范围,简单来说就是是否达到了一定的高度
16 if(myVec.y > 4)
17 myVec.y = 4;
18 mySphere.transform.position = myVec;
19 }
20 void FixedUpdate()
21 {
22 //判断玩家是否按下了鼠标的左键
23 if(Input.GetMouseButton(0))
24 mySphere.rigidbody.AddForce (Vector3.up*20);
25 }
26 }
将此脚本赋予Main Camera对象。
q 代码16、17行是if语句,括号里表示判断的部分是一个关系表达式。因为只有17行一条语句,所以没有使用大括号“{ }”,当关系表达式的值为true时,执行此语句;
q 代码23、24行是if语句,括号里表示判断的部分是一个方法,即Input.GetMouseButton(),作用是检测玩家是否按下了鼠标的左键。同样只有24行一条语句,所以也省略了大括号“{ }”,当方法返回的值是true时,执行此语句;
提示:Input.GetMouseButton()帮助文档的文字描述如图5-7所示,从中可以看出方法会返回bool类型的数据,而且判断的标准就是玩家是否持续按下了指定的鼠标按键。
图5-7 Input.GetMouseButton()的帮助信息判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
(4)运行游戏,由于球体最初在空中,此时球体只是受到了重力的影响,因此会向下坠落,直到降落到“地面”上为止。如果玩家此时按下鼠标左键的话,就会给球体施加一个向上的力,这个力比重力大,因此小球会向上运动。也就是说,当玩家按下鼠标左键以后,小球会向上运动。但是小球向上运动的范围是有限的,达到了这个限度以后,就不会再继续上升了,如图5-8所示。
图5-8 游戏示例运行效果判断玩家的选择最常用的判断语句——ifC#游戏开发快速入门大学霸
Comments are closed.