⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 eatapple.cpp

📁 it s a small game we can play it for fun
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		g_iHits = 0;
		g_iFruitNumber = 8;
		
		// Restart the background music
		g_pGame->PlayMIDISong();
	}
	
	
	
}

void MouseButtonUp(int x, int y, BOOL bLeft)
{

}

void MouseMove(int x, int y)
{
	g_pMouseSprite[current]->SetPosition(x - (g_pMouseSprite[current]->GetWidth() / 2),
		y - (g_pMouseSprite[current]->GetHeight() / 2));
}

void HandleJoystick(JOYSTATE jsJoystickState)
{
}

BOOL SpriteCollision(Sprite* pSpriteHitter, Sprite* pSpriteHittee)
{
	// Only check for collision between sprites that aren't hidden
	if (!pSpriteHitter->IsHidden() && !pSpriteHittee->IsHidden())
	{
		
		
		if (((pSpriteHitter == g_pTargetSprite[0])||(pSpriteHitter == g_pTargetSprite[1])||
			(pSpriteHitter == g_pTargetSprite[2])||(pSpriteHitter == g_pTargetSprite[3])) && 
			((pSpriteHittee == g_pFruitSprite[0])||(pSpriteHittee == g_pFruitSprite[1])||
			(pSpriteHittee == g_pFruitSprite[4])||(pSpriteHittee == g_pFruitSprite[5])||
			(pSpriteHittee == g_pFruitSprite[8])||(pSpriteHittee == g_pFruitSprite[9])||
			(pSpriteHittee == g_pFruitSprite[12])||(pSpriteHittee == g_pFruitSprite[13])
			))
		{
			PlaySound((LPCSTR)IDW_EATING, g_hInstance, SND_ASYNC | SND_RESOURCE);
			pSpriteHitter->SetHidden(TRUE);
			g_pFruitSprite[cur]->SetHidden(TRUE);
			g_pFruitSprite[cur+2]->SetHidden(TRUE);
			cur+=4;
			if(cur==16)		cur=1;
			g_iFruitNumber--;
			
			
			
			RECT Bounds = {500,20,580,90};
			RECT rcPos;
			rcPos = pSpriteHitter->GetPosition();
			Sprite* pSprite = new Sprite(g_pEatingBitmap, Bounds);
			pSprite->SetNumFrames(1, TRUE);
			pSprite->SetFrameDelay(20);
			pSprite->SetPosition(rcPos.left, rcPos.top);
			g_pGame->AddSprite(pSprite);
			
		}
		
		
	}
	//see if game over
	if (g_iFruitNumber==0)
	{
		// Play the game over sound
		//			PlaySound((LPCSTR)IDW_CRASH, g_hInstance, SND_ASYNC |
		//			SND_RESOURCE);
		// End the game
		g_bGameOver=TRUE;
		PlaySound((LPCSTR)IDW_GAMEOVER, g_hInstance, SND_ASYNC | SND_RESOURCE);
		g_iGameOverDelay = 100;
	}
	
	
	return FALSE;
}

void SpriteDying(Sprite* pSpriteDying)
{
}

