0

このゲームを作っているのですが、本当に「サブクラスのサブクラス」にアクセスしたいのです。だから私はこのようなものを持っています: MainClass > MonsterLibrary > SampleMonster.

このサンプル モンスターを MainClass から追加したいのですが、MonsterLibrary を介して使用する必要があるため、MainClass でモンスターごとにモンスターを追加する必要はありません。すべてのモンスターのリスポーンは、MonsterLibrary クラスで記述されます。

このようなものであるべきだと思います。

public class MainGame extends MovieClip {

    public function MainGame() {
        var mylibrary:MonsterLibrary = new MonsterLibrary();
        mylibrary.MonsterLibrary();

メインクラス。

public class MonsterLibrary extends MovieClip {

    #all var here.#

    public function MonsterLibrary(){
        var monster:SampleMonster = new SampleMonster(330,250);
        addChild(monster);
    }

モンスター ライブラリ クラス。

public class SampleMonster extends MonsterLibrary{

    public function SampleMonster(startX:Number, startY:Number) {

        //SETTING STARTING LOCATION
        x = startX;
        y = startY;

サンプルモンスタークラス。

私は間違っていることを知っていますが、これを機能させる方法がわかりません。このエラーが発生し続けます -> 1061: 静的型 MonsterLibrary の参照を介して未定義の可能性があるメソッド MonsterLibrary を呼び出します。

4

2 に答える 2

0

私はあなたが何を達成しようとしているのか混乱しています。

メソッドを呼び出すたびに、MonsterLibrary にモンスターを返してもらいたいですか?

つまり、次のように MonsterLibrary クラスにメソッドを含めることができます。

public function getMonster():SampleMonster
{
     var monster:SampleMonster = new SampleMonster(330,250);
     return monster;
}

次に、MainGame は次のようになります。

public class MainGame extends MovieClip {

public function MainGame() {
    var mylibrary:MonsterLibrary = new MonsterLibrary();
    var newMonster:SampleMonster = mylibrary.getMonster();
    addChild(newMonster);

さらに進むとgetMonster、モンスターの種類を指定するメソッドのパラメーターを持つことができます。

例えば ​​:

public function getMonster(monsterType:int):Monster
{
   // create the appropriate monster and return it
}

コードで の表示リストにモンスターを追加することは、 の表示リストに追加しない限り表示されMonsterLibraryないことを意味することに注意してください。MonsterLibraryMainGame

また、SampleMonster拡張機能がありますがMonsterLibrary、これは機能しません。

SampleMonsterおそらく拡張する必要があります。MovieClipまたはSprite、複数のモンスターを使用する場合はMonster、特定のモンスターが拡張する可能性のある基本クラスが必要です。

于 2013-09-18T23:36:28.120 に答える