0

这里的第一个问题:)(“AS3”)

首先,如何从另一个类访问变量?
你看,我的“数据库”目前在一个单一的类中,当我称之为“scene_battle”时我需要访问它。编写此代码的最佳方法是什么?我想正确获取类的变量,而不是实例变量,因为我什至不需要此类的实例,因为它只是一个数据库。

其次,关于我的游戏的 OOP 结构的一个更普遍的问题。目前,它是这样的:

scene_battle调用playerenemy。玩家和敌人从我的数据库中获取数据。基本上,我只是重复我的玩家类的一个实例,它会有一个基于游戏方的 ID。

如果你能给我一些关于代码的一般或有用的提示,比如封装一些东西,我将非常感激。先感谢您。

4

1 回答 1

2

首先,如何从另一个类访问变量?

- 如果你想要一个通用类作为值的引用,你可以使用类的实例或静态类,两者都一样好。

我想正确获取类的变量,而不是实例变量,因为我什至不需要此类的实例,因为它只是一个数据库。

- 如果您像在 C++ 中那样引用获取指针,则无需担心,除非您使用 new 关键字,否则所有与另一个对象相等的对象都将是指针。

scene_battle 调用玩家和敌人。玩家和敌人从我的数据库中获取数据。基本上,我只是重复我的玩家类的一个实例,它会有一个基于游戏方的 ID。

-我之前已经实现了回合制游戏,这就是我的做法,请记住,这并不是最好的实现。

BattleManager
    Members:
    -BattleScenario (this contains all the meta data for your battle scenario, teams, map location, any modifiers that are related to a battle)
    -Teams (this is a list of Team classes wich have players)
    -TeamSequence(this is a list of team wich will be populated from Teams and will control the flow of the battle)
    Functions:
    -StartBattle
    -EndBattle
    -GiveTeamTurn (this function gets the TeamSequence and calls ActTurn on the Class Team and removes the team from the TeamSequence list)
    -RepopulateTeamSequence(when the TeamSequence is empty this is called to repopulate the TeamSequence)

Team
    Members:
    -Players (this is a list of players)
    Functions:
    -ActTurn (this function calls a player that is still able to act during the turn, and tells him to act, this is where you prompt the user for actions or use your AI)

这只是大行,他们的很多东西在这里没有展示,你必须实现。还要小心很多回调会被触发,例如当玩家完成表演并回电给其团队说它在本回合完成并且该团队应该为团队的另一个成员调用 ActTurn 直到它完成,团队也是如此,一旦团队中的每个玩家完成本回合,就会触发对 Battlemanager 的回调。

希望这会有所帮助,GL!

于 2012-04-05T16:02:43.783 回答