diff options
| -rw-r--r-- | engine/enemy.cpp | 28 | ||||
| -rw-r--r-- | engine/enemy.h | 22 | ||||
| -rw-r--r-- | engine/stage.cpp | 5 | 
3 files changed, 49 insertions, 6 deletions
| diff --git a/engine/enemy.cpp b/engine/enemy.cpp index ed07dec..87e9e87 100644 --- a/engine/enemy.cpp +++ b/engine/enemy.cpp @@ -6,10 +6,8 @@  Enemy::Enemy(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns) : patterns(stage_patterns) {  	pos = initpos; -	 -	texture = new TextureSDL("textures/enemy.png"); -	patterns.push_back(new BulletPattern1(Vector2(0.5, 0.8))); +	texture = new TextureSDL("textures/enemy.png");  }  void Enemy::update() { @@ -28,3 +26,27 @@ void Enemy::draw() {  	glDisable(GL_TEXTURE_2D);  } + +Enemy1::Enemy1(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns) : Enemy(initpos, stage_patterns) { +	steps = 0; + +	patterns.push_back(new BulletPattern1(initpos)); +} + +void Enemy1::update() { +	steps++; +	if(steps == 180) { +		patterns.push_back(new BulletPattern2(pos)); +	} +} + +Enemy2::Enemy2(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns) : Enemy(initpos, stage_patterns) { +	steps = 0; +} + +void Enemy2::update() { +	steps++; +	if(steps == 660) { +		patterns.push_back(new BulletPattern3(pos)); +	} +} diff --git a/engine/enemy.h b/engine/enemy.h index 9ccdc86..9a5c4d3 100644 --- a/engine/enemy.h +++ b/engine/enemy.h @@ -16,9 +16,29 @@ class Enemy {  	public:  		Enemy(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns); -		void update(); +		virtual void update();  		void draw();  }; +class Enemy1 : public Enemy { +	protected: +		unsigned int steps; + +	public: +		Enemy1(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns); + +		virtual void update(); +}; + +class Enemy2 : public Enemy { +	protected: +		unsigned int steps; + +	public: +		Enemy2(const Vector2& initpos, std::vector<BulletPattern*>& stage_patterns); + +		virtual void update(); +}; +  #endif diff --git a/engine/stage.cpp b/engine/stage.cpp index 84a4cc7..59fda88 100644 --- a/engine/stage.cpp +++ b/engine/stage.cpp @@ -15,8 +15,9 @@ Stage::Stage() {  	texture = new TextureSDL("textures/shot1.png");  	shader = new GLShaderProgram(); -	enemy_list.push_back(new Enemy(Vector2(0.25, 0.75), patterns)); -	enemy_list.push_back(new Enemy(Vector2(0.75, 0.75), patterns)); +	enemy_list.push_back(new Enemy1(Vector2(0.25, 0.75), patterns)); +	enemy_list.push_back(new Enemy1(Vector2(0.75, 0.75), patterns)); +	enemy_list.push_back(new Enemy2(Vector2(0.50, 0.80), patterns));  	//patterns.push_back(new BulletPattern3(Vector2(0.5, 0.5)));  	//patterns.push_back(new BulletPattern1(Vector2(0.5, 0.8))); | 
