//---------------------------------------------------------- void ScreenItemAdd::addStraightArrowWave(int o, int /*duration*/, float density) { float freq = 1.0/density; float c = SRAND; EnemyWave straightArrow(EnemyStraight); straightArrow.setInOut(o, o+130); straightArrow.setXRand(0.0); straightArrow.setPos(c, 10.0); straightArrow.setFrequency((int)(50*freq), 0); straightArrow.setXRand(1.6); straightArrow.setFormation(EnemyWave::Arrow); addWave(straightArrow); EnemyWave omniWave(EnemyOmni); omniWave.setFrequency((int)(15*freq), 5); omniWave.setPos(c, 9.0); omniWave.setXRand(2.0); omniWave.setInOut(o+220, o+260); addWave(omniWave); omniWave.setXRand(3.0); omniWave.setFrequency((int)(22*freq), 5); omniWave.setInOut(o+440, o+600); addWave(omniWave); }
//---------------------------------------------------------- void ScreenItemAdd::addOmniArrowWave(int o, int /*duration*/, float density) { float freq = 1.0/density; float c = SRAND*2.0; EnemyWave omniArrow(EnemyOmni); omniArrow.setFormation(EnemyWave::Arrow); omniArrow.setPos(c, 10.0); omniArrow.setFrequency((int)(25*freq), 0); omniArrow.setXRand(1.0); omniArrow.setInOut(o+50, o+150); addWave(omniArrow); omniArrow.setInOut(o+250, o+320); addWave(omniArrow); omniArrow.setInOut(o+300, o+330); addWave(omniArrow); omniArrow.setInOut(o+350, o+470); addWave(omniArrow); omniArrow.setFrequency(5, 0); omniArrow.setXRand(1.8); omniArrow.setInOut(o+550, o+555); addWave(omniArrow); }
int main(){ ArrayPow2<float> tbSaw(2048), tbSqr(2048), tbImp(2048), tbSin(2048), tbPls(2048), tb__1(2048), tb__2(2048), tb__3(2048), tb__4(2048); addSinesPow<1>(tbSaw, 9,1); addSinesPow<1>(tbSqr, 9,2); addSinesPow<0>(tbImp, 9,1); addSine(tbSin); addWave(&tbSin[0], 2048, SAW); addWave(tbSin, SAW); { float A[] = {1,1,1,1,0.7,0.5,0.3,0.1}; addSines(tbPls, A,8); } { float A[] = {1, 0.4, 0.65, 0.3, 0.18, 0.08}; float C[] = {1,4,7,11,15,18}; addSines(tb__1, A,C,6); } // inharmonic partials { float A[] = {0.5,0.8,0.7,1,0.3,0.4,0.2,0.12}; float C[] = {3,4,7,8,11,12,15,16}; addSines(tb__2, A,C,7); } // inharmonic partials { float A[] = {1, 0.7, 0.45, 0.3, 0.15, 0.08}; float C[] = {10, 27, 54, 81, 108, 135}; addSines(tb__3, A,C,6); } // harmonics 20-27 { float A[] = {0.2, 0.4, 0.6, 1, 0.7, 0.5, 0.3, 0.1}; addSines(tb__4, A,8, 20); } Scheduler s; s.add<Vib>( 0).set( 5, 220, 0.5, 0.1, 0.08, 3.5, 3.5, 0.5, 0.005, tbSin, -1.0); s.add<Vib>( 5).freq(110).table(tbSqr); s.add<Vib>(10).set( 5, 220, 0.5, 0.1, 0.08, 3.5, 5.8, 0.5, 0.03, tbSaw, 1.0); s.add<Vib>(15).set( 5, 110, 0.5, 0.1, 0.08, 9.8, 3.5, 0.5, 3.00, tbSqr, 0.0); s.add<Vib>(20).set( 5, 220, 0.3, 2.0, 1.00, 3.5, 7.0, 1.0, 0.005,tbSaw, -0.8); s.add<Vib>(25).set(10, 220, 0.3, 0.1, 0.08, 1.0, 100, 0.0, 0.30, tbSin, 0.8); AudioIO io(256, 44100., s.audioCB, &s); Sync::master().spu(io.fps()); io.start(); printf("\nPress 'enter' to quit...\n"); getchar(); }
//---------------------------------------------------------- void ScreenItemAdd::loadLevelXXX() { int i; int numIterations = 12000; // int numIterations = (int)(11100 * game->gameSkill); // int numIterations = (int)(1100 * game->gameSkill); clearDeadPool(); //-- Enemies float r; float d; int waveDuration = 500; i = 600; addStraightWave(1, i, 0.4); while(i < numIterations-1000) { if(i < 1500) d = (i+250.0)/2000.0; else d = 1.0; r = FRAND; if (r < 0.15) addStraightArrowWave(i, waveDuration, d); else if (r < 0.25) addOmniArrowWave(i, waveDuration, d); else if (r > 0.60) addStraightWave(i, waveDuration, d); else addOmniWave(i, waveDuration, d); i += waveDuration; waveDuration = (int)(600.0*game->gameSkill) + (int)(100*SRAND); i += 50 + (int)(50*FRAND); } //-- ray gun enemy starts halfway through... EnemyWave rayWave(EnemyRayGun); rayWave.setXRand(8.0); rayWave.setFrequency(60, 5); rayWave.setFrequency(2000, 1000); rayWave.setInOut(numIterations/2, i-1000); // rayWave.setInOut(100, i-1000); addWave(rayWave); //-- Boss EnemyWave bossWave(EnemyBoss00); bossWave.setInOut(i+75, i+1000); bossWave.setPos(0.0, 15.0); bossWave.setXRand(4.0); bossWave.setFrequency(5000, 0); addWave(bossWave); //-- Ammunition and PowerUps addAmmunition(0, numIterations+9000); addPowerUps(0, numIterations+9000); }
//---------------------------------------------------------- void ScreenItemAdd::addGnatWave(int o, int duration, float density, bool mixed) { float freq = 1.0/density; float c = -FRAND*3.0; if(mixed) { EnemyWave straightArrow(EnemyStraight); straightArrow.setInOut(o+50, o+duration); straightArrow.setXRand(0.0); straightArrow.setPos(c, 10.0); straightArrow.setFrequency((int)(90*freq), 20); straightArrow.setXRand(8.0); if(c > 0.0) { addWave(straightArrow); } else { EnemyWave omniArrow(EnemyOmni); omniArrow.setInOut(o+50, o+130); omniArrow.setPos(c, 10.0); omniArrow.setFrequency((int)(20*freq), 0); omniArrow.setXRand(1.1); addWave(omniArrow); omniArrow.setInOut(o+320, o+400); addWave(omniArrow); straightArrow.setInOut(o+200, o+250); addWave(straightArrow); } EnemyWave gnatWave(EnemyGnat); // gnatWave.setInOut(o, o+(17*game->gameSkill)*(1.0+FRAND*0.2)); gnatWave.setInOut(o, o+(int)((25*game->gameSkill)*(1.0+FRAND*0.2))); gnatWave.setPos(SRAND*5.0, 10.0); gnatWave.setFrequency((int)(3*freq), 0); gnatWave.setXRand(3.0); addWave(gnatWave); } else { EnemyWave gnatWave(EnemyGnat); // gnatWave.setInOut(o, o+(17*game->gameSkill)*(1.0+FRAND*0.2)); gnatWave.setPos(-3.0+SRAND*5.0, 10.0); gnatWave.setFrequency((int)(1*freq), 0); gnatWave.setXRand(3.0); gnatWave.setInOut(o, o+35); addWave(gnatWave); gnatWave.setPos(SRAND*5.0, 10.0); gnatWave.setInOut(o+300, o+310); addWave(gnatWave); gnatWave.setFrequency((int)(30*freq), 0); gnatWave.setInOut(o+300, o+400); addWave(gnatWave); } }
// -------------- setup void StencilWaves::setup(){ // refract refract.allocate(ofGetWidth(), ofGetHeight()); refract.setupParameters(ofGetWidth(), ofGetHeight()); refract.parameters.setName("Refraction"); // gui gui.setup("StencilWavesSettings"); gui.add(amount.set("amount", 55, 10, 200)); gui.add(strength.set("strength", 0.55, 0.001, 1)); gui.add(restLength.set("restLength", 16.92, 0, 18)); gui.add(invMass.set("invMass", 0.375, 0.1, 3)); gui.add(force.set("force", 4, 0.1, 20)); gui.add(refract.parameters); force.addListener(this, &StencilWaves::reload); restLength.addListener(this, &StencilWaves::reload); strength.addListener(this, &StencilWaves::reload); invMass.addListener(this, &StencilWaves::reload); gui.loadFromFile("settings.xml"); // fbo peopleFbo.allocate(ofGetWidth(), ofGetHeight()); peopleFbo.begin(); ofClear(0, 0); peopleFbo.end(); mainWaveFbo.allocate(ofGetWidth(), ofGetHeight()); mainWaveFbo.begin(); ofClear(0, 0); mainWaveFbo.end(); // meshes mainWaveMesh.setMode(OF_PRIMITIVE_TRIANGLE_STRIP); strokeMesh.setMode(OF_PRIMITIVE_TRIANGLE_STRIP); // waves addWave(ofGetHeight()-150); addWave(ofGetHeight()-100); // masks mask.allocate(ofGetWidth(), ofGetHeight()); // colors peopleColor = ofColor::lavender; // images glowImg.load("glow.png"); }
//---------------------------------------------------------- void ScreenItemAdd::addStraightWave(int o, int duration, float density) { float freq = 1.0/density; EnemyWave straightWave(EnemyStraight); straightWave.setXRand(8.0); straightWave.setFrequency((int)(60*freq), 5); straightWave.setInOut(o, o+duration); addWave(straightWave); }
//---------------------------------------------------------- void ScreenItemAdd::addOmniWave(int o, int duration, float density) { float freq = 1.0/density; EnemyWave omniWave(EnemyOmni); omniWave.setXRand(1.0); omniWave.setFrequency((int)(39*freq), 7); omniWave.setPos((SRAND*8.0), 9.0); omniWave.setInOut(o, o+(duration/2)+50); addWave(omniWave); omniWave.setPos((SRAND*8.0), 9.0); omniWave.setInOut(o+(duration/2)-50, o+duration); addWave(omniWave); EnemyWave straightWave(EnemyStraight); straightWave.setXRand(8.0); straightWave.setFrequency(200, 50); straightWave.setInOut(o+100, o+duration); addWave(straightWave); }
int main(){ ArrayPow2<float> tbSin(2048), tbSqr(2048), tbSaw(2048); addWave(tbSin, SINE); addWave(tbSqr, SQUARE); addWave(tbSaw, SAW); Scheduler s; s.add<OscTrm>( 0).set(10, 262, 0.5, 0.1,2,0.8, 0.4,4,8,0.5, tbSin, 0.8); s.add<OscTrm>(11).set(10, 262, 0.5, 0.1,2,0.8, 0.4,4,8,0.5, tbSqr, 0.8); s.add<OscTrm>(20).freq(120).table(tbSaw); s.add<OscTrm>(30).set(20, 262, 0.5, 0.1,2,0.8, 0.4,4,80,0.2, tbSin, 0.8); s.add<OscTrm>(50).set(10, 262, 0.5, 0.1,2,0.8, 0.8,4,8,0.5, tbSin, 0.8); AudioIO io(256, 44100., Scheduler::audioCB, &s); gam::sampleRate(io.fps()); io.start(); printf("\nPress 'enter' to quit...\n"); getchar(); }
int InitWaveCells(float x1, float y1, float x2, float y2, float waveX, float waveY, hri_bitmapset* PSP_BTSET) { cleanGridWave(MAX_COL_INDEX,MAX_ROW_INDEX); WAVE_BTSET = PSP_BTSET; envX1 = x1; envY1 = y1; envX2 = x2; envY2 = y2; genGridObst(MAX_COL_INDEX,MAX_ROW_INDEX); if (addWave(x1, y1, x2, y2, waveX, waveY)) { putGrid( MAX_COL_INDEX , MAX_ROW_INDEX ); return 1; } return 0; }
void CWaterSurfaceSceneNode::animateWaterSurface() { if (!Mesh) return; u32 meshBufferCount = Mesh->getMeshBufferCount(); f32 time = os::Timer::getTime() / WaveSpeed; for (u32 b=0; b<meshBufferCount; ++b) { const u32 vtxCnt = Mesh->getMeshBuffer(b)->getVertexCount(); for (u32 i=0; i<vtxCnt; ++i) addWave(Mesh->getMeshBuffer(b)->getPosition(i), OriginalMesh->getMeshBuffer(b)->getPosition(i), time); }// end for all mesh buffers SceneManager->getMeshManipulator()->recalculateNormals(Mesh); }
void CWaterSurfaceSceneNode::OnAnimate(u32 timeMs) { if (Mesh && IsVisible) { const u32 meshBufferCount = Mesh->getMeshBufferCount(); const f32 time = timeMs / WaveSpeed; for (u32 b=0; b<meshBufferCount; ++b) { const u32 vtxCnt = Mesh->getMeshBuffer(b)->getVertexCount(); for (u32 i=0; i<vtxCnt; ++i) addWave(Mesh->getMeshBuffer(b)->getPosition(i), OriginalMesh->getMeshBuffer(b)->getPosition(i), time); }// end for all mesh buffers SceneManager->getMeshManipulator()->recalculateNormals(Mesh); } CMeshSceneNode::OnAnimate(timeMs); }
//---------------------------------------------------------- void ScreenItemAdd::loadLevel3() { int i; int numIterations = 14000; // int numIterations = 1400; clearDeadPool(); //-- Enemies int waves = 0; float r; int waveDuration = 500; i = 500; addStraightWave(100, i, 0.5); while(i < numIterations) { r = FRAND; waves++; if( waves == 5 || waves == 12 ) { addGnatWave(i, waveDuration, 0.9, false); } else if ( waves == 6 || waves == 11 || waves == 15 || waves == 16 ) { EnemyWave tankWave(EnemyTank); tankWave.setPos(0.0, 11.0); tankWave.setXRand(10.0); tankWave.setFrequency(700, 100); tankWave.setInOut(i+50, waveDuration-50); addWave(tankWave); addStraightWave (i, 300); } else if (waves < 5) { if (r < 0.20) addStraightArrowWave(i, waveDuration); else if(r < 0.30) addOmniArrowWave (i, waveDuration); else if(r < 0.60) addOmniWave (i, waveDuration); else addStraightWave (i, waveDuration); } else { if (r < 0.25) addGnatWave (i, waveDuration); else if(r < 0.35) addStraightArrowWave(i, waveDuration); else if(r < 0.50) addOmniArrowWave (i, waveDuration); else if(r < 0.80) addOmniWave (i, waveDuration); else addStraightWave (i, waveDuration); } i += waveDuration; waveDuration = (int)(700.0 + 100.0*SRAND); i += 50 + (int)(50*FRAND); } EnemyWave gnatWave(EnemyGnat); gnatWave.setInOut(3000, 5000); gnatWave.setPos(FRAND*4.0, 10.0); gnatWave.setFrequency(150, 140); gnatWave.setXRand(5.0); addWave(gnatWave); gnatWave.setInOut(8000, 11000); addWave(gnatWave); //-- give some extra power ups... addAmmunition(0, 2000, 500, 700, 0); addAmmunition(10000, 2000, 500, 700, 0); addPowerUps(3000, 2000, 2500, 2500, 0); addPowerUps(9500, 2000, 2500, 2500, 0); addPowerUps(numIterations, 2000, 2500, 2500, 1); //-- Boss EnemyWave bossWave(EnemyBoss01); bossWave.setPos(0.0, 15.0); bossWave.setXRand(4.0); bossWave.setFrequency(5000, 0); bossWave.setInOut(numIterations+700, numIterations+710); addWave(bossWave); EnemyWave tankWave(EnemyTank); tankWave.setPos(0.0, 11.0); tankWave.setXRand(10.0); tankWave.setFrequency(2000, 200); tankWave.setInOut(numIterations+400, numIterations+3000); addWave(tankWave); //-- Ammunition and PowerUps addAmmunition(0, numIterations+9000); addPowerUps(0, numIterations+9000); }
void gradientWaves::reload(float &value){ waves.clear(); for (int i = 0; i < waveCount; i++) { addWave(waveDistance * i * sf + screenH - waveDistance * sf * waveCount, swatch[i%5], swatchBase[i%5]); } }
Model::Model() { winh = 960; winw = 1280; mapX = 0; mapY = 0; mapRotation = 0; waveNumber = 0; enemiesLeft = -2; if (!buffer.loadFromFile("Assets/Sounds/towerAttack.wav")){ //Error on loading sound } this->newEnemyAdd = false; attackSound.setBuffer(buffer); const int level[] = { 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 35, 67, 51, 51, 51, 51, 51, 58, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 00, 31, 31, 77, 31, 31, 31, 31, 31, 20, 40, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 00, 31, 31, 20, 33, 33, 06, 72, 66, 38, 33, 33, 33, 33, 33, 06, 40, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 06, 33, 33, 06, 33, 33, 06, 47, 36, 73, 33, 33, 33, 33, 33, 06, 40, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 06, 33, 33, 06, 33, 33, 06, 47, 36, 55, 73, 33, 00, 31, 31, 07, 40, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 06, 33, 33, 06, 33, 33, 06, 47, 36, 36, 39, 33, 06, 48, 50, 50, 61, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 06, 33, 33, 06, 33, 33, 06, 47, 36, 36, 39, 33, 06, 67, 51, 51, 51, 36, 36, 36, 36, 36, 36, 36, 36, 36, 00, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 05, 31, 07, 33, 33, 06, 33, 33, 06, 45, 42, 42, 46, 33, 15, 31, 31, 31, 31, 76, 76, 76, 76, 76, 76, 76, 76, 76, 22, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 34, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 06, 33, 33, 15, 31, 31, 20, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 15, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 06, 33, 33, 33, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 00, 31, 07, 33, 33, 33, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 06, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 15, 31, 31, 31, 31, 31, 31, 31, 07, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 34, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, 36, }; mapCols = 60; mapRows = 29; map.setPrimitiveType(sf::Quads); map.resize(mapRows*mapCols * 4); sf::Vector2u tileSize = sf::Vector2u(64, 64); tileset.loadFromFile("Assets/spritesheet.png"); for (int i = 0; i < mapCols; ++i) for (int j = 0; j < mapRows; ++j) { int tileNumber = level[i + j*mapCols]; int tmpX = (i - 10)*tileSize.x*(-1); int tmpY = (j - 7)*tileSize.x*(-1); //first checkpoint if (tileNumber == 22) { checkPoint[tmpX+128][tmpY] = true; //std::cout << tmpX << ", " << tmpY << ": " << checkPoint[tmpX][tmpY] << std::endl; } //checkpoints based on tiles if (tileNumber == 15|| tileNumber == 0 || tileNumber == 7 || tileNumber == 20 || tileNumber == 5) { checkPoint[tmpX][tmpY] = true; //std::cout << tmpX << ", " << tmpY << ": " << checkPoint[tmpX][tmpY] << std::endl; } if (tileNumber != 33) { tmpX -= 32; unpassable[tmpX][tmpY] = true; //std::cout << tmpX << ", "<< tmpY<< ": "<<unpassable[tmpX][tmpY]<<std::endl; } else { unpassable[((i - 10)*(-1)*tileSize.x) - 32][(j - 7)*tileSize.y*(-1)] = false; } int tu = tileNumber % (tileset.getSize().x / tileSize.x); int tv = tileNumber / (tileset.getSize().x / tileSize.x); sf::Vertex* quad = &map[(i + j * mapCols) * 4]; // define its 4 corners quad[0].position = sf::Vector2f(float(i * tileSize.x), float(j * tileSize.y)); quad[1].position = sf::Vector2f(float((i + 1) * tileSize.x),float(j * tileSize.y)); quad[2].position = sf::Vector2f(float((i + 1) * tileSize.x), float((j + 1) * tileSize.y)); quad[3].position = sf::Vector2f(float(i * tileSize.x), float((j + 1) * tileSize.y)); // define its 4 texture coordinates quad[0].texCoords = sf::Vector2f(float(tu * tileSize.x), float(tv * tileSize.y)); quad[1].texCoords = sf::Vector2f(float((tu + 1) * tileSize.x),float( tv * tileSize.y)); quad[2].texCoords = sf::Vector2f(float((tu + 1) * tileSize.x), float((tv + 1) * tileSize.y)); quad[3].texCoords = sf::Vector2f(float(tu * tileSize.x), float((tv + 1) * tileSize.y)); } state.texture = &tileset; this->player.movePlayer(this->winw / 2 - 32,this->winh / 2 - 32); mapX = -640; mapY = -448; //Adding towers for testing /* addTower(6, 0, 0); addTower(5, 64*1, 64); addTower(4, 64 * 2, 0); addTower(2, 64 * 3, 0); addTower(1, 64 * 4, 0); addTower(8, 64 * 5, 0); addTower(9, 64 * 6, 0); addTower(10, 64 * 7, 0); addTower(11, 64 * 8, 0); */ //Test Tower //addTower(1, 2528-32, 512); //shopKeepers addShopKeeper(7, 64 * 5, 64 * 10, 1); addShopKeeper(10, 64 * 7, 64 * 10, 1); //add Waves - No Balancing addWave(1, 1, 1); addWave(1, 30, 1); addWave(1, 50, 1); addWave(1, 1, 2); addWave(1, 5, 2); addWave(1, 20, 2); addWave(1, 50, 2); addWave(1, 1, 3); addWave(1, 5, 3); addWave(1, 20, 3); addWave(1, 50, 3); addWave(1, 1, 4); addWave(1, 5, 4); addWave(1, 20, 4); addWave(1, 50, 4); addWave(1, 1, 5); addWave(1, 5, 5); addWave(1, 20, 5); addWave(1, 50, 5); addWave(1, 1, 6); addWave(1, 5, 6); addWave(1, 20, 6); addWave(1, 50, 6); //lives lives = 100; }
void StencilWaves::reload(float &v){ waves.clear(); addWave(ofGetHeight()-150); addWave(ofGetHeight()-100); }