这里的第一个问题:)(“AS3”)
首先,如何从另一个类访问变量? 你看,我的“数据库”目前在一个单独的类中,我需要访问它,比如说,我称之为“scene_battle”。编码的最佳方法是什么?我希望得到类的变量,而不是实例变量,因为我甚至不需要这个类的实例,因为它只是一个数据库。
其次,关于我游戏的OOP结构的一个更普遍的问题。目前,它是这样的:
scene_battle
来电player
和enemy
。玩家和敌人从我的数据库中获取数据。基本上,我只是重复我的玩家类的一个实例,它将有一个基于游戏派对的ID。
如果你能给我一些关于代码的一般或有用的提示,比如封装一些东西,我将非常感激。提前谢谢。
答案 0 :(得分: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直到完成,同样的情况也适用于团队中的每个队员都会在本回合中完成对战斗管理员的回调。
希望这有帮助,GL!