summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engine/enemy.cpp29
-rw-r--r--engine/enemy.h24
-rw-r--r--engine/stage.cpp8
-rw-r--r--engine/stage.h2
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: