AS3:组合来自不同类中的多个对象的计数器(得分)变量

时间:2013-01-31 21:55:24

标签: actionscript-3 oop flashdevelop class-variables

我正在AS3开发一个相当基本的客观类空间射击风格的flash游戏。游戏最初包含1个具有随机变量参数的敌方目标,例如速度和健康状况,但组合分数计数器保持预定义,一个。

我已将游戏扩展到我有几个敌人目标,每个目标都有自己的类,因此,他们有自己的变量参数值。我还冒昧地增加了综合得分,以反映每个敌方目标的难度。

我遇到的问题是,我用于组合分数计数器的原始代码行仍然设置为“得分++;”,每次“if语句”发生时,它只会增加1。 / p>

我的问题是,如何根据每个班级的分配值,让我的分数计数器增加分数?

以下是一些相关代码,附注解释了我的观点:

当敌人目标被杀时,

“如果声明”(位于我的等级类别中):

// if the bullet is touching the ship
if (MyMaths.hitTest(sh, bullets[bcount])) {
sh.health--; // lose 1 heath point
score++;
removeChild(bullets[bcount]); // remove the bullet from the screen
bullets.splice(bcount, 1); // remove the bullet from the list
}

Ship1(包含在我的Ship1类中)得分值

public function Ship1() {
score=1; // set point value
}       

Ship2(存放在我的Ship2类中)得分值

public function Ship1() {
score=2; // set point value
}   

Ship3(包含在我的Ship3类中)得分值

public function Ship1() {
score=3; // set point value
}   

我只是不确定我是否需要制作一个新功能来合并得分值,并得到我的“得分++;”从中拉出来,我该怎么做呢?

我觉得这是许多面向目标的程序员认为相关的问题,因为将多个类的变量组合到单个计数器并不像看起来那么容易。此外,除了游戏开发之外,这可以用于广泛的其他开发人员利基 - 在网络中创建多个计算机模型的数据库,并在使用新操作系统刷新工作站后计算“完成总计”字段或必需的软件。

我真的很感激能够提供他们的专业知识,意见和/或鼓励的人。

非常感谢, 亚历

1 个答案:

答案 0 :(得分:1)

为什么没有单独的每艘船舶与之通信而不是这样做。

每当你增加分数时:

ScoreManager.getInstance().incrementScore(ShipX.getScoreDelta())

每次收集后getScoreDelta()将重置为0。

然后当游戏结束时:

ScoreManager.getInstance().getCurrentScore();