2016-06-23 29 views

答えて

1

これは、私がソフトウェア工学のバックグラウンドから来たコンストラクト2について本当に混乱させるものです。

効果を出すスプライトのインスタンスを選択すると、データベースをフィルタリングするような処理が行われます。リスト内のすべてのインスタンスから始め、条件を使用してそれらをフィルタリングします。可能な場合、コンストラクト2は自動的にあなたが望むインスタンスを推測します。 (EnemySpawnでEnemyを生成したばかりの場合、次のEnemyは作成された最後のEnemyだけです)。

これは魔法のように、ほとんどの時間の作品が、あなたはこれらの条件のいくつかをオブジェクトの集合を選択することができます。

変数インスタンスの比較は、オブジェクトのインスタンス変数の1の現在の値を比較してください。

ブール型インスタンス変数を設定する オブジェクトのブール型インスタンス変数のいずれかがtrueに設定されているかどうかをテストします。

一意のID(UID)で選択 特定の一意のID(UID)番号と一致するインスタンスを選択します。

私の経験では、インスタンス変数を追加し、スプライトのサブセットまたはスプライトの状態を追跡するように設定するのが、特定のスプライトグループにアクションを限定する最もクリーンな方法です。

はScirraマニュアルからもObject Expressions参照してください:あなたは別のオブジェクトインスタンスからの表現を取得するための0ベースのオブジェクトのインデックスを追加することができます

。たとえば、Sprite(0).Xは最初のSpriteインスタンスのX位置を取得し、Sprite(1).Xは2番目のインスタンスのX位置を取得します。詳細については、共通機能のインデックスID(IID)を参照してください。索引に別の式を渡すこともできます。負の数は反対側から始まるので、Sprite(-1).Xは最後のスプライトのX位置を取得します。

これらは「特定の」オブジェクトIDではありません(コンストラクト2はインデックスIDまたはIIDと呼ばれます)が、作成された順序でそのタイプのすべてのオブジェクトを参照します。

ので:
Enemy(0)は最初
Enemy(-1)
Enemy(5)最新である(下記参照)破壊されたスプライトを無視して、作成された第六敵です。

IID 3のオブジェクトを破棄すると、それ以降のオブジェクトはすべてリスト内で移動し、そのIIDは1ずつ減少することに注意してください。(LinkedListのデータ構造と同様に)

インスタンスDを破棄した場合、他の人がうまくいけば、これらの方法の一つは、あなたが必要なものを得るのを助けることができます

Instance |A|B|C|D|E|F|  -->  |A|B|C|E|F| 
IID  |0|1|2|3|4|5|  -->  |0|1|2|3|4| 

をシフト!

関連する問題