2012-04-05 8 views
0

ここで最初の質問:)( "AS3")ターンベースのRPGゲームを作る、構造に関するいくつかの質問。 Actionscript 3

まず、別のクラスの変数にアクセスするにはどうすればよいですか?
私の "データベース"は現在単一のクラスの中にあり、 "scene_battle"と呼んでいるときにアクセスする必要があります。これをコード化する最良の方法は何ですか?私はこのクラスのインスタンスを必要としないので、インスタンス変数ではなく、クラスの変数を取得したいと思っています。

第2に、私のゲームのOOP構造に関するより一般的な質問です。現在、これは次のようなものです:

scene_battleplayerenemyを呼び出します。プレイヤーと敵は自分のデータベースからデータを取得します。基本的に、私はプレーヤークラスのインスタンスを繰り返すだけで、ゲームパーティーに基づいたIDを持っています。

何かをカプセル化するなど、コードに関する一般的なヒントやヒントを教えていただけたら、私は非常に感謝しています。前もって感謝します。

答えて

2

まず、別のクラスの変数にアクセスするにはどうすればよいですか?

あなたは両方とも同じように優れている、あなたはクラスのインスタンスまたは静的クラスのいずれかを使用することができます値のためのリファとして役立つ一般的なクラスを持っていると思います-if。

私も、このクラスのインスタンスを必要としないので、私はそのちょうどデータベース以来 、クラス権利、およびない インスタンス変数の変数を取得したいと思います。

- あなたがC++のようにポインタを取得する場合、そのことを心配する必要はありません。新しいキーワードを使用しない限り、別のオブジェクトに均等化されたオブジェクトはすべてポインタになります。

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!

関連する問題