コード例 #1
0
ファイル: main.cpp プロジェクト: DynalitykStudio/C-Project
void Initialize()
{
	m_TimeDebug.SetStartTime();

	g_pImage = GfxImageLoad("Map.tga");
	int iSizeX = GfxImageGetSizeX(g_pImage);
	
	SetTileS();

	const int iArray = 4;
	TTile m_AllTile[iArray];

	m_AllTile[0] = m_TileWall;
	m_AllTile[1] = m_TileFloor;
	m_AllTile[2] = m_TileEnd;
	m_AllTile[3] = m_TileStart;

	m_Map.SetSizeTile(float(GfxGetDisplaySizeX() / iSizeX));
	m_Map.DrawMap(g_pImage, m_Sprite, m_AllTile, iArray);

	float fTexSize = m_Map.fSizeTile;
	m_Player.SetingSprite(fTexSize);
	m_Player.tPos = m_Map.GetStartMap(g_pImage, m_Sprite, m_TileStart);
//	GfxFullscreen(true);

	m_TimeDebug.GetExitTime();
}
コード例 #2
0
ファイル: main.cpp プロジェクト: Pynx/OldFirstSecondYear
void Initialize()
{
    g_pBackground = GfxImageLoad("gfx/bg3.tga");
    g_pTextureTest = GfxTextureCreate(g_pBackground);
    g_pSpritesBg = GfxSpriteCreate(g_pTextureTest);
    g_pTexture = GfxTextureLoad("gfx/tileset.tga"); // On crée g_pTexture ici et on l'envoie dans l'appel de fonction

    g_pSpriteHero = CreateTile(g_pTexture, 7, 7, 7, 5); // Initialisée en dehors du scope pour l'utiliser autre part ( Donc on n'écrit pas "TGfxSPrite *" devant ) ( debug mode = 2, 1 | normal mode = 0, 0 )

    TGfxImage * pMapImage = GfxImageLoad("gfx/map.tga"); // Pas en const car on peut vouloir la delete ( Si on le laisse comme ça, il sera inutile et prendra de la mémoire inutile ! il faut le delete après la boucle avec le destroy
    int iImgSizeX = GfxImageGetSizeX(pMapImage);
    int iImgSizeY = GfxImageGetSizeY(pMapImage);

    for (int y = 0; y < iImgSizeY; ++y)
    {
        for (int x = 0; x < iImgSizeX; ++x)
        {

            const int iIndex = x + y * iImgSizeX;
            if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(255, 255, 255, 255)) // SI je veux aller voir le premier élément je dois mettre [0]
            {
                g_pSpriteWall[g_iWallCount] = CreateTile(g_pTexture, 6, 1, x, y); // 6 et 1 au lieu de 1 et 1 pour mur ( 1, 1 = debug mode test )
                g_iWallCount++;
            }
            if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(255, 0, 0, 255)) // SI je veux aller voir le premier élément je dois mettre [0]
            {
                g_pSpriteDeathWall[g_iDeathWallCount] = CreateTile(g_pTexture, 7, 1, x, y);
                g_iDeathWallCount++;
            }
        }
    }

    GfxImageDestroy(pMapImage);

    //	for (int i = 0; i < WALL_HEIGHT; i++)  !!!!!! Attention que ça doit bien s'adapter à la taille du tableau !!!!!!
    //	{
    //		g_pSpriteWall[i] = CreateTile(g_pTexture, 12, 3, 0, i);
    //	}
    // TGfxImage            Les 3 permettent d'afficher des choses.
    // TGfxTexture			Une image est un ensemble de pixel d'un certaine taille.
    // TGfxSprite			32 bits par pixel.
    // Un sprite n'est pas autonome, ça fait référence à une texture existente, il contiendra les info qui lui diront avec quelle rotation, quelle SCALE, et quelle partie de la texture utiliser ! Le sprite c'est la transformation. une partie de la texture

}
コード例 #3
0
ファイル: main.cpp プロジェクト: Pynx/OldFirstSecondYear
void Initialize()
{
	g_pTexture = GfxTextureLoad("gfx/tileset.tga"); // On crée g_pTexture ici et on l'envoie dans l'appel de fonction

	g_pSpriteHero = CreateTile(g_pTexture, 1, 4, 1, 1); // Initialisée en dehors du scope pour l'utiliser autre part ( Donc on n'écrit pas "TGfxSPrite *" devant )
	g_pSpriteEnemy = CreateTile(g_pTexture, 8, 7, 2, 2);

	TGfxImage * pMapImage = GfxImageLoad("gfx/map.tga"); // Pas en const car on peut vouloir la delete ( Si on le laisse comme ça, il sera inutile et prendra de la mémoire inutile ! il faut le delete après la boucle avec le destroy
	int iImgSizeX = GfxImageGetSizeX(pMapImage);
	int iImgSizeY = GfxImageGetSizeY(pMapImage);

	for (int y = 0; y < iImgSizeY; ++y)
	{
		for (int x = 0; x < iImgSizeX; ++x)
		{   
			 
			const int iIndex = x + y * iImgSizeX; // Le *15 permet de compter les lignes déja parcourue ...
			if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(255,255,255,255)) // SI je veux aller voir le premier élément je dois mettre [0]
			{
				g_pSpriteWall[g_iWallCount] = CreateTile(g_pTexture, 6, 1, x, y);
				g_iWallCount++;
			}
		}
	}

	GfxImageDestroy(pMapImage);

	//	for (int i = 0; i < WALL_HEIGHT; i++)  !!!!!! Attention que ça doit bien s'adapter à la taille du tableau !!!!!!
	//	{
	//		g_pSpriteWall[i] = CreateTile(g_pTexture, 12, 3, 0, i);
	//	}

	GfxSpriteSetPosition(g_pSpriteEnemy, -16 * SCALE, 0 * SCALE); // *4 car on a agrandi la texture X4, c'est pour avoir la même échelle

	// TGfxImage            Les 3 permettent d'afficher des choses.
	// TGfxTexture			Une image est un ensemble de pixel d'un certaine taille.
	// TGfxSprite			32 bits par pixel.
	// Un sprite n'est pas autonome, ça fait référence à une texture existente, il contiendra les info qui lui diront avec quelle rotation, quelle SCALE, et quelle partie de la texture utiliser ! Le sprite c'est la transformation. une partie de la texture

}
コード例 #4
0
ファイル: main.cpp プロジェクト: Pynx/OldFirstSecondYear
void Initialize()
{
	g_pBackgroundImage = GfxImageLoad("map.tga");
	g_pData = GfxImageGetData(g_pBackgroundImage);

	const int iImgSizeX = GfxImageGetSizeX(g_pBackgroundImage);
	const int iImgSizeY = GfxImageGetSizeY(g_pBackgroundImage);


	for (int y = 0; y < iImgSizeY; ++y)
	{
		for (int x = 0; x < iImgSizeX; ++x)
		{
			const int iIndex = x + (y * iImgSizeX);

			if (g_pData[iIndex] == GfxColor(0, 0, 255, 255) || g_pData[iIndex] == GfxColor(255, 0, 0, 255) || g_pData[iIndex] == GfxColor(0, 255, 0, 255))
			{
				g_pData[iIndex] = EGfxColor_White;
			}
		}
	}


	g_pBackgroundTexture = GfxTextureCreate(g_pBackgroundImage);
	g_pBackgroundSprite = GfxSpriteCreate(g_pBackgroundTexture);

	GfxSpriteSetScale(g_pBackgroundSprite, 32, 32);
	GfxSpriteSetFilteringEnabled(g_pBackgroundSprite, false);

	g_pSpriteIncome = GfxTextSpriteCreate();
	GfxTextSpritePrintf(g_pSpriteIncome, "revenue: $%d", g_iIncome);
	GfxSpriteSetFilteringEnabled(g_pSpriteIncome, false);
	GfxSpriteSetScale(g_pSpriteIncome, 2, 2);
	GfxSpriteSetPosition(g_pSpriteIncome, float((GfxGetDisplaySizeX() / 2) - GfxSpriteGetSizeX(g_pSpriteIncome)), 290);
	GfxSpriteSetColor(g_pSpriteIncome, GfxColor(255, 255, 255, 255));

	TGfxImage * pMapImage = GfxImageLoad("map.tga");
	
	const int iSecondImgSizeX = GfxImageGetSizeX(pMapImage);
	const int iSecondImgSizeY = GfxImageGetSizeY(pMapImage);

	for (int i = 0; i < 3; i++) // Boucle créant les numéros sur les buildings
	{
		for (int y = 0; y < iSecondImgSizeY; ++y)
		{
			for (int x = 0; x < iSecondImgSizeX; ++x)
			{
				const int iIndex = x + (y * iSecondImgSizeX);

				if (i == 0)
				{
					if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(255, 0, 0, 255)) // RED CHECKING & CREATING
					{
						g_tBuilding[g_iBuildingCount].Create(x, y, g_iBuildingCount, SCALE);
						g_iBuildingCount++;
					}
				}
				else if (i == 1)
				{
					if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(0, 255, 0, 255)) // GREEN CHECKING & CREATING
					{
						g_tBuilding[g_iBuildingCount].Create(x, y, g_iBuildingCount, SCALE);
						g_iBuildingCount++;
					}
				}
				else if (i == 2)
				{
					if (GfxImageGetData(pMapImage)[iIndex] == GfxColor(0, 0, 255, 255)) // BLUE CHECKING & CREATING
					{
						g_tBuilding[g_iBuildingCount].Create(x, y, g_iBuildingCount, SCALE);
						g_iBuildingCount++;
					}
				}
			}
		}
	}

	GfxImageDestroy(pMapImage);
}
コード例 #5
0
ファイル: main.cpp プロジェクト: Pynx/OldFirstSecondYear
void Update()
{
	if (GfxInputIsJustPressed(EGfxInputID_MouseLeft))
	{
		const int iMouseX = GfxGetCurrentMouseX();
		const int iMouseY = GfxGetCurrentMouseY();

		for (int i = 0; i < BUILDING_NUMBER; i++)
		{
			if ((iMouseX < (g_tBuilding[i].iPosX + SCALE))
				&& (iMouseX >(g_tBuilding[i].iPosX))
				&& (iMouseY < (g_tBuilding[i].iPosY + SCALE))
				&& (iMouseY >(g_tBuilding[i].iPosY))
				)
			{
				ChangeColor(iMouseX / 32, iMouseY / 32, GfxImageGetSizeX(g_pBackgroundImage));
				if (g_tBuilding[i].bBuyed == false)
				{
					g_tBuilding[i].bBuyed = true;
				}
				else
				{
					g_tBuilding[i].bBuyed = false;
				}
			}
		}
	}

	g_iIncome = 0;

	for (int i = 0; i < BUILDING_NUMBER; i++) // Boucle principale -> Va tester chaque building un par un.
	{
		g_iQueuePosition = 0;
		g_iBuildingQueued[g_iQueuePosition] = i;
		g_bFirstBuy = false;

		do
		{
			if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking < 4)
			{
				if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].bBuyed == true)
				{
					if (g_bFirstBuy == false)
					{
						g_bFirstBuy = true;
						g_iChain++;
					}
					for (int e = 0; e < BUILDING_NUMBER; e++)
					{



						if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking == 0) // Test dernier building de la file pour savoir si il doit regarder à droite
						{
							if (((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosX + 32) == g_tBuilding[e].iPosX) && ((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosY) == g_tBuilding[e].iPosY)) // Test si building à sa droite
							{
								g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking++; // Si building à sa droite, on lui dit qu'il à check à droite

								if (g_tBuilding[e].iLooking == 0 && g_tBuilding[e].bBuyed == true) // Ce building DOIT avoir été acheté)								
								{
									g_iChain++;
									g_iQueuePosition++;
									g_iBuildingQueued[g_iQueuePosition] = e;
								}
								break;
							}
						}
						else if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking == 1)
						{
							if (((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosY + 32) == g_tBuilding[e].iPosY) && (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosX == g_tBuilding[e].iPosX)) // Test si building à sa droite
							{
								g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking++; // Si building à sa droite, on lui dit qu'il à check à droite

								if ((g_tBuilding[e].iLooking == 0) && (g_tBuilding[e].bBuyed == true)) // Ce building DOIT avoir été acheté)								
								{
									g_iChain++;
									g_iQueuePosition++;
									g_iBuildingQueued[g_iQueuePosition] = e;
								}
								break;
							}
						}
						else if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking == 2)
						{
							if (((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosX - 32) == (g_tBuilding[e].iPosX)) && ((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosY) == (g_tBuilding[e].iPosY))) // Test si building à sa droite
							{
								g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking++; // Si building à sa droite, on lui dit qu'il à check à droite
								if ((g_tBuilding[e].iLooking == 0) && (g_tBuilding[e].bBuyed == true)) // Ce building DOIT avoir été acheté)								
								{
									g_iChain++;
									g_iQueuePosition++;
									g_iBuildingQueued[g_iQueuePosition] = e;
								}
								break;
							}
						}
						else if (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking == 3)
						{
							if (((g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosY - 32) == g_tBuilding[e].iPosY) && (g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iPosX == g_tBuilding[e].iPosX)) // Test si building à sa droite
							{
								g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking++; // Si building à sa droite, on lui dit qu'il à check à droite
								if (g_tBuilding[e].iLooking == 0   // Ce building ne doit pas encore avoir été check
									&& g_tBuilding[e].bBuyed == true) // Ce building DOIT avoir été acheté)								
								{
									g_iChain++;
									g_iQueuePosition++;
									g_iBuildingQueued[g_iQueuePosition] = e;
								}
								break;
							}
						}

						if (e == 41 && g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking < 4)
						{
							g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking++;
							break;
						}

					}
				}
				else
				{
					g_tBuilding[g_iBuildingQueued[g_iQueuePosition]].iLooking = 4;
				}
			}
			else if (g_iQueuePosition > 0)
			{
				g_iQueuePosition--;
			}
		} while (g_tBuilding[g_iBuildingQueued[0]].iLooking < 4);

		for (int e = 0; e < g_iChain; e++)
		{
			g_iIncome += ((e + 1) * 1000);
		}
		g_iQueuePosition = 0;
		g_iChain = 0;
	}

	GfxTextSpritePrintf(g_pSpriteIncome, "revenue: $%d", g_iIncome);
	GfxSpriteSetPosition(g_pSpriteIncome, float((GfxGetDisplaySizeX() / 2) - GfxSpriteGetSizeX(g_pSpriteIncome)), 290);

	for (int e = 0; e < BUILDING_NUMBER; e++)
	{
		g_tBuilding[e].iLooking = 0;
	}


}