0

私は AS3 を初めて使用し、高度な在庫管理システムを導入しようとしています。私は 3 人のプレーヤーと 3 つのクラスを持っています: PlayerStats1PlayerStats2、およびPlayerStats3。これらの各クラス内には、配列があります。この配列には、各プレーヤーのインベントリが含まれています。配列にはすべて名前が付けられinventoryます。また、誰のインベントリを開くかを決定する変数もあります。この変数は単に と呼ばれturnます。Player2 のインベントリ スロット 5 ( の 5 番目の値PlayerStats2.inventory) に何があったかを調べて表示するにはどうすればよいでしょうか。簡単なコードでそれを行うにはどうすればよいですか? のようなものgotoAndStop(PlayerStat + turn.inventory[4]);。もちろん、コードはおそらくそれよりもずっと大きく見えます。

4

1 に答える 1

0

ここに例があります

class A {

    private var playDict:Dictionary = new Dictionary();

    public function addPlayer(playerId:int, player:PlayStats):void {
         playDict[playerId] = player;
   }

   public function getInventory(playerId:int, invertoryIndex:int):Object {
        var player:PlayStats = playDict[playerId] as PlayStats;

        if (player) {
           if (player.inventory) {
               return player.inventory[invertoryIndex];
           } else {
               return null;
           }
        } else {
            return null;
        }
   }

}

PlayStats は、PlayStats1、PlayStats2、PlayStats3 の基本クラスです。PlayStats1、PlayStats2、PlayStats3 は、ターゲット オブジェクトを独自のインベントリに追加できます。

public class  PlayStats {

   public var inventory:Array = [];
}
于 2013-06-17T01:20:01.277 に答える