From c40b10c9b1f216e75a153b37c7987268a1a66b1e Mon Sep 17 00:00:00 2001 From: Vegard Storheil Eriksen Date: Mon, 17 May 2010 12:57:09 +0200 Subject: Created BulletPattern-class. --- bulletpattern.cpp | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 bulletpattern.cpp (limited to 'bulletpattern.cpp') diff --git a/bulletpattern.cpp b/bulletpattern.cpp new file mode 100644 index 0000000..1e8da5e --- /dev/null +++ b/bulletpattern.cpp @@ -0,0 +1,42 @@ +#ifndef __APPLE__ +#include +#else +#include +#endif +#include +#include "bulletpattern.h" + +BulletPattern::BulletPattern() { + num_bullets = 0; + bullets = new float[2048]; + + int k = 0; + + for(float i = 0; i < M_PI * 16; i += 0.1) { + bullets[k++] = 50.0 + cosf(i) * 5; + bullets[k++] = 50.0 + sinf(i) * 5; + bullets[k++] = cosf(i) / 100.0; + bullets[k++] = sinf(i) / 100.0; + } +} + +void BulletPattern::update(unsigned int time, unsigned int step) { + if(num_bullets < 503 && num_bullets * 4 < time) { + num_bullets += time / 4 - num_bullets; + } + for(int i = 0; i < num_bullets; i++) { + bullets[i*4] += bullets[i*4 + 2] * step; + bullets[i*4 + 1] += bullets[i*4 + 3] * step; + } +} + +void BulletPattern::draw() { + glEnableClientState(GL_VERTEX_ARRAY); + + glVertexPointer(4, GL_FLOAT, 4 * sizeof(float), bullets); + + glDrawArrays(GL_POINTS, 0, num_bullets); + + glDisableClientState(GL_VERTEX_ARRAY); + +} \ No newline at end of file -- cgit v1.2.3