void setup()
{
  FastLED.addLeds<CHIPSET, LED_PIN, COLOR_ORDER>(leds[0], leds.Size());
  FastLED.setBrightness(64);
  FastLED.clear(true);
  delay(500);
  FastLED.showColor(CRGB::Red);
  delay(1000);
  FastLED.showColor(CRGB::Lime);
  delay(1000);
  FastLED.showColor(CRGB::Blue);
  delay(1000);
  FastLED.showColor(CRGB::White);
  delay(1000);
  FastLED.show();

  Shape.SetPositionFrameMotionOptions(0/*X*/, 0/*Y*/, 0/*Frame*/, 0/*FrameRate*/, +1/*XChange*/, 1/*XRate*/, +1/*YChange*/, 1/*YRate*/, SPRITE_DETECT_EDGE | SPRITE_X_KEEPIN | SPRITE_Y_KEEPIN);
  Sprites.AddSprite(&Shape);
}
/*
==================================================================
// This is winmain, the main entry point for Windows applications
==================================================================
*/
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
	// Initialize the window
	if ( !initWindow( hInstance ) )
		return false;
	// called after creating the window
	if ( !d3dMgr->initD3DManager(wndHandle) )
		return false;
	if ( !d3dxSRMgr->initD3DXSpriteMgr(d3dMgr->getTheD3DDevice()))
		return false;

	

	// Grab the frequency of the high def timer
	__int64 freq = 0;				// measured in counts per second;
	QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
	float sPC = 1.0f / (float)freq;			// number of seconds per count

	__int64 currentTime = 0;				// current time measured in counts per second;
	__int64 previousTime = 0;				// previous time measured in counts per second;

	float numFrames   = 0.0f;				// Used to hold the number of frames
	float timeElapsed = 0.0f;				// cumulative elapsed time

	GetClientRect(wndHandle,&clientBounds);

	float fpsRate = 1.0f/25.0f;

	//variables to hold the monkey, banana and new banana positions
	D3DXVECTOR3 monkeyPos;
	D3DXVECTOR3 BananaPos;
	D3DXVECTOR3 NewPos;

	//string to hold the score and display on screen
	sprintf_s( gScoreStr, 50, "Score : %d", gScore);

	//===========================================================
	// load texture for the bananas
	//===========================================================
	for (int txture = 0; txture < 1; txture++)
	{
		BananaTextures[txture] = new cD3DXTexture(d3dMgr->getTheD3DDevice(), BananaTxtres[txture]);
	}
	
	//create a texture for the explosion
	txtExp->createTexture(d3dMgr->getTheD3DDevice(),"Images\\explosion.png");

	//create a texture for the monkey
	cD3DXTexture* txtMonkey = new cD3DXTexture();
	txtMonkey->createTexture(d3dMgr->getTheD3DDevice(),"Images\\theMonkey.png");
	txtMonkey->setTextureInfo("Images\\theMonkey.png");//set the texture information ie. height, width
	
	theMonkey.setTranslation(D3DXVECTOR2(0.0f, 0.0f));//set the translation of the monkey
	theMonkey.setTexture(txtMonkey);//apply the texture to the monkey
	
	theMonkey.update();//update the monkey sprite
	
	/* initialize random seed: */
	srand ( (unsigned int)time(NULL) );
	
	//integer to hold the number of bananas
	int numBananas =  1;

	for(int loop = 0; loop < numBananas; loop++)//for each banana set the position, direction, speed and texture
	{
		BananaPos = D3DXVECTOR3((float)clientBounds.right/(2),(float)clientBounds.top-100,0);
		aBanana.push_back(new cBanana());
		aBanana[loop]->setSpritePos(BananaPos);
		aBanana[loop]->setTranslation(D3DXVECTOR2(0.0f,speed));
		aBanana[loop]->setTexture(BananaTextures[loop]);
		
	}
	
	


	LPDIRECT3DSURFACE9 TitleSurface;//the title surface
	LPDIRECT3DSURFACE9 GameSurface;		//the main game background
	LPDIRECT3DSURFACE9 GameOverSurface;	// the game over surface
	LPDIRECT3DSURFACE9 theBackbuffer = NULL;  // This will hold the back buffer
	
	MSG msg;
	ZeroMemory( &msg, sizeof( msg ) );

	// Create the background surface
	TitleSurface = d3dMgr->getD3DSurfaceFromFile("Images\\TitleScreen.png");
	GameSurface = d3dMgr->getD3DSurfaceFromFile("Images\\GameBackground.png");
	GameOverSurface = d3dMgr->getD3DSurfaceFromFile("Images\\GameOverSurface.png");
	// load custom font
	cD3DXFont* balloonFont = new cD3DXFont(d3dMgr->getTheD3DDevice(),hInstance, "SNAP_");

	//rectangle to hold the score during gameplay
	RECT textPos;
	SetRect(&textPos, 50, 10, 400, 100);

	//rectangle to hold the score on the gameover screen
	RECT textPos2;
	SetRect(&textPos2, 250, 250, 600, 400);

	QueryPerformanceCounter((LARGE_INTEGER*)&previousTime);

	while( msg.message!=WM_QUIT )
	{
		// Check the message queue
		if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE) )
		{
			TranslateMessage( &msg );
			DispatchMessage( &msg );
		}
		else
		{
			// Game code goes here
			QueryPerformanceCounter((LARGE_INTEGER*)&currentTime);
			float dt = (currentTime - previousTime)*sPC;

			// Accumulate how much time has passed.
			timeElapsed += dt;
			
			if(timeElapsed > fpsRate)
			{

				//start rendering 
				d3dMgr->beginRender();
					
				if(mouseClicks==0)//if mouseClicks is equal to zero
				{
					
				theBackbuffer = d3dMgr->getTheBackBuffer();
				d3dMgr->updateTheSurface(TitleSurface, theBackbuffer);//apply the title surface
				d3dMgr->releaseTheBackbuffer(theBackbuffer);
				gameOver=false;//set gameOver to false
				gScore = 0;//set gScore to zero
				sprintf_s( gScoreStr, 50, "Score : %d", gScore);//set the score string with zero
				}
				else 			
				{
					if(bananaSquash == 3)//if bananaSquash is equal to three
					{
						
						gameOver = true;//set gameOver to 
						mouseClicks = -1;// set mouseClicks to negative one
						bananaSquash = 0;//set bananaSquash to zero
						speed = 50.0f;//set the speed to 50
						
						
					}
					else
					{
						if(gameOver  == true)//if gameOver is true
						{
							theBackbuffer = d3dMgr->getTheBackBuffer();
							d3dMgr->updateTheSurface(GameOverSurface, theBackbuffer);//apply the game over surface
							d3dMgr->releaseTheBackbuffer(theBackbuffer);
							sprintf_s( gScoreStr, 50, "You Scored : %d", gScore);//update the score 
							balloonFont->printText(gScoreStr,textPos2);//print the score on the gameOver surface
						}
						else
						{
						
							vector<cBanana*>::iterator iterBanana = aBanana.begin();
			
						while(iterBanana != aBanana.end())
						{
					

							(*iterBanana)->update(timeElapsed);			// update banana
							BananaPos = (*iterBanana)->getSpritePos();//get the position of the banana
				
				
						if((*iterBanana)->collidedWith((*iterBanana)->getBoundingRect(), theMonkey.getBoundingRect()))	//check if monkey and banana have collided	
						{
							
							OutputDebugString("Collision!!");//if they have collided output collision 
							
							iterBanana = aBanana.erase(iterBanana);//delete banana
							gScore++;//increment the score
							sprintf_s( gScoreStr, 50, "Score : %d", gScore);//update the score string
							speed = speed+3;//add three to the speed
							gMonkeySound.playSound(L"Sounds\\monkeySound2.wav",false);//play monkey sound effect
						
				}
				else
				{
					if (BananaPos.y >(clientBounds.bottom-60 ))//if the banana hits the floor
					{
						expPos = (*iterBanana)->getSpritePos();//get the banana position
						gExplode.push_back(new cExplosion(expPos,txtExp));	//play explosion animation at same position as banana					
						gExplodeSound.playSound(L"Sounds\\explosion.wav",false);//play explosion sound
						iterBanana = aBanana.erase(iterBanana);//delete the banana
						OutputDebugString("Collision!!");//output collision 
						bananaSquash++;//increment bananaSquash
						
					}
					
					else
					{
						
						++iterBanana;// increment the iterator
						OutputDebugString("ITERBanana");//display ITERbanana
											
					}
					
				}									
				}

				int vSize=aBanana.size();//integer to hold the size of aBanana
				BananaPos = aBanana[vSize-1]->getSpritePos();//variable to hold the position of the banana
				if(BananaPos.y>(clientBounds.bottom-300))//check if the banana has fallen past about 3 quarters of the way down the screen
				{
					int xPos =  (rand() % 600 + 1);//integer variable to hold a random number for the new bananas x-position
					NewPos = D3DXVECTOR3((float)xPos,(float)clientBounds.top-100,0);//variable to hold new bananas starting position
					aBanana.push_back(new cBanana());//create a new banana
					vSize=aBanana.size();//get the size of aBanana
					aBanana[vSize-1]->setSpritePos(NewPos);//set the position for the new banana
					aBanana[vSize-1]->setTranslation(D3DXVECTOR2(0.0f,speed));//set the speed and direction of the new banana
					aBanana[vSize-1]->setTexture(BananaTextures[0]);//apply a texture to the new banana

				}
				
				
				monkeyPos = D3DXVECTOR3(monkeyTrans.x,monkeyTrans.y,0);//variable to hold the position of the monkey
				theMonkey.setSpritePos(monkeyPos);//set the position of the monkey
				
				theMonkey.update();//update the monkey sprite


					theBackbuffer = d3dMgr->getTheBackBuffer();//retrieve the backbuffer
				d3dMgr->updateTheSurface(GameSurface, theBackbuffer);//apply the game surface
				d3dMgr->releaseTheBackbuffer(theBackbuffer);//release the backbuffer
				d3dxSRMgr->beginDraw();//start drawing the window
				
				d3dxSRMgr->setTheTransform(theMonkey.getSpriteTransformMatrix());//set the position of the monkey sprite
				d3dxSRMgr->drawSprite(theMonkey.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);// draw the monkey
			
				vector<cBanana*>::iterator iterB = aBanana.begin();
				for(iterB = aBanana.begin(); iterB != aBanana.end(); ++iterB)//for each banana in aBanana
				{
					d3dxSRMgr->setTheTransform((*iterB)->getSpriteTransformMatrix());  //set the position of the banana
					d3dxSRMgr->drawSprite((*iterB)->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);//draw the banana
				
				}
				list<cExplosion*>::iterator iter = gExplode.begin();//set the iterator to begin
				while(iter != gExplode.end())//while the iterator is not set to end
				{
					if((*iter)->isActive() == false)//if the iterator is not active 
					{
						iter = gExplode.erase(iter);//delete the explosion
					}
					else
					{
						(*iter)->update(timeElapsed);
						d3dxSRMgr->setTheTransform((*iter)->getSpriteTransformMatrix());  //set the position for the explosion
						d3dxSRMgr->drawSprite((*iter)->getTexture(),&((*iter)->getSourceRect()),NULL,NULL,0xFFFFFFFF);//draw the explosion
						++iter;//increment iter
					}
				}
				balloonFont->printText(gScoreStr,textPos);//print the score 
				}
				}
				d3dxSRMgr->endDraw();//finish drawing
				
				}
				d3dMgr->endRender();//finish rendering
				OutputDebugString("timeElapsed > fpsRate");
				timeElapsed = 0.0f;//set timeElapsed to zero
			}

			previousTime = currentTime;
			/*
			StringCchPrintf(szTempOutput, 30, TEXT("dt=%f\n"), dt);
			OutputDebugString(szTempOutput);
			StringCchPrintf(szTempOutput, 30, TEXT("timeElapsed=%f\n"), timeElapsed);
			OutputDebugString(szTempOutput);
			StringCchPrintf(szTempOutput, 30, TEXT("previousTime=%u\n"), previousTime);
			OutputDebugString(szTempOutput);
			StringCchPrintf(szTempOutput, 30, TEXT("fpsRate=%f\n"), fpsRate);
			OutputDebugString(szTempOutput);
			*/
		}
	}
	d3dxSRMgr->cleanUp();
	d3dMgr->clean();
	return (int) msg.wParam;
}
示例#3
0
/*
==================================================================
// This is winmain, the main entry point for Windows applications
==================================================================
*/
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow )
{
	// Initialize the window
	if ( !initWindow( hInstance ) )
		return false;
	// called after creating the window
	if ( !d3dMgr->initD3DManager(wndHandle) )
		return false;
	if ( !d3dxSRMgr->initD3DXSpriteMgr(d3dMgr->getTheD3DDevice()))
		return false;

	__int64 freq = 0;				// measured in counts per second;
	QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
	float sPC = 1.0f / (float)freq;			// number of seconds per count

	__int64 currentTime = 0;				// current time measured in counts per second;
	__int64 previousTime = 0;				// previous time measured in counts per second;

	float numFrames   = 0.0f;				// Used to hold the number of frames
	float timeElapsed = 0.0f;				// cumulative elapsed time

	GetClientRect(wndHandle,&clientBounds);

	float fpsRate = 1.0f/25.0f;

	LPDIRECT3DSURFACE9 roomSurface;				// the Direct3D surface
	LPDIRECT3DSURFACE9 gameOverSurface;	
	LPDIRECT3DSURFACE9 theBackbuffer = NULL;  // This will hold the back buffer
	
	// Create the background surface
	gameOverSurface = d3dMgr->getD3DSurfaceFromFile("Images\\GameOver.png");
	roomSurface = d3dMgr->getD3DSurfaceFromFile("Images\\RoomBackGround.png");

	/*
	bool roomArray[5][5]=
    {
		{0,0,0,0,0},
        {0,0,1,0,0},
        {0,1,1,1,0},
		{0,0,1,0,0},
		{0,0,0,0,0},
    };

	int posX = 3;
	int posY = 3;
	cRoom room1(posX,posY,roomArray[posX][posY-1],roomArray[posX][posY+1],roomArray[posX-1][posY],roomArray[posX+1][posY],0);
	posX = 2;
	posY = 3;
	cRoom room2(posX,posY,roomArray[posX][posY-1],roomArray[posX][posY+1],roomArray[posX-1][posY],roomArray[posX+1][posY],1);
	posX = 3;
	posY = 4;
	cRoom room3(posX,posY,roomArray[posX][posY-1],roomArray[posX][posY+1],roomArray[posX-1][posY],roomArray[posX+1][posY],2);
	posX = 4;
	posY = 3;
	cRoom room4(posX,posY,roomArray[posX][posY-1],roomArray[posX][posY+1],roomArray[posX-1][posY],roomArray[posX+1][posY],3);
	posX = 3;
	posY = 2;
	cRoom room5(posX,posY,roomArray[posX][posY-1],roomArray[posX][posY+1],roomArray[posX-1][posY],roomArray[posX+1][posY],4);
	
	cRoom rooms[4];
	rooms[0]=room1;
	rooms[1]=room2;
	rooms[2]=room3;
	rooms[3]=room4;
	rooms[4]=room5;
	
	
	cRoom currentRoom = room1;
	*/
	D3DXVECTOR3 healthBarPos = D3DXVECTOR3(100,100,0);
	cSprite healthBar(healthBarPos,d3dMgr->getTheD3DDevice(),"Images\\HealthBar.png");

	/*
	D3DXVECTOR3 upDoorPos = D3DXVECTOR3(400,25,0);
	cSprite upDoor(upDoorPos,d3dMgr->getTheD3DDevice(),"Images\\door.png");

	D3DXVECTOR3 downDoorPos = D3DXVECTOR3(400,125,0);
	cSprite downDoor(downDoorPos,d3dMgr->getTheD3DDevice(),"Images\\door.png");

	D3DXVECTOR3 leftDoorPos = D3DXVECTOR3(25,125,0);
	cSprite leftDoor(leftDoorPos,d3dMgr->getTheD3DDevice(),"Images\\door.png");

	D3DXVECTOR3 rightDoorPos = D3DXVECTOR3(400,125,0);
	cSprite rightDoor(rightDoorPos,d3dMgr->getTheD3DDevice(),"Images\\door.png");
	*/
	cSprite thePlayer(playerPos,d3dMgr->getTheD3DDevice(),"Images\\WizardDown.png");


	D3DXVECTOR3 enemyPos1 = D3DXVECTOR3(700,100,0);
	cHealth* gooHealth1 = new cHealth(10);
	cSprite* gooSprite1 = new cSprite(enemyPos1,d3dMgr->getTheD3DDevice(),"Images\\goo.png");	

	D3DXVECTOR3 enemyPos2 = D3DXVECTOR3(100,300,0);
	cHealth* gooHealth2 = new cHealth(10);
	cSprite* gooSprite2 = new cSprite(enemyPos2,d3dMgr->getTheD3DDevice(),"Images\\goo.png");	

	D3DXVECTOR3 enemyPos3 = D3DXVECTOR3(650,300,0);
	cHealth* gooHealth3 = new cHealth(10);
	cSprite* gooSprite3 = new cSprite(enemyPos3,d3dMgr->getTheD3DDevice(),"Images\\goo.png");	

	D3DXVECTOR3 enemyPos4 = D3DXVECTOR3(200,100,0);
	cHealth* gooHealth4 = new cHealth(10);
	cSprite* gooSprite4 = new cSprite(enemyPos4,d3dMgr->getTheD3DDevice(),"Images\\goo.png");	

	/*
	if (projectileStart == true)
	{
		cSprite* projectile = new cSprite(thePlayer.getSpritePos(),d3dMgr->getTheD3DDevice(),"Images\\goo.png");
		projectile->setTranslation(D3DXVECTOR2(projectileVeloc.x,projectileVeloc.y));
		projectileStart = false;
	}
	*/

	// Build our matrix to rotate, scale and position our sprite
	
	D3DXMATRIX playerTransformMatrix;
	
	MSG msg;
	ZeroMemory( &msg, sizeof( msg ) );
	

	while( msg.message!=WM_QUIT )
	{
		// Check the message queue
		if (PeekMessage(&msg, NULL, 0U, 0U, PM_REMOVE) )
		{
			TranslateMessage( &msg );
			DispatchMessage( &msg );
		}
		else
		{			
			// Game code goes here
			QueryPerformanceCounter((LARGE_INTEGER*)&currentTime);
			float dt = (currentTime - previousTime)*sPC;

			// Accumulate how much time has passed.
			timeElapsed += dt;				
			
			if(timeElapsed > fpsRate)
			{	
				if(playerHealth.deathCheck())
				{					
					d3dMgr->beginRender();
					theBackbuffer = d3dMgr->getTheBackBuffer();
					d3dMgr->updateTheSurface(gameOverSurface, theBackbuffer);
					d3dMgr->releaseTheBackbuffer(theBackbuffer);
			
					d3dxSRMgr->beginDraw();				
					//
					d3dxSRMgr->endDraw();
					d3dMgr->endRender();
				
					previousTime = currentTime;
				}
				else
				{
					/*
					if (roomSpawned == false)
					{
						D3DXVECTOR2 playerPos = D3DXVECTOR2(200,400);
						thePlayer.setSpriteTransformMatrix(playerTransformMatrix, thePlayer.getSpriteCentre(),0.0f,playerScale,thePlayer.getSpriteCentre(),0.0f,playerPos);
						roomSpawned = true;
					}
					*/
					
					if (gooHealth1->deathCheck())
					{
						delete gooSprite1;
						delete gooHealth1;
						Sleep(1000);
						gooHealth1 = new cHealth(10);
						gooSprite1 = new cSprite(enemyPos1,d3dMgr->getTheD3DDevice(),"Images\\goo.png");
										
					}
					if (gooHealth2->deathCheck())
					{
						delete gooSprite2;
						delete gooHealth2;
						Sleep(1000);
						gooHealth2 = new cHealth(10);
						gooSprite2 = new cSprite(enemyPos2,d3dMgr->getTheD3DDevice(),"Images\\goo.png");										
					}
					if (gooHealth3->deathCheck())
					{						
						delete gooSprite3;
						delete gooHealth3;
						Sleep(1000);
						gooHealth3 = new cHealth(10);
						gooSprite3 = new cSprite(enemyPos3,d3dMgr->getTheD3DDevice(),"Images\\goo.png");			
					}
					if (gooHealth4->deathCheck())
					{						
						delete gooSprite4;
						delete gooHealth4;
						Sleep(1000);
						gooHealth4 = new cHealth(10);
						gooSprite4 = new cSprite(enemyPos4,d3dMgr->getTheD3DDevice(),"Images\\goo.png");				
					}


					if(playerVeloc.x != 0 && playerVeloc.y != 0 && controlDiagonalCheckCooldown == false)
					{
						playerVeloc.x *= 0.75f;
						playerVeloc.y *= 0.75f;
						controlDiagonalCheckCooldown = true;
					}

					playerTrans += playerVeloc;

					if (playerTrans.x < (clientBounds.left +25))
					{
						playerTrans.x =	clientBounds.left +26;
					}
					if (playerTrans.y < (clientBounds.top +25))
					{
						playerTrans.y =	clientBounds.top +26;
					}
					if (playerTrans.x > (clientBounds.right - (25 + 75)))
					{
						playerTrans.x =	clientBounds.right -(26 + 75);
					}
					if (playerTrans.y > (clientBounds.bottom -(154 + 75)))
					{
						playerTrans.y =	clientBounds.bottom -(155 +75);
					}
				

					if(playerVeloc.x > 0)
					{
						thePlayer.setTexture(d3dMgr->getTheD3DDevice(),"Images\\WizardRight.png");
						playerScale = D3DXVECTOR2(1.0f,1.0f);
					}
					if(playerVeloc.x < 0)
					{
						thePlayer.setTexture(d3dMgr->getTheD3DDevice(),"Images\\WizardRight.png");
						playerScale = D3DXVECTOR2(-1.0f,1.0f);
					}
					if(playerVeloc.y < 0)
					{
						thePlayer.setTexture(d3dMgr->getTheD3DDevice(),"Images\\WizardUp.png");
					}
					if(playerVeloc.y > 0)
					{
						thePlayer.setTexture(d3dMgr->getTheD3DDevice(),"Images\\WizardDown.png");
					}

					healthBarScale.x = (FLOAT)playerHealth.getHealth()/100;

					
					thePlayer.setSpritePos(D3DXVECTOR3(playerTrans.x,playerTrans.y,0));
					thePlayer.setSpriteScaling(playerScale.x,playerScale.y);
					healthBar.setSpritePos(D3DXVECTOR3(healthBarTrans.x,healthBarTrans.y,0));
					healthBar.setSpriteScaling(healthBarScale.x,healthBarScale.y);
					
					/*
					upDoor.setSpritePos(D3DXVECTOR3(upDoorTrans.x,upDoorTrans.y,0));
					downDoor.setSpritePos(D3DXVECTOR3(downDoorTrans.x,downDoorTrans.y,0));
					leftDoor.setSpritePos(D3DXVECTOR3(leftDoorTrans.x,leftDoorTrans.y,0));
					leftDoor.setSpriteRotation(90.0f);					
					rightDoor.setSpritePos(D3DXVECTOR3(rightDoorTrans.x,rightDoorTrans.y,0));
					rightDoor.setSpriteRotation(90.0f);
					*/

					thePlayer.update();
					healthBar.update();
					/*
					upDoor.update();
					downDoor.update();
					leftDoor.update();
					rightDoor.update();
					*/

					/*					
					if (thePlayer.collidedWith(thePlayer.getBoundingRect(),upDoor.getBoundingRect()))
					{
						//if a collision occurs change the room
						OutputDebugString("Collision!!");	
						for(int i=0; i<=4; i++)
						{
							if(rooms[i].getPosY() == (currentRoom.getPosY())+1)
							{
								currentRoom = rooms[i];
								roomSpawned = false;
							}
						}						
					}
					*/				

					d3dMgr->beginRender();
					theBackbuffer = d3dMgr->getTheBackBuffer();
					d3dMgr->updateTheSurface(roomSurface, theBackbuffer);
					d3dMgr->releaseTheBackbuffer(theBackbuffer);
			
					d3dxSRMgr->beginDraw();				
					d3dxSRMgr->setTheTransform(thePlayer.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(thePlayer.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					d3dxSRMgr->setTheTransform(healthBar.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(healthBar.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					
					d3dxSRMgr->setTheTransform(gooSprite1->getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(gooSprite1->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					
					d3dxSRMgr->setTheTransform(gooSprite2->getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(gooSprite2->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					
					d3dxSRMgr->setTheTransform(gooSprite3->getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(gooSprite3->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					
					d3dxSRMgr->setTheTransform(gooSprite4->getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(gooSprite4->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);

					
					//d3dxSRMgr->setTheTransform(projectile->getSpriteTransformMatrix());
					//d3dxSRMgr->drawSprite(projectile->getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					
					
					
					/*
					d3dxSRMgr->setTheTransform(upDoor.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(upDoor.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					d3dxSRMgr->setTheTransform(downDoor.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(downDoor.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					d3dxSRMgr->setTheTransform(leftDoor.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(leftDoor.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					d3dxSRMgr->setTheTransform(rightDoor.getSpriteTransformMatrix());
					d3dxSRMgr->drawSprite(rightDoor.getTexture(),NULL,NULL,NULL,0xFFFFFFFF);
					*/
					d3dxSRMgr->endDraw();
					d3dMgr->endRender();
				
					previousTime = currentTime;
				}
			}			

		}
	}
	d3dxSRMgr->cleanUp();
	d3dMgr->clean();
	return (int) msg.wParam;
}