예제 #1
0
void PlayerState_Searching()
{
	if (g_bSearchingLaunch == false)
	{
		g_iTime = GfxMathGetRandomInteger(1, 3);
		g_bSearchingLaunch = true;
	}
	if (g_iTime > 0)
	{
		g_iTime -= GfxTimeFrameGetCurrentDurationInSeconds();
	}
	if (g_iTime <= 0)
	{
		g_pCave[g_iCurrentCaveTarget].bIsSearched = true;
		g_iPlayerInventory = GfxMathGetRandomInteger(0, 3);
		GfxDbgPrintf("You finished searching and you found %d artefacts\n", g_iPlayerInventory);
		g_iTime = 0;
		g_bSearchingLaunch = false;
		if (g_iPlayerInventory > 0)
		{
			g_TPlayerData.m_ePlayerState = g_TPlayerData.EPlayerState_GoingToBase;
		}
		else
		{
			g_TPlayerData.m_ePlayerState = g_TPlayerData.EPlayerState_GoingToCave;
		}
	}
}
예제 #2
0
	void CreateCave(int ActCave)
	{
		g_pCave[ActCave].iScale = GfxMathGetRandomInteger(32, 64);
		bool Collisioned = true;
		do
		{
			g_pCave[ActCave].iPosX = (GfxMathGetRandomInteger(g_pCave[ActCave].iScale, GfxGetDisplaySizeX() - g_pCave[ActCave].iScale));
			g_pCave[ActCave].iPosY = (GfxMathGetRandomInteger(g_pCave[ActCave].iScale, GfxGetDisplaySizeY() - g_pCave[ActCave].iScale));
			Collisioned = false;
			for (int e = 0; e < ActCave; e++)
			{
				if (!(g_pCave[ActCave].iPosX > g_pCave[e].iPosX + g_pCave[e].iScale + 20)
					&& !(g_pCave[ActCave].iPosX < g_pCave[e].iPosX - g_pCave[ActCave].iScale - 20)
					&& !(g_pCave[ActCave].iPosY < g_pCave[e].iPosY - g_pCave[ActCave].iScale - 20)
					&& !(g_pCave[ActCave].iPosY > g_pCave[e].iPosY + g_pCave[e].iScale + 20))
				{
					Collisioned = true;
				}
			}
			if (ActCave == 0)
			{
				Collisioned = false;
			}
		} while (Collisioned == true);


		g_pCave[ActCave].pLines = GfxLineSpriteCreate();
		ArcheoStuffs::DrawCircle(g_pCave[ActCave].pLines, TGfxVec2(0, 0), g_pCave[ActCave].iScale / 2, EGfxColor_Blue, false);
		GfxSpriteSetPosition(g_pCave[ActCave].pLines, g_pCave[ActCave].iPosX, g_pCave[ActCave].iPosY);

		g_pCave[ActCave].g_pSpriteCave = GfxSpriteCreate(g_pTexture);
		GfxSpriteSetPivot(g_pCave[ActCave].g_pSpriteCave, 0.5, 0.5);
		GfxSpriteSetScale(g_pCave[ActCave].g_pSpriteCave, g_pCave[ActCave].iScale, g_pCave[ActCave].iScale);
		GfxSpriteSetColor(g_pCave[ActCave].g_pSpriteCave, GfxColor(0, 0, 255, 255));
		GfxSpriteSetPosition(g_pCave[ActCave].g_pSpriteCave, g_pCave[ActCave].iPosX, g_pCave[ActCave].iPosY);
		g_iNbrCaveCreated++;
	}
예제 #3
0
void PlayerState_GoingToCave()
{
	if (g_bMoving == false)
	{
		do
		{
			g_iCurrentCaveTarget = GfxMathGetRandomInteger(0, 5);
		} while (g_pCave[g_iCurrentCaveTarget].bIsSearched == true);

		GfxDbgPrintf("You are going to the cave number %d\n", g_iCurrentCaveTarget + 1);
	}
	
	g_bMoving = true;

	//----------------------------------------- TRY ----------------------------------------------------------------


	ArcheoStuffs::Move(TGfxVec2(float(g_pCave[g_iCurrentCaveTarget].iPosX), float(g_pCave[g_iCurrentCaveTarget].iPosY)), TGfxVec2(float(g_TPlayerData.iPosX), float(g_TPlayerData.iPosY)));


}
Event GetRandomEvent()
{
	int iRandom = GfxMathGetRandomInteger(0, 3);
	switch (iRandom)
	{
	case 0:
		return Event_Internet;
		break;
	case 1:
		return Event_Fridge;
		break;
	case 2:
		return Event_WC;
		break;
	case 3:
		return Event_SoundRoom;
		break;
	default:
		return Event_Game;
		break;
	}
}
예제 #5
0
TGfxImage * Noise(const int iSizeX, const int iSizeY)
{
	TGfxImage * pImage = GfxImageCreate(iSizeX, iSizeY);
	
	for (int y = 0; y < iSizeY; y++)
	{
		for (int x = 0; x < iSizeX; x++)
		{
			const int iIndex = y*iSizeX + x;
			const unsigned int iColor = ((GfxMathGetRandomInteger(0, 1) == 0) ? (EGfxColor_Black) : (EGfxColor_White));
			GfxImageGetData(pImage)[iIndex] = iColor;

			if ((x == 0) || (y == 0) || (x == iSizeX - 1) || (y == iSizeY - 1))
				GfxImageGetData(pImage)[iIndex] = EGfxColor_Black;
			if ((x == 1) || (y == 1) || (x == iSizeX - 2) || (y == iSizeY - 2))
				GfxImageGetData(pImage)[iIndex] = EGfxColor_Black;
			//if ((x == (iSizeX - 1)/2) || (y == (iSizeY - 1)/2))
			//	GfxImageGetData(pImage)[iIndex] = EGfxColor_White;
		}
	}
	return pImage;
}