//----------------------------------------------------------	
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);
	
}
示例#3
0
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);
	}	
}
示例#6
0
// -------------- 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);
}
示例#9
0
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();
}
示例#10
0
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);
}
示例#13
0
//----------------------------------------------------------	
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);
	
}
示例#14
0
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]);
    }
}
示例#15
0
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;
}
示例#16
0
void StencilWaves::reload(float &v){
    waves.clear();
    addWave(ofGetHeight()-150);
    addWave(ofGetHeight()-100);
}