1

「体力」「スピード」「スタミナ」を持ったオブジェクト「敵」としてユニティクリプトでできる。そして、オブジェクトを削除するには、または一度に複数を削除するには?

class enemy {
    health = 100
    speed = 10
    stamina = 200
}

for 0 to 10
{
    enemyBig = new Enemy ()
}


if keydown (space)
{
    delete all.enemyBig 
}

Unityscriptのこのコードはどのように正しくなりますか?

4

3 に答える 3

1

javascriptでは、クラスを定義するために関数を作成します。

function Enemy {
   this.health = 100;
   ....
};

次に、プロトタイプにメソッドを配置します(javascriptはプロトタイプの継承を使用するため)。

Enemy.prototype.theMethod = function () { ... };

上記を実行してメソッドを定義する場合、そのメソッドはインスタンスメソッドです。つまり、すべてのオブジェクトにはメソッドの独自のコピーがあります。'static'メソッドを定義する場合は、メソッドをクラスに配置するだけです。

Enemy.staticMethod = function() {...};

違いは前者の場合です

var enemy1 = new Enemy();
enemy1.theMethod(); // this in the theMethod refers to enemy1

後者の場合は

Enemy.staticMethod(); // there is only one staticMethod for the entire class.
于 2010-12-06T18:37:58.997 に答える
0

すべての敵を一度に追跡するために必要なものは、配列と呼ばれます。そこに良いチュートリアルがあります:

于 2010-12-06T18:55:13.317 に答える
0

オブジェクトを実装するには:

function Enemy {
    this.health = 100;
    ...
};

Enemy.prototype.attack = function() {
    this.health -= 10;
    ...
};

var boogerMonster = new Enemy();
boogerMonster.attack();

オブジェクトを削除する限り、ガベージコレクターは、オブジェクトへの他の参照がない場合、オブジェクトを処理します。

しかし、質問からすると、この情報を知っているだけでは遠くまでは行かないようです。JavaScriptに関する本を入手するか、オンライン調査を行って、JavaScriptの基礎を実際に理解してください。

于 2010-12-06T18:56:02.387 に答える