#include "stage.h" #include "texturesdl.h" #include #include Stage::Stage() { player = new Player(); 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))); patterns.push_back(new BulletPattern2(Vector2(0.5, 0.5))); //patterns.push_back(new BulletPattern2(Vector2(0.8, 0.5))); patterns.push_back(new BulletPattern4(Vector2(0.5, 0.8))); GLFragmentShader shader1("shaders/bullet_fragment.glsl"); GLVertexShader shader2("shaders/bullet_vertex.glsl"); shader->attach(shader1); shader->attach(shader2); shader->link(); } void Stage::update() { player->update(); for(std::vector::iterator it = patterns.begin(); it < patterns.end(); it++) { (*it)->update(); } } void Stage::draw() { player->draw(); for(std::vector::iterator it = enemy_list.begin(); it < enemy_list.end(); it++) { Enemy* enemy = (*it); enemy->draw(); } shader->use(); glPointSize(32.0); glEnable(GL_TEXTURE_2D); glBindTexture(GL_TEXTURE_2D, texture->tex()); for(std::vector::iterator it = patterns.begin(); it < patterns.end(); it++) { BulletPattern *bp = (*it); glColor3f(bp->color_r, bp->color_g, bp->color_b); bp->draw(); } glUseProgram(0); }