#include "stage.h" #include "texturesdl.h" #include #include Stage::Stage() { player = new Player(); texture = new TextureSDL("textures/shot1.png"); shader = new GLShaderProgram(); 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))); 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(); 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); }