diff options
Diffstat (limited to 'engine')
-rw-r--r-- | engine/enemy.cpp | 29 | ||||
-rw-r--r-- | engine/enemy.h | 24 | ||||
-rw-r--r-- | engine/stage.cpp | 8 | ||||
-rw-r--r-- | engine/stage.h | 2 |
4 files changed, 63 insertions, 0 deletions
diff --git a/engine/enemy.cpp b/engine/enemy.cpp new file mode 100644 index 0000000..bf4d5ee --- /dev/null +++ b/engine/enemy.cpp @@ -0,0 +1,29 @@ +#include "enemy.h" + +#include "texturesdl.h" + +#include <SDL/SDL_opengl.h> + +Enemy::Enemy(const Vector2& initpos) { + pos = initpos; + + texture = new TextureSDL("textures/enemy.png"); +} + +void Enemy::update() { + +} + +void Enemy::draw() { + glPointSize(32.0); + + glColor4f(1, 1, 1, 1); + glEnable(GL_TEXTURE_2D); + glBindTexture(GL_TEXTURE_2D, texture->tex()); + + glBegin(GL_POINTS); + glVertex2f(pos.x, pos.y); + glEnd(); + + glDisable(GL_TEXTURE_2D); +}
\ No newline at end of file diff --git a/engine/enemy.h b/engine/enemy.h new file mode 100644 index 0000000..7396b55 --- /dev/null +++ b/engine/enemy.h @@ -0,0 +1,24 @@ +#ifndef ENEMY_H +#define ENEMY_H + +#include "vector.h" +#include "texture.h" +#include "bulletpattern.h" + +#include <vector> + +class Enemy { + protected: + Vector2 pos; + Texture* texture; + std::vector<BulletPattern*> patterns; + + public: + Enemy(const Vector2& initpos); + + void update(); + + void draw(); +}; + +#endif diff --git a/engine/stage.cpp b/engine/stage.cpp index 06ae1ef..53d7f59 100644 --- a/engine/stage.cpp +++ b/engine/stage.cpp @@ -11,6 +11,9 @@ Stage::Stage() { texture = new TextureSDL("textures/shot1.png"); shader = new GLShaderProgram(); + enemy_list.push_back(new Enemy(Vector2(0.25, 0.75))); + enemy_list.push_back(new Enemy(Vector2(0.75, 0.75))); + patterns.push_back(new BulletPattern3(Vector2(0.5, 0.5))); patterns.push_back(new BulletPattern1(Vector2(0.5, 0.8))); patterns.push_back(new BulletPattern2(Vector2(0.2, 0.5))); @@ -35,6 +38,11 @@ void Stage::update() { void Stage::draw() { player->draw(); + for(std::vector<Enemy*>::iterator it = enemy_list.begin(); it < enemy_list.end(); it++) { + Enemy* enemy = (*it); + enemy->draw(); + } + shader->use(); glPointSize(32.0); glEnable(GL_TEXTURE_2D); diff --git a/engine/stage.h b/engine/stage.h index 4972795..ad59b90 100644 --- a/engine/stage.h +++ b/engine/stage.h @@ -4,6 +4,7 @@ #include "player.h" #include "shader.h" #include "texture.h" +#include "enemy.h" #include "bulletpattern.h" #include <vector> @@ -15,6 +16,7 @@ class Stage { GLShaderProgram* shader; Texture* texture; + std::vector<Enemy*> enemy_list; std::vector<BulletPattern*> patterns; public: |