正文

类型、变量与标准(18)

通过游戏编程实战教新手学C++编程 作者:(美)Michael Dawson


1.7.2  使用常量

程序定义了常量ALIEN_POINTS来表示外星人的分值。

const int ALIEN_POINTS = 150;

这里只需要在变量的定义之前加上const修饰符。现在可以像使用任何整数一样使用ALIEN_POINTS。注意,程序使用了大写字母命名常量。这只是惯例,但一般都这么做。全部大写的标识符告诉程序员它代表了一个常量。

下面一行代码使用了常量:

int score = aliensKilled * ALIEN_POINTS;

杀死的外星人数目与每个外星人的分值相乘得到玩家的得分。常量的使用让这行代码的含义显得很清晰。

陷阱

不能对常量赋新值。如果试图这么做,会生成编译错误。

1.7.3  使用枚举类型

枚举类型是unsigned int型常量的集合,其中的常量称为枚举数。通常情况下,这些枚举数是相关的,并且有特定顺序。这里给出一个枚举类型的例子:

enum difficulty {NOVICE, EASY, NORMAL, HARD, UNBEATABLE};

这里定义了一个枚举类型difficulty。默认情况下,枚举数的值从0开始,每次加1。所以NOVICE等于0,EASY等于1,NORMAL等于2,HARD等于3,UNBEATABLE等于4。如果要定义自己的枚举类型,只要在关键词enum后面加上标识符,然后加上用花括号括起来的枚举数列表。

下面定义了枚举类型的变量。

difficulty myDifficulty = EASY;

变量myDifficulty被置为EASY(等于1)。myDifficulty是difficulty类型的变量,因此它能够存储枚举类型中定义的值。也就是说,只能用NOVICE、EASY、NORMAL、HARD、UNBEATABLE、0、1、2、3或4这些值对myDifficulty赋值。

下面定义了另外一种枚举类型。

enum shipCost {FIGHTER_COST = 25, BOMBER_COST, CRUISER_COST = 50};

本行代码定义了shipCost这一枚举类型,用来表示在策略游戏中建造这些飞船花费的资源点。在代码中,某些枚举数被赋予了特定的整数值。这些值表示每种船只的资源点。如果需要,可以对枚举数赋值。没有赋值的枚举数的取值为前一个枚举数的值加1。由于代码没有对BOMBER_COST赋值,因此它被初始化为26。

下面定义了这种新枚举类型的一个变量。

shipCost myShipCost = BOMBER_COST;

还可以对枚举数进行算术计算。

(CRUISER_COST - myShipCost)

这一小段代码计算从Bomber升级到Cruiser所需的花费,与50–26相等,结果为24。


上一章目录下一章

Copyright © 读书网 www.dushu.com 2005-2020, All Rights Reserved.
鄂ICP备15019699号 鄂公网安备 42010302001612号