2017-11-05 5 views
1

내 마음에 문제가 생겼습니다. 게임에서 라이브러리의 적들을 인스턴스화하여 무대에 올려야합니다. 그래서 EnemySpawner 클래스를 만들고 그 클래스의 인스턴스를 무대에 올려 놓습니다. (라이브러리에서 드래그 앤 드롭하여 인스턴스 이름을 지정하십시오). 그래서 여기 EnemySpawner 클래스의 코드입니다 :ActionScript 3.0의 적 스폰하기

package scripts { 
import flash.display.MovieClip; 

public class EnemySpawner extends MovieClip { 

    var positions: Array = new Array(); // clockwise spawn positions 
    var enemies : Array = new Array(); 
    var spwan:Boolean=false; 
    public function EnemySpawner() { 
     positions.push(MovieClip(root).rightPos); 
     positions.push(MovieClip(root).leftPos); 
     enemies.push("Enemy1");// here is the problem 
    } 

    public function tick(): void { 

    } 
    public function doSpwan():void{ 

    } 

} 

}

그래서 여기에 문제의 문제는, 내가 무작위로 무대에 라이브러리 및 인스턴스를에서 원수를로드 할이, 디자인 환경은 다음과 같이이다 :

pic from lib

나는 D : 같은 블라스 클래스 라이브러리의 diffrent 적 무비 클립이 있습니다

각 적을 새로운 클래스에 할당하고 싶지 않습니다. 예를 들어 EnemyA 클래스를 Enemy1 MovieClip 객체에 할당하고 EnemyB 클래스를 Enemy2 MovieClip에 할당하지 않으려합니다. 나는 모든 Enemy MovieClip이 같은 클래스의 적 (Enemy)을 공유하고 싶다. 그래서 이것을 사용하여 인스턴스화하는 것은 어려운 작업입니다.이 방법을 사용하여 적을 인스턴스화하는 방법을 모르겠습니다.

var e1 : Enemy1 = new Enemy1(); 
var e2 : Enemy2 = new Enemy2(); 
... 

var e3 : Enemy3 = new Enemy3(); 

을하지만 이런 식으로 뭔가 할 원하는 : 사전에

//Pseudocode: 
//Instantiate form library (Name Of Enemy1); //base class is enemy 1 
//Instantiate form library (Name Of Enemy1); //base class is enemy 1 
//Instantiate form library (Name Of Enemy1); //base class is enemy 1 

덕분에 나는이 작업을 수행 할 수있는 각 적의에 대해 별도의 클래스가있는 경우

나는 알고있다.

답변

1

실제로는 쉬운 작업입니다. 다음 다른 클래스와 원수를 지정

당신은 Unity3D와 함께 일했다면, 난 모든 원수에 대한 기본 클래스를 원하는 코드에 대한
+0

감사합니다, 원수에 대해 다른 클래스를 지정하지 할 수있는 방법이

// List classes in this Array. var Enemies:Array = [Enemy1, Enemy2, Enemy3]; // Get a random class from the list. var anIndex:int = Math.random() * Enemies.length; var EnemyClass:Class = Enemies[anIndex]; // Spawn a random enemy. // You can have a common superclass, or just use MovieClip or Sprite they are subclassed from. var anEnemy:MovieClip = new EnemyClass; 
,이 모든 적들이 단지 하나의 클래스를 사용한다는 모노 행동 클래스이므로 논리는 모두 동일합니다. –

+0

@ S.A.Parkhid 여러 가지 방법이 있지만 라이브러리 항목에 고유 한 클래스를 할당하는 것은 피할 수없는 방법입니다. – Organis

+0

"라이브러리 항목에 고유 한 클래스를 할당하는 것은 피할 수 없습니다."액션 스크립트에 대한 흥미로운 문제는 아니지만 어쨌든 나는 당신의 대답을 받아들입니다. 고마워요! –

관련 문제