//-----------------------------------------------------------------
// Functions
//-----------------------------------------------------------------
void NewGame()
{
	g_pGame->PlayMIDISong(TEXT("Music.mid"));
	// Clear the sprites
	g_pGame->CleanupSprites();
	
	// Initialize the game variables
	ShoutNumber=2;
	g_iFruitNumber=8;
	g_iTime=20;
	g_iTemp=30;
	g_iTargetDelay=50;
	g_iHits=0;
	g_iScore=0;
	IsClickPlane=FALSE;
//	g_iGametime=0.0;//用于产生曲线的时间参数
	current=0;
	cur=0;
	g_bGameOver = FALSE;
	
	// Create the fruit and target sprites
	RECT rcBounds = { 0, 50, 995, 724};
	g_pBottomSprite=new Sprite(g_pBottomBitmap,rcBounds);
    g_pBottomSprite->SetNumFrames(1);
	g_pBottomSprite->SetPosition(0,518);
	g_pBottomSprite->SetHidden(FALSE);
	g_pBottomSprite->SetZOrder(1);
	g_pGame->AddSprite(g_pBottomSprite);
	
	g_pPlane= new Sprite(g_pPlaneBitmap, rcBounds,BA_WRAP);
	g_pPlane->SetNumFrames(1);
	g_pPlane->SetPosition(900,25);
	g_pGame->AddSprite(g_pPlane);
	
	g_pTargetSprite[0] = new Sprite(g_pTargetBitmap, rcBounds,BA_STOP,FALSE);
	g_pTargetSprite[0]->SetNumFrames(2);
	g_pTargetSprite[0]->SetZOrder(0);
	g_pTargetSprite[0]->SetHidden(TRUE);
	g_pGame->AddSprite(g_pTargetSprite[0]);
	
	g_pTargetSprite[1] = new Sprite(g_pTargetBitmap, rcBounds,BA_STOP,FALSE);
	g_pTargetSprite[1]->SetNumFrames(2);
	g_pTargetSprite[1]->SetZOrder(0);
	g_pTargetSprite[1]->SetHidden(TRUE);
	g_pGame->AddSprite(g_pTargetSprite[1]);
	
	g_pTargetSprite[2] = new Sprite(g_pTargetBitmap, rcBounds,BA_STOP,FALSE);
	g_pTargetSprite[2]->SetNumFrames(2);
	g_pTargetSprite[2]->SetZOrder(0);
	g_pTargetSprite[2]->SetHidden(TRUE);
	g_pGame->AddSprite(g_pTargetSprite[2]);
	
	g_pTargetSprite[3] = new Sprite(g_pTargetBitmap, rcBounds,BA_STOP,FALSE);
	g_pTargetSprite[3]->SetNumFrames(2);
	g_pTargetSprite[3]->SetZOrder(0);
	g_pTargetSprite[3]->SetHidden(TRUE);
	g_pGame->AddSprite(g_pTargetSprite[3]);
	
	RECT rcBound={400,70,610,200};
	g_pFruitSprite[0]=new Sprite(g_pGrapeBitmap, rcBound); 
    g_pFruitSprite[0]->SetNumFrames(1);
	g_pFruitSprite[0]->SetPosition(430,100);
	g_pFruitSprite[0]->SetZOrder(3);
	g_pFruitSprite[0]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[0]);
	
	g_pFruitSprite[1] = new Sprite(g_pGrapeBitmap, rcBound);
	g_pFruitSprite[1]->SetNumFrames(1);
	g_pFruitSprite[1]->SetPosition(485,90);
	g_pFruitSprite[1]->SetZOrder(2);
	g_pFruitSprite[1]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[1]);
	
	g_pFruitSprite[2] = new Sprite(g_pGrapeBitmap, rcBounds);
	g_pFruitSprite[2]->SetNumFrames(1);
	g_pFruitSprite[2]->SetPosition(60,570);
	g_pFruitSprite[2]->SetZOrder(2);
	g_pFruitSprite[2]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[2]);
	
	g_pFruitSprite[3] = new Sprite(g_pGrapeBitmap, rcBounds);
	g_pFruitSprite[3]->SetNumFrames(1);
	g_pFruitSprite[3]->SetPosition(290,585);
	g_pFruitSprite[3]->SetZOrder(3);
	g_pFruitSprite[3]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[3]);
	
	g_pFruitSprite[4]= new Sprite(g_pBananaBitmap, rcBound);
	g_pFruitSprite[4]->SetNumFrames(1);
	g_pFruitSprite[4]->SetPosition(450,93);
	g_pFruitSprite[4]->SetZOrder(2);
	g_pFruitSprite[4]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[4]);
	
	g_pFruitSprite[5]= new Sprite(g_pBananaBitmap, rcBound);
	g_pFruitSprite[5]->SetNumFrames(1);
	g_pFruitSprite[5]->SetPosition(500,91);
	g_pFruitSprite[5]->SetZOrder(2);
	g_pFruitSprite[5]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[5]);
	
	g_pFruitSprite[6]= new Sprite(g_pBananaBitmap, rcBounds);
	g_pFruitSprite[6]->SetNumFrames(1);
	g_pFruitSprite[6]->SetPosition(130,560);
	g_pFruitSprite[6]->SetZOrder(1);
	g_pFruitSprite[6]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[6]);
	
	g_pFruitSprite[7]= new Sprite(g_pBananaBitmap, rcBounds);
	g_pFruitSprite[7]->SetNumFrames(1);
	g_pFruitSprite[7]->SetPosition(280,630);
	g_pFruitSprite[7]->SetZOrder(2);
	g_pFruitSprite[7]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[7]);
	
	g_pFruitSprite[8]= new Sprite(g_pStrwberryBitmap, rcBound);
	g_pFruitSprite[8]->SetNumFrames(1);
	g_pFruitSprite[8]->SetPosition(474,111);
	g_pFruitSprite[8]->SetZOrder(2);
	g_pFruitSprite[8]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[8]);
	
	g_pFruitSprite[9]= new Sprite(g_pStrwberryBitmap, rcBound);
	g_pFruitSprite[9]->SetNumFrames(1);
	g_pFruitSprite[9]->SetPosition(496,120);
	g_pFruitSprite[9]->SetZOrder(3);
	g_pFruitSprite[9]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[9]);
	
	g_pFruitSprite[10]= new Sprite(g_pStrwberryBitmap, rcBounds);
	g_pFruitSprite[10]->SetNumFrames(1);
	g_pFruitSprite[10]->SetPosition(226,590);
	g_pFruitSprite[10]->SetZOrder(3);
	g_pFruitSprite[10]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[10]);
	
	g_pFruitSprite[11]= new Sprite(g_pStrwberryBitmap, rcBounds);
	g_pFruitSprite[11]->SetNumFrames(1);
	g_pFruitSprite[11]->SetPosition(146,630);
	g_pFruitSprite[11]->SetZOrder(2);
	g_pFruitSprite[11]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[11]);
	
	g_pFruitSprite[12]= new Sprite(g_pPearBitmap, rcBound);
	g_pFruitSprite[12]->SetNumFrames(1);
	g_pFruitSprite[12]->SetPosition(530,97);
	g_pFruitSprite[12]->SetZOrder(2);
	g_pFruitSprite[12]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[12]);
	
	g_pFruitSprite[13]= new Sprite(g_pPearBitmap, rcBound);
	g_pFruitSprite[13]->SetNumFrames(1);
	g_pFruitSprite[13]->SetPosition(500,97);
	g_pFruitSprite[13]->SetZOrder(2);
	g_pFruitSprite[13]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[13]);
	
	g_pFruitSprite[14]= new Sprite(g_pPearBitmap, rcBounds);
	g_pFruitSprite[14]->SetNumFrames(1);
	g_pFruitSprite[14]->SetPosition(70,630);
	g_pFruitSprite[14]->SetZOrder(1);
	g_pFruitSprite[14]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[14]);
	
	g_pFruitSprite[15]= new Sprite(g_pPearBitmap, rcBounds);
	g_pFruitSprite[15]->SetNumFrames(1);
	g_pFruitSprite[15]->SetPosition(200,630);
	g_pFruitSprite[15]->SetZOrder(1);
	g_pFruitSprite[15]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pFruitSprite[15]);
	
	g_pBasketSprite[0]= new Sprite(g_pFrontbasketBitmap, rcBound);
	g_pBasketSprite[0]->SetPosition(430,130);
	g_pBasketSprite[0]->SetNumFrames(1);
	g_pBasketSprite[0]->SetZOrder(3);
	g_pBasketSprite[0]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pBasketSprite[0]);
	
	g_pBasketSprite[1]= new Sprite(g_pBackbasketBitmap, rcBound);
	g_pBasketSprite[1]->SetNumFrames(1);
	g_pBasketSprite[1]->SetPosition(450,120);
	g_pBasketSprite[1]->SetZOrder(0);
	g_pBasketSprite[1]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pBasketSprite[1]);
	
	g_pMouseSprite[0]= new Sprite(g_pSmallmouseBitmap, rcBounds);
	g_pMouseSprite[0]->SetNumFrames(1);
	g_pMouseSprite[0]->SetPosition(552,0);
	g_pMouseSprite[0]->SetZOrder(3);
	g_pMouseSprite[0]->SetHidden(FALSE);
	g_pGame->AddSprite(g_pMouseSprite[0]);
	
	g_pMouseSprite[1]= new Sprite(g_pBigmouseBitmap, rcBounds);
	g_pMouseSprite[1]->SetNumFrames(1);
	g_pMouseSprite[1]->SetZOrder(3);
	g_pMouseSprite[1]->SetHidden(TRUE);
	g_pGame->AddSprite(g_pMouseSprite[1]);
	
	
	g_pPowSprite=new Sprite(g_pPowBitmap, rcBounds,BA_STOP);
    //g_pPowSprite->SetHidden(FALSE);
	g_pPowSprite->SetPosition(300,500);
	g_pPowSprite->SetNumFrames(1,TRUE);
	g_pPowSprite->GetHeight();
	//g_pPowSprite->SetFrameDelay(3);
//	g_pPowSprite->SetZOrder(3);
//	g_pGame->AddSprite(g_pPowSprite);
	
	// Play the background music
	g_pGame->PlayMIDISong(TEXT("Music.mid"));
}

void UpdateHiScores()
{
	// See if the current score made the hi score list
	int i;
	for (i = 0; i < 5; i++)
	{
		if (g_iScore > g_iHiScores[i])
			break;
	}
	
	// Insert the current score into the hi score list
	if (i < 5)
	{
		for (int j = 4; j > i; j--)
		{
			g_iHiScores[j] = g_iHiScores[j - 1];
		}
		g_iHiScores[i] = g_iScore;
	}
}

BOOL ReadHiScores()
{
	// Open the hi score file (HiScores.dat)
	HANDLE hFile = CreateFile(TEXT("HiScores.dat"), GENERIC_READ, 0, NULL,
		OPEN_EXISTING, FILE_ATTRIBUTE_READONLY, NULL);
	if (hFile == INVALID_HANDLE_VALUE)
	{
		// The hi score file doesn't exist, so initialize the scores to 0
		for (int i = 0; i < 5; i++)
			g_iHiScores[i] = 0;
		return FALSE;
	}
	
	// Read the scores
	for (int i = 0; i < 5; i++)
	{
		// Read the score
		char  cData[6];
		DWORD dwBytesRead;
		if (!ReadFile(hFile, &cData, 5, &dwBytesRead, NULL))
		{
			// Something went wrong, so close the file handle
			CloseHandle(hFile);
			return FALSE;
		}
		
		// Extract each integer score from the score data
		g_iHiScores[i] = atoi(cData);
	}
	
	// Close the file
	return CloseHandle(hFile);
}

BOOL WriteHiScores()
{
	// Create the hi score file (HiScores.dat) for writing
	HANDLE hFile = CreateFile(TEXT("HiScores.dat"), GENERIC_WRITE, 0, NULL,
		CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
	if (hFile == INVALID_HANDLE_VALUE)
		// The hi score file couldn't be created, so bail
		return FALSE;
	
	// Write the scores
	for (int i = 0; i < 5; i++)
	{
		// Format each score for writing
		CHAR cData[6];
		wsprintf(cData, "%05d", g_iHiScores[i]);
		
		// Write the score
		DWORD dwBytesWritten;
		if (!WriteFile(hFile, &cData, 5, &dwBytesWritten, NULL))
		{
			// Something went wrong, so close the file handle
			CloseHandle(hFile);
			return FALSE;
		}
	}
	
	// Close the file
	return CloseHandle(hFile);
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -