Example #1
0
void showCursor(cursor *c, char *grid, camera *cam, tower *tow) //displays C in the VRAM
{
	textBar name = {2, 54, 124, 10, NULL, 0};
	if(grid[c->gridY * GRID_LENGTH + c->gridX] == 0 || grid[c->gridY * GRID_LENGTH + c->gridX] == 6)
		ML_rectangle(c->gridX*9 - cam->x -1, c->gridY*9 - cam->y - 1, (c->gridX+1)*9 - cam->x - 1, (c->gridY+1)*9 - cam->y - 1, 1, BLACK, TRANSPARENT);
	else
		ML_rectangle(c->gridX*9 - cam->x - 1, c->gridY*9 - cam->y - 1, (c->gridX+1)*9 - cam->x - 1, (c->gridY+1)*9 - cam->y - 1, 1, BLACK, CHECKER);
	if(tow == NULL) return;
	if(grid[c->gridY * GRID_LENGTH + c->gridX] == 6)
	{
		ML_circle(c->gridX*9 - cam->x +4, c->gridY*9-cam->y +4, findTowerXY(c->gridX, c->gridY, tow)->range, CHECKER);
		name.text = findTowerXY(c->gridX, c->gridY, tow)->name;
		name.show = 1;
		showTextBar(&name);
	}
}
Example #2
0
int main()
{
    game.Game();
    while(scene != STOP)
    {
        // transition de changement de scene
        ML_rectangle(0, 0, 128, 64, 0, ML_BLACK, ML_CHECKER);
        ML_display_vram();
        Sleep(80);

        switch (scene)
        {
            case SCENE_SPACE:
                Scene_Space scene_space;
                break;
        }
    }

    unsigned int key;
    while(1) GetKey(&key);
    return 1;
}
Example #3
0
int tableauEleMini(chang)
{
char buffer[50];
char y;
char menu=0;
char choix=-1;

while(1)
	{
	Bdisp_AllClr_DDVRAM();

	ML_bmp_or(TABLEAU_MINI,0,0,91,48);
	choix_famille(choix); // on met en place le choix sur les familles
	
	chang=(chang>=118 ? 0 : chang<=-1 ? 117 : chang);

	y=(chang>55 && chang<71 ? 9 : chang>87 && chang<103 ? 10 : elements[chang].periode);

	if (chang>55 && chang<71 || chang>87 && chang<103)
		{
		ML_rectangle(5*elements[chang].groupe-4,5*y-7,5*elements[chang].groupe-1,5*y-4,0,1,2);
		}
		else
		{
		ML_rectangle(5*elements[chang].groupe-4,5*y-4,5*elements[chang].groupe-1,5*y-1,0,1,2);
		}


	PrintXY(110-3*strlen(elements[chang].symbol),13,elements[chang].symbol,0);

	sprintf(buffer,"%d",chang+1); // détail des éléments sur la droite
	PrintMini(110-2*strlen(buffer),5,buffer,0);

	sprintf(buffer,"%.3f",elements[chang].masse_mol);
	PrintMini(110-2*strlen(buffer),23,buffer,0);

	

	if(menu==0)
		{

		Mini("maxi",0);
		Mini("find",1);
		Mini("mol",2);
		
		Mini("fami",4);
		Mini("det",5);

		GetKey(&key);

		switch(key)
			{
			case 79 : case 47 : return chang;
			case 69 : chang=find(chang); break;
			case 59 : calcul_mole(); break;
			
			case 39 : menu=1; break;
			case 29 : chang=detailsElement(chang); break;
			}
		}
	else if (menu==1)
		{
		Mini("n-me",0);
		Mini("halo",1);
		Mini("g-ra",2);
		Mini("m-ti",3);
		Mini("m-al",4);
		Mini(" -->",5);

		GetKey(&key);

		switch(key)
			{
			case 47 :  menu=0; choix=-1; break;

			case 79 : choix=0; break;
			case 69 : choix=1; break;
			case 59 : choix=2; break;
			case 49 : choix=3; break;
			case 39 : choix=4; break;
			case 29 : menu=2; break; // on change dans les 2 menus
			}
		}
	else if (menu==2)
		{
		Mini("m-at",0);
		Mini("lant",1);
		Mini("acta",2);
		Mini("m-tr",3);
		Mini("p-tr",4);
		Mini(" -->",5);

		GetKey(&key);

		switch(key)
			{
			case 47 : menu=0; choix=-1;break;

			case 79 : choix=5; break;
			case 69 : choix=6; break;
			case 59 : choix=7; break;
			case 49 : choix=8; break;
			case 39 : choix=9; break;
			case 29 : menu=1; break; // on change dans les 2 menus

			}
		}

	switch(key) // pour les touches principales à chaque fois
		{
		case 27 : chang+=1;  break;
		case 38 : chang-=1; break;
		case 37 : chang=elements[chang].dessous; break;
		case 28 : chang=elements[chang].dessus; break;

		case 31 : case 78 : chang=detailsElement(chang); break;

		}
	}
}
Example #4
0
int tableauElement(chang)
{

short decalx=0,decaly=0;
short x,y;
short i;

while(1)
	{
	Bdisp_AllClr_DDVRAM();

	chang=(chang>=118 ? 0 : chang<=-1 ? 117 : chang);

	decalx=-(((12*elements[chang].groupe)-13)*108)/240; // on fait un decalage lorsque l'on bouge
	decaly=(elements[chang].periode==5 ? -7 : elements[chang].periode>5 ? -14 : 0);

	for(i=0;i<118;i++)
			{
			x=elements[i].groupe;
			y=(i>55 && i<71 ? 9 : i>87 && i<103 ? 10 : elements[i].periode);


			PrintMini(12*x+decalx-12,7*y+decaly-6,elements[i].symbol,0);

			PrintMini(12*3-11+decalx,7*6-7+decaly,"1",0);
			PrintMini(12*3-11+decalx,7*7-7+decaly,"2",0);

			PrintMini(12*3-11+decalx,7*9+decaly-5,"1",0);
			PrintMini(12*3-11+decalx,7*10+decaly-5,"2",0);
			}

	if (chang>55 && chang<71)
		{
		ML_rectangle(12*elements[chang].groupe-13+decalx,7*9-7+decaly,12*elements[chang].groupe-1+decalx,7*9+decaly,1,1,2);
		}
	else if (chang>87 && chang<103)
		{
		ML_rectangle(12*elements[chang].groupe-13+decalx,7*10-7+decaly,12*elements[chang].groupe-1+decalx,7*10+decaly,1,1,2);
		}
	else
		{
		ML_rectangle(12*elements[chang].groupe-13+decalx,7*elements[chang].periode-7+decaly,12*elements[chang].groupe+decalx,7*elements[chang].periode+decaly,1,1,2);
		}

	ML_rectangle(0,56,128,64,0,0,0); // on fait un rectangle blanc pour qu'il n'y ait rien

	Mini("mini",0);
	Mini("find",1);
	Mini("mol",2);
	Mini("sign",3);

	Mini("det",5);

	GetKey(&key);

	switch(key)
		{
		case 27 : chang+=1;  break;
		case 38 : chang-=1; break;
		case 37 : chang=elements[chang].dessous; break;
		case 28 : chang=elements[chang].dessus; break;

		case 79 : chang=tableauEleMini(chang); break;
		case 69 : chang=find(chang); break;
		case 59 : calcul_mole(); break;
		case KEY_CTRL_F4 : nb_sign(); break;

		case 29 : case 31 : case 78 : chang=detailsElement(chang); break;

		case 47 : return;
		}
	}
}