0

そのため、この状況に対する直接的な回答を見つけることができませんでした。Flash Builder AS3 で練習 テキストベースのアドベンチャーゲームを作っています。

私にはアイテムがあり、アイテムには装備可能なアイテムがあり、装備可能なアイテムには頭、脚、胸などがあります。

頭装備アイテム、脚装備アイテムなどは装備アイテムなので特性は同じですが、今後少しずつ変わる可能性があるので別クラスにしたいと思います。

期待どおりにこれを行うと(クラスをネスト)、クラスをネストしないことに関するエラーが発生し、ファイルに複数のクラスがあることなどに関するそれ以外のエラーが発生します。

これを行うための賢明な方法は何でしょうか?!

御時間ありがとうございます。

ここにいくつかのコードがあります...

私の壊れたクラスコード:

package classes
{
    public class Item
    {
        public var iName:String;
        public var iDesc:String;
        public var isRemovable:Boolean;
        public function Item(iName:String, iDesc:String, isRemovable:Boolean )
        {
            var name:String = iName;
            var desc:String = iDesc;
            var removable:Boolean = isRemovable;
        }
    }
}
class Equippable extends Item{
    function Equippable(pName:String, pSpeedMod:Number, pAttackMod:Number, pLocation:String)
    {
        var name:String = pName;
        var speedMod:Number = pSpeedMod;
        var attackMod:Number = pAttackMod;
        var location:String = pLocation;
    }
}
class Head extends Equippable{
}
class Chest extends Equippable{
}
class Legs extends Equippable{
}
class Belt extends Equippable{
}

私の MXML ファイル (これは、私がこのプロジェクトにどれだけ早く参加したかを示しています!):

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
        xmlns:s="library://ns.adobe.com/flex/spark" 
           xmlns:mx="library://ns.adobe.com/flex/mx">

    <fx:Script>
        <![CDATA[

        import classes.*;

        private function createRooms():void {
            var NorthRoom:Room = new Room("North Room","This is the North Room.", "None", "None", "Central Room", "None");
            var EastRoom:Room = new Room("East Room","This is the East Room.", "None", "None", "None", "Central Room");
            var SouthRoom:Room = new Room("South Room","This is the South Room.", "Central Room", "None", "None", "None");
            var WestRoom:Room = new Room("West Room","This is the West Room.", "None", "Central Room", "None", "None");
            var CentralRoom:Room = new Room("Central Room","This is the Central room.", "North Room", "East Room", "South Room", "West Room");
        }

        public function createItems():void {

        }

        private function buttonClick(event:Event):void {
            TextArea.text = "Button number " + event.target.id + " has been pressed.";
        }

        var ThePlayer:Player = new Player()

        while(1){


        }


        ]]>
    </fx:Script>
    <mx:TextArea left="20" height="250" width="600" id="TextArea"/>
    <mx:Button width="100" click="buttonClick(event)" y="270" x="520" label="Inventory" id="InvBTN"/>
    <mx:Button width="100" click="buttonClick(event)" y="310" x="520" label="Examine Area" id="ExArea"/>
    <mx:TextArea left="20" height="20" width="300" y="270" id="CEntry"/>
    <mx:Button width="100" click="buttonClick(event)" y="310" x="20" label="OK" id="SEntry"/>
</s:Application>
4

1 に答える 1

2

利用可能なクラスごとに個別の AS3 ファイルを作成する必要があります。基本的にはそれだけですが、クラス ツリーを再構築することも考えられるかもしれません。たとえば、装備可能なアイテムは、このアイテムを装備できる場所を意味するプロパティ「スロット」を持つことができます。たとえばEQUIP_LEGEQUIP_HEAD定数 (整数) として使用できます。または、装備品を武器、防具、魔法のみのもの (宝石、お守り、浮遊装置など) に分割することもできます。武器には、装備可能なものだけでなく、鎧も共通しています(もちろん、スロットが異なります。武器も脚に取り付けられる可能性がありますか?決定するのはあなた次第です)。クラス。

于 2013-09-27T12:07:26.247 に答える