void PlayerBrowser::draw(){
	
	s8 i = 0;
	
	PA_SetBrightness(0, -31); // all black
	PA_SetBrightness(1, -31); // all black	
  	
	PA_ResetSpriteSys();
	PA_Init16cBg(1, 0);
	PA_Init16cBg(0, 0);
	PA_LoadTiledBg(1, 1, bgplayer1);  
	PA_LoadTiledBg(0, 1, bgplayer0);  
	PA_LoadSpritePal(0, 1, (void*)pbutton_Pal); 
	PA_KeyboardOut();

	PA_CreateSprite(0, TERM_SCREEN, (void*)term_Sprite, OBJ_SIZE_64X32, 1, 1, 0, 0);  
	PA_CreateSprite(0, PLAYERS_SCREEN, (void*)players_Sprite, OBJ_SIZE_64X32, 1, 1, 64, 0);  
	PA_CreateSprite(0, GAMES_SCREEN, (void*)games_Sprite, OBJ_SIZE_64X32, 1, 1, 128, 0);  
	PA_CreateSprite(0, OPTIONS_SCREEN, (void*)options_Sprite, OBJ_SIZE_64X32, 1, 1, 192, 0);  

	PA_SetSpriteAnim(0, 11, 1);
	
	for(i = -31; i < 0 ; i++){
		PA_SetBrightness(0, i); 
		PA_SetBrightness(1, i); 
		PA_WaitForVBL();		   
	}  	
	PA_16cText(0, 6, 85, 80, 95, "NAMEXXXXXX", 1, 1, 100);
	PA_16cText(0, 88, 85, 127, 95, "[12k*]", 1, 1, 100);
	PA_16cText(0, 128, 85, 136, 95, "X", 1, 1, 100);
	
	PA_16cText(0, 6, 95, 80, 115, "NAMEXXXXXX", 1, 1, 100);
	PA_16cText(0, 88, 95, 127, 115, "[12k*]", 1, 1, 100);
	PA_16cText(0, 128, 95, 136, 115, "X", 1, 1, 100);	 
}
Example #2
0
File: main.c Project: hl1itj/Team8
/* 블락 보여주기*/
void view_block() {
	int i, j;
	int k = 0; // 스프라이트 넘버.
	for (i = 0; i < SIZE; i++) {
		for (j = 0; j < SIZE; j++) {
			PA_CreateSprite(DOWN_SCREEN, k, (void*) Block_Sprite,
					OBJ_SIZE_32X32, 1, BLOCKPAL, (40 * i) + 52, (40 * j) + 20);
			PA_SetSpriteAnim(DOWN_SCREEN, k, uinfo.userBlock[j][i]); // 블록배열의 값을 스프라이트에 반영.
			k++;
		}
	}
}
void SpecialBox::show()
{
	/// SpecialBox
	PA_CreateSprite(
	      mScreenNum // screen
		, mSpriteNum	// Sprite number (auto generated)
		, const_cast<unsigned char*>(mName)
		, OBJ_SIZE_64X32 // Sprite size
		, k256colors // 256 colormode
		, pallet_num() //Sprite palette number
		, mPoint.get_mX(), mPoint.get_mY());
		
	PA_SetSpriteAnim(mScreenNum, mSpriteNum, mFrame);
}
Example #4
0
File: main.c Project: hl1itj/Team8
/* 블락 스프라이트 갱신*/
int block_reload(int k)
{
	int i, j;
	j = k/4;
	i = k%4;
	if(uinfo.userBlock[j][i] > blocks[j][i]){
			blocks[j][i]++;
			PA_SetSpriteAnim(DOWN_SCREEN, k, blocks[j][i]); // 블록배열의 값을 스프라이트에 반영.
			uinfo.userScore = uinfo.userScore*stageTime;
			return 0;
	}
	else //if(uinfo.userBlock[j][i] <= blocks[j][i])
		return 1;
}
Example #5
0
File: main.c Project: hl1itj/Team8
/* 블락 스프라이트 갱신*/
void block_reload(int k) {
	int i, j;
	i = k / 4;
	j = k % 4;
	if (uinfo.userBlock[j][i] > blocks[j][i]) {
		AS_SoundDefaultPlay((u8*) clk, (u32) clk_size, 50, 64, FALSE, 0);
		blocks[j][i]++;
		PA_SetSpriteAnim(DOWN_SCREEN, k, blocks[j][i]); // 블록배열의 값을 스프라이트에 반영.
		uinfo.userScore += uinfo.userStage * stageTime;
	} else {
		stageTime -= 2;
		AS_SoundDefaultPlay((u8*) wclk, (u32) wclk_size, 50, 64, FALSE, 0);
		Gaming_info();
	}
}
void CheckBox::show()
{
	/// CheckBox
	PA_CreateSprite(
	      mScreenNum // screen
		, mSpriteNum	// Sprite number (auto generated)
		, (void*)CheckBox_Sprite // Sprite mName (changes based off of class being called from)
		, OBJ_SIZE_16X16 // Sprite size
		, k256colors // 256 colormode
		, pallet_num() //Sprite palette number
		, mPoint.get_mX(), mPoint.get_mY());
	
	/// title
	PA_CreateSprite(
		  mScreenNum
		, mTitleSpriteNum
		, const_cast<unsigned char*>(mName)
		, OBJ_SIZE_64X32
		, k256colors
		, titlepallet_num()
		, mPoint.get_mX()-70, mPoint.get_mY()-8);
		
	PA_SetSpriteAnim(mScreenNum, mSpriteNum, mFrame);
}
Example #7
0
File: main.c Project: hl1itj/Team2
portTASK_FUNCTION(Screen_Task, pvParameters) {
	PA_LoadSpritePal(UP_SCREEN, UPSCR_BODY_PAL, (void*) man_Pal);
	PA_LoadSpritePal(UP_SCREEN, NUM_PAL, (void*) number_Pal);
	PA_LoadSpritePal(UP_SCREEN, WORD_PAL, (void*) word_Pal);

	PA_CreateSprite(UP_SCREEN, WORD, (void*) word_Sprite,
				        OBJ_SIZE_32X32, TRUE, WORD_PAL, 8, 22);
	PA_CreateSprite(UP_SCREEN, WORD+1, (void*) word_Sprite,
					        OBJ_SIZE_32X32, TRUE, WORD_PAL, 40, 22);
	PA_CreateSprite(UP_SCREEN, WORD+2, (void*) number_Sprite,
						        OBJ_SIZE_32X32, TRUE, NUM_PAL, 72, 22);
	PA_CreateSprite(UP_SCREEN, WORD+3, (void*) number_Sprite,
						        OBJ_SIZE_32X32, TRUE, NUM_PAL, 97, 22);

	PA_SetSpriteAnim (UP_SCREEN, WORD, 2);
	PA_SetSpriteAnim (UP_SCREEN, WORD+1, 3);
	PA_SetSpriteAnim (UP_SCREEN, WORD+2, MAX_BODY_LENGTH/10);
	PA_SetSpriteAnim (UP_SCREEN, WORD+3, MAX_BODY_LENGTH%10);

	PA_CreateSprite(UP_SCREEN, UPSCRBODY, (void*) man_Sprite,
						OBJ_SIZE_16X32, TRUE, UPSCR_BODY_PAL, 12, 52);
	PA_CreateSprite(UP_SCREEN, UPSCRNUM, (void*) number_Sprite,
							OBJ_SIZE_32X32, TRUE, NUM_PAL, 30, 58);
	PA_SetSpriteAnim (UP_SCREEN, UPSCRNUM, 10);
	PA_CreateSprite(UP_SCREEN, UPSCRNUM+1, (void*) number_Sprite,
								OBJ_SIZE_32X32, TRUE, NUM_PAL, 55, 58);
	PA_CreateSprite(UP_SCREEN, UPSCRNUM+2, (void*) number_Sprite,
								OBJ_SIZE_32X32, TRUE, NUM_PAL, 80, 58);
	PA_StartSpriteAnim(UP_SCREEN,UPSCRBODY,8, 10, 3);


	while (1) {
		PA_SetSpriteAnim (UP_SCREEN, UPSCRNUM+1, length/10);
		PA_SetSpriteAnim (UP_SCREEN, UPSCRNUM+2, length%10);
		vTaskDelay(MSEC2TICK(100));
	}
}
Example #8
0
int main()
{
	int heroX=0;
	srand(time(NULL));
	Dong dong1={rand()%255,0};
	Dong dong2={rand()%255,0};
	Dong dong3={rand()%255,0};
	Dong dong4={rand()%255,0};
	Dong dong5={rand()%255,0};
	Dong dong6={rand()%255,0};
	Dong dong7={rand()%255,0};


	PA_Init();    // Initializes PA_Lib
	PA_InitVBL(); // Initializes a standard VBL

	PA_InitSound();
	PA_PlayMod(modfile);



	// Infinite loop to keep the program running
	while (1)
	{
		int score=0;
		static int scoreRank1=0, scoreRank2=0, scoreRank3=0;
		PA_EasyBgLoad(UP_SCREEN, BG2, mainup);
		PA_EasyBgLoad(DOWN_SCREEN, BG2, Menu);

		int selnum=0;

		selnum = sel_menu();


		if(selnum == 1){
GAMESTART:
			//��������
			PA_EasyBgLoad(UP_SCREEN, BG2, backgroundUp);
			PA_EasyBgLoad(DOWN_SCREEN, BG2, backgroundDown);
			PA_WaitForVBL();
			//ij���� ����
			PA_LoadSpritePal(DOWN_SCREEN,0,(void*)frames_Pal);
			PA_CreateSprite(DOWN_SCREEN,0,(void*)frames_Sprite, OBJ_SIZE_16X32, 1, 0, 128-16, 192-32);

			PA_DualLoadSpritePal(2,(void*)dong_Pal);
			PA_DualLoadSpritePal(3,(void*)dong_Pal);
			PA_DualLoadSpritePal(4,(void*)dong_Pal);
			PA_DualLoadSpritePal(5,(void*)dong_Pal);
			PA_DualLoadSpritePal(6,(void*)dong_Pal);
			PA_DualLoadSpritePal(7,(void*)dong_Pal);
			PA_DualLoadSpritePal(8,(void*)dong_Pal);

			PA_DualCreateSprite(2,(void*)dong_Sprite, OBJ_SIZE_16X16,1,2,0,0);
			PA_DualCreateSprite(3,(void*)dong_Sprite, OBJ_SIZE_16X16,1,3,0,0);
			PA_DualCreateSprite(4,(void*)dong_Sprite, OBJ_SIZE_16X16,1,4,0,0);
			PA_DualCreateSprite(5,(void*)dong_Sprite, OBJ_SIZE_16X16,1,5,0,0);
			PA_DualCreateSprite(6,(void*)dong_Sprite, OBJ_SIZE_16X16,1,6,0,0);
			PA_DualCreateSprite(7,(void*)dong_Sprite, OBJ_SIZE_16X16,1,6,0,0);
			PA_DualCreateSprite(8,(void*)dong_Sprite, OBJ_SIZE_16X16,1,6,0,0);

			/* �ؽ�Ʈ ���� �κ� */
			PA_InitText(UP_SCREEN, BG0);
			PA_SetTextTileCol(UP_SCREEN, 9);

			PA_OutputText(DOWN_SCREEN, 1, 21, "test");
			
			//PA_DualSetSpriteAnim(2,2);
			//PA_DualSetSpriteAnim(3,3);

			while(true){
				if(Pad.Held.Right && heroX<256-16){
					PA_SetSpriteAnim(0,0,1);
					heroX+=10;
				}
				if(Pad.Held.Left && heroX>0){
					PA_SetSpriteAnim(0,0,3);
					heroX-=10;
				}
				PA_SetSpriteXY(DOWN_SCREEN,0,heroX,192-32);
				PA_WaitForVBL();
				//---------------------------------------------------------------
				dong1.y+=10;
				if(dong1.y>410){
					score+=100;
					dong1.y=0;
					dong1.x =rand()%255;

				}
				dong2.y+=11;
				if(dong2.y>410){
					score+=100;
					dong2.y=0;
					dong2.x =rand()%255;

				}
				dong3.y+=12;
				if(dong3.y>410){
					score+=100;
					dong3.y=0;
					dong3.x =rand()%255;

				}
				dong4.y+=13;
				if(dong4.y>410){
					score+=100;
					dong4.y=0;
					dong4.x =rand()%255;

				}
				dong5.y+=14;
				if(dong5.y>410){
					score+=100;
					dong5.y=0;
					dong5.x =rand()%255;

				}
				dong6.y+=15;
				if(dong6.y>410){
					score+=100;
					dong6.y=0;
					dong6.x =rand()%255;

				}
				dong7.y+=16;
				if(dong7.y>410){
					score+=100;
					dong7.y=0;
					dong7.x =rand()%255;

				}
				PA_OutputText(UP_SCREEN, 0, 0, "score = %d",score);


				PA_WaitForVBL();
				PA_DualSetSpriteXY(2,dong1.x,dong1.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(3,dong2.x,dong2.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(4,dong3.x,dong3.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(5,dong4.x,dong4.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(6,dong5.x,dong5.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(7,dong6.x,dong6.y);
				PA_WaitForVBL();
				PA_DualSetSpriteXY(8,dong7.x,dong7.y);

				if(dong1.y>390 && (heroX+16)>dong1.x && heroX<(dong1.x+16))
					break;
				if(dong2.y>390 && (heroX+16)>dong2.x && heroX<(dong2.x+16))
					break;
				if(dong3.y>390 && (heroX+16)>dong3.x && heroX<(dong3.x+16))
					break;
				if(dong4.y>390 && (heroX+16)>dong4.x && heroX<(dong4.x+16))
					break;
				if(dong5.y>390 && (heroX+16)>dong5.x && heroX<(dong5.x+16))
					break;
				if(dong6.y>390 && (heroX+16)>dong6.x && heroX<(dong6.x+16))
					break;
				if(dong7.y>390 && (heroX+16)>dong7.x && heroX<(dong7.x+16))
					break;



			}
			PA_WaitForVBL();
			PA_EasyBgLoad(UP_SCREEN, BG2, gameoverUp); //����ȭ�� gameover
			PA_EasyBgLoad(DOWN_SCREEN, BG2, gameoverDown); //����ȭ�� gameover
			PA_DeleteSprite(DOWN_SCREEN, 0); //���� ������
			PA_DualDeleteSprite(2);  //��������
			PA_DualDeleteSprite(3);  //��������
			PA_DualDeleteSprite(4);  //��������
			PA_DualDeleteSprite(5);  //��������
			PA_DualDeleteSprite(6);  //��������
			PA_DualDeleteSprite(7);  //��������
			PA_DualDeleteSprite(8);  //��������
			PA_InitText(UP_SCREEN, BG0); //�ؽ�Ʈ �ʱ�ȭ
			PA_SetTextTileCol(UP_SCREEN, 9); //�ؽ�Ʈ �� ������ ����
			PA_OutputText(UP_SCREEN, 10, 13, "score = %d",score);
			ret_next(); //�Է´���
			
			//--------�ʱ�ȭ
			if(score>=scoreRank1){ //1��
				scoreRank3=scoreRank2;
				scoreRank2=scoreRank1;
				scoreRank1=score;
			}
			else if(score>=scoreRank2){//2��
				scoreRank3=scoreRank2;
				scoreRank2=score;
			}
			else if(score>=scoreRank3){//3��
				scoreRank3=score;
			}
			score=0;
			dong1.x=rand()%255; dong1.y=0;
			dong2.x=rand()%255; dong2.y=0;
			dong3.x=rand()%255; dong3.y=0;
			dong4.x=rand()%255; dong4.y=0;
			dong5.x=rand()%255; dong5.y=0;
			dong6.x=rand()%255; dong4.y=0;
			dong7.x=rand()%255; dong5.y=0;
			PA_InitText(UP_SCREEN, BG0); //�ؽ�Ʈ �ʱ�ȭ
			PA_WaitForVBL();


		}
		else if(selnum == 2){ //��ũ ȭ��
			PA_WaitForVBL();
			PA_EasyBgLoad(UP_SCREEN, BG2, rankingUp); //����ȭ�� rankingUp
			PA_EasyBgLoad(DOWN_SCREEN, BG2, rankingDown); //����ȭ�� rankingDown
			PA_InitText(UP_SCREEN, BG0); //�ؽ�Ʈ �ʱ�ȭ
			PA_SetTextTileCol(UP_SCREEN, 9); //�ؽ�Ʈ �� ������ ����
			PA_OutputText(UP_SCREEN, 10, 13, "Rank 1! = %d",scoreRank1);
			PA_OutputText(UP_SCREEN, 10, 15, "Rank 2! = %d",scoreRank2);
			PA_OutputText(UP_SCREEN, 10, 17, "Rank 3! = %d",scoreRank3);
			ret_next(); //�Է´���
			PA_InitText(UP_SCREEN, BG0); //�ؽ�Ʈ �ʱ�ȭ
			goto GAMESTART;


		}
		else
			;
		PA_WaitForVBL();
	}

	return 0;
}
void CheckBox::draw()
{	
	PA_SetSpriteAnim(mScreenNum, mSpriteNum, mFrame);
}
void SpecialBox::draw()
{
	PA_SetSpriteAnim(mScreenNum, mSpriteNum, mFrame);
}
Example #11
0
int main() {

    PA_Init();    // Initialisation de la PALib
    PA_InitVBL(); // Initialisation de l'affichage

    splash();

    // Initialisation du texte, de la palette et du son
    PA_LoadDefaultText(0, 0); //bas
    PA_LoadDefaultText(1, 0); //haut
    PA_SetTextTileCol(1, TEXT_BLACK); // texte en noir (haut)
    PA_SetTextTileCol(0, TEXT_BLACK); // texte en noir (bas)
    PA_LoadSpritePal(0, 1, (void*)feu_Pal); // palette du feu
    PA_LoadSpritePal(0, 2, (void*)mario_Pal); //palette pour mario
    PA_LoadSpritePal(0, 3, (void*)boite_Pal); //palette pour la boite
    PA_LoadSpritePal(0, 4, (void*)piece_Pal); //palette pour la piece

    AS_Init(AS_MODE_16CH); //son
    AS_SetDefaultSettings(AS_PCM_8BIT, 8000, 0); //son (type,rate)
    AS_SoundDefaultPlay(fond_smgboss1, fond_smgboss1_size, 50, 64, true, 0); //musique de fond en boucle

    //Accueil
accueil:
    fonduentree(); //fondu d'entrée
    PA_LoadBackground(0, 1, &jeu);
    PA_LoadBackground(1, 1, &titre);
    if(PA_UserInfo.Language == 2) {
        PA_OutputText(0, 3, 6, "Le but est d'appuyer");
        PA_OutputText(0, 3, 7, "sur les boutons le");
        PA_OutputText(0, 3, 8, "plus vite possible.");
        PA_OutputText(0, 3, 9, "Quand vous appuyez sur");
        PA_OutputText(0, 3, 10, "un bouton, votre score");
        PA_OutputText(0, 3, 11, "augmente de un.");
        PA_OutputText(0, 3, 16, "Appuyez sur un bouton");
        PA_OutputText(0, 3, 17, "pour commencer !");
    }
    else {
        PA_OutputText(0, 3, 6, "The aim is to press the");
        PA_OutputText(0, 3, 7, "buttons as fast as you can.");
        PA_OutputText(0, 3, 8, "When a button is pressed,");
        PA_OutputText(0, 3, 9, "it add 1 point to");
        PA_OutputText(0, 3, 10, "your score.");
        PA_OutputText(0, 3, 16, "Press any button to start !");
    }
    PA_WaitFor(Pad.Newpress.Anykey || Stylus.Newpress);

    //Variables
    u32 coups = 0;

    //A vos marques, pret, partez !
    PA_ClearTextBg(0); //efface tout le texte du bas
    PA_VBLCounterStart(0); // compteur

    //A vos marques
    AS_SoundQuickPlay(un);
    PA_CreateSprite(0, 0, (void*)feu_Sprite, OBJ_SIZE_32X64, 1, 1, 200, 30); //feu, sprite 0
    if(PA_UserInfo.Language == 2) {
        PA_OutputText(0, 3, 6, "A vos marques...");
    }
    else {
        PA_OutputText(0, 3, 6, "Ready ?");
    }
    PA_WaitFor(PA_VBLCounter[0]/60 == 2);

    //Pret
    AS_SoundQuickPlay(deux);
    PA_SetSpriteAnim(0, 0, 2);
    if(PA_UserInfo.Language == 2) {
        PA_OutputText(0, 3, 8, "Prêt ?");
    }
    else {
        PA_OutputText(0, 3, 8, "Steady...");
    }
    PA_WaitFor(PA_VBLCounter[0]/60 == 4);


    //Partez
    AS_SoundQuickPlay(trois);
    PA_SetSpriteAnim(0, 0, 1);
    if(PA_UserInfo.Language == 2) {
        PA_OutputText(0, 3, 10, "Partez !");
    }
    else {
        PA_OutputText(0, 3, 10, "Go !");
    }
    PA_WaitFor(PA_VBLCounter[0]/60 == 6);

    PA_ClearTextBg(0); //efface tout le texte du bas
    PA_DeleteSprite(0, 0);
    PA_CreateSprite(0, 1, (void*)mario_Sprite, OBJ_SIZE_32X32, 1, 2, 100, 100); //mario, sprite 1 avec palette 2
    PA_CreateSprite(0, 2, (void*)boite_Sprite, OBJ_SIZE_16X16, 1, 3, 110, 84); //boite, sprite 2 avec palette 3
    PA_CreateSprite(0, 3, (void*)piece_Sprite, OBJ_SIZE_8X16, 1, 4, 114, 68); //boite, sprite 2 avec palette 3
    PA_VBLCounterStart(1); //compteur pour la partie à venir

    while(1) {
        PA_OutputText(0, 3, 7, "Score : %d", coups);
        if(PA_UserInfo.Language == 2) {
            PA_OutputText(0, 3, 6, "Partie en cours...");
            PA_OutputText(0, 3, 8, "Temps : %d ", 20-(PA_VBLCounter[1]/60));
        }
        else {
            PA_OutputText(0, 3, 6, "Game in progress...");
            PA_OutputText(0, 3, 8, "Time : %d ", 20-(PA_VBLCounter[1]/60));
        }
        //Incrémentation du score si la partie n'est pas fini
        if((Pad.Newpress.A || Pad.Newpress.B || Pad.Newpress.X || Pad.Newpress.Y || Pad.Newpress.L || Pad.Newpress.R || Stylus.Newpress || Pad.Newpress.Left || Pad.Newpress.Right || Pad.Newpress.Up || Pad.Newpress.Down) && PA_VBLCounter[1]/60 < 20) {
            PA_SetSpriteAnim(0, 1, 1); //fait sauter mario
            PA_SetSpriteAnim(0, 3, 1); //fait apparaitre une piece
            coups++;
        }

        //Lors du relachement des touches/stylet, les sprites reviennent a la normale
        if(Pad.Released.Anykey || Stylus.Released) {
            PA_SetSpriteAnim(0, 1, 0);//mario revient au sol
            PA_SetSpriteAnim(0, 3, 0); //et la piece disparait
        }

        //Fin de la partie
        if(PA_VBLCounter[1]/60 == 20) {
            //On efface le txt et les sprites
            PA_ClearTextBg(0);
            PA_DeleteSprite(0, 1);
            PA_DeleteSprite(0, 2);
            PA_DeleteSprite(0, 3);
            if(PA_UserInfo.Language == 2) {
                PA_OutputText(0, 3, 6, "Partie terminée !");
                PA_OutputText(0, 3, 7, "Votre score : %d", coups);
                PA_OutputText(0, 3, 9, "Appuyez sur une touche");
                PA_OutputText(0, 3, 10, "pour rejouer...");
            }
            else {
                PA_OutputText(0, 3, 6, "End of the game !");
                PA_OutputText(0, 3, 7, "Your score : %d", coups);
                PA_OutputText(0, 3, 9, "Press a button to");
                PA_OutputText(0, 3, 10, "replay...");
            }
            PA_WaitFor(PA_VBLCounter[1]/60 == 22);
            PA_WaitFor(Pad.Newpress.Anykey || Stylus.Newpress);
            goto accueil;
        }
        PA_CheckLid();
        PA_WaitForVBL();
    }

    return 0;
}
Example #12
0
File: main.c Project: hl1itj/Team8
/* 게임 */
void scr_Game() {
	/* 타이머 변수_초. */
	int lastcount;      // 이전 초.
	int currentcount;   // 현재 초.
	u8 pressed = FALSE;

	PA_Init();
	PA_InitVBL();

	PA_LoadBackground(UP_SCREEN, BG3, &up); // 상단 디스플레이-타이틀화면 설정.
	PA_LoadBackground(DOWN_SCREEN, BG3, &down); // 하단 디스플레이-타이틀화면 설정.
	PA_InitText(UP_SCREEN, BG2);
	PA_SetTextTileCol(UP_SCREEN, TEXT_BLACK);
	/* 배경음악 플레이 */
	if ( isplaying==FALSE ) {
			UnLoad_Sound();
			AS_SoundDefaultPlay((u8*)bgm, (u32)bgm_size, 127, 64, TRUE, 0);
			isplaying = TRUE;
		}

	while (1) {
		int i;
		status = 0;
		lastcount = currentcount = 0;
		stageTime = 30;		    // 스테이지  제한시간
		memoryTime = 10;
		scr_Stage(uinfo.userStage);

		PA_OutputText(UP_SCREEN, 10, 2, "Stage :  %d", uinfo.userStage);
		PA_OutputText(UP_SCREEN, 10, 5, "Score :  %d", uinfo.userScore);
		PA_OutputText(UP_SCREEN, 10, 7, "Time  :  %d", memoryTime);

		PA_LoadSpritePal(UP_SCREEN, BLOCKPAL, (void*) Block_Pal);	// 블럭 정보 스프라이트 팔레트
		PA_LoadSpritePal(DOWN_SCREEN, BLOCKPAL, (void*) Block_Pal); // 게임 블럭 스프라이트 팔레트

		for( i = 0; i < 5; i++){
		PA_CreateSprite(UP_SCREEN, i, (void*) Block_Sprite, OBJ_SIZE_32X32, 1,
				BLOCKPAL, (40*i)+32, 135);
		PA_SetSpriteAnim(UP_SCREEN, i, i);
		}

		view_block(); //블럭 보여줌
		PA_VBLCountersReset(); // 카운터 초기화.
		PA_VBLCounterStart(0); // 카운터 시작.

		while (1) { // 보여주는 시간
			/* 카운터 초기화 및 시작 */
			currentcount = (PA_VBLCounter[0] / 60);
			if (lastcount != currentcount) {
				memoryTime -= (currentcount - lastcount);
				lastcount = currentcount;
				PA_ClearTextBg(UP_SCREEN);
				PA_OutputText(UP_SCREEN, 10, 2, "Stage :  %d", uinfo.userStage);
				PA_OutputText(UP_SCREEN, 10, 5, "Score :  %d", uinfo.userScore);
				PA_OutputText(UP_SCREEN, 10, 7, "Time  :  %d", memoryTime);
			}
			if(memoryTime == 0){
				block_init(); // 블럭 초기화
				break ; // 0이하가 되면 본게임으로
			}
			PA_WaitForVBL();
		}
		//vTaskResume(Touch_Task);
		PA_OutputText(UP_SCREEN, 10, 7, "Time  :  %d", stageTime);
		while (1) { //일단 잘못 누르면 게임 오버로 만들기.
			//버튼 인식 받고 그 정보로 메모리 성공, 실패, 게임중 선택 하는 함수 추가
			/* 카운터 초기화 및 시작 */
			currentcount = (PA_VBLCounter[0] / 60);
			if (lastcount != currentcount) {
				stageTime -= (currentcount - lastcount);
				lastcount = currentcount;
				PA_ClearTextBg(UP_SCREEN);
				PA_OutputText(UP_SCREEN, 10, 2, "Stage :  %d", uinfo.userStage);
				PA_OutputText(UP_SCREEN, 10, 5, "Score :  %d", uinfo.userScore);
				PA_OutputText(UP_SCREEN, 10, 7, "Time  :  %d", stageTime);
			}
			if (stageTime == 0 || status == 1)
				return; //게임 나가기
			if (Stylus.Newpress) {
				for (i = 0; i < 16; i++) {
					if ((pressed == FALSE) && PA_SpriteTouched(i)) {
						status = block_reload(i);
						pressed = TRUE;
					} else if ((pressed == TRUE) && !PA_SpriteTouched(i)) {
						pressed = FALSE;
					}
				}
			}
			if(check_win()){
				++uinfo.userStage;
				break;
			}
			PA_WaitForVBL();
		}
		vTaskSuspend(Touch_Task);
	}
}
Example #13
0
File: main.c Project: hl1itj/Team8
/* 게임 */
void scr_Game() {
	int lastcount; 		// 이전 초
	int currentcount;	// 현재 초

	PA_Init();
	PA_InitVBL();

	AS_SoundDefaultPlay((u8*) bgm, (u32) bgm_size, 127, 64, TRUE, 0);

	while (1) {
		int i;
		lastcount = currentcount = 0;
		stageTime = 30; // 스테이지  제한시간
		memoryTime = 10;
		UnLoad_Screen();

		PA_LoadBackground(UP_SCREEN, BG3, &up); 	// 상단 디스플레이-타이틀화면 설정.
		PA_LoadBackground(DOWN_SCREEN, BG3, &down); // 하단 디스플레이-타이틀화면 설정.
		PA_InitText(UP_SCREEN, BG2);
		PA_SetTextTileCol(UP_SCREEN, TEXT_RED);

		userBlock_init();
		scr_Stage(uinfo.userStage);
		Memory_info();
		PA_LoadSpritePal(UP_SCREEN, BLOCKPAL, (void*) Block_Pal); 	// 블럭 정보 스프라이트 팔레트
		PA_LoadSpritePal(DOWN_SCREEN, BLOCKPAL, (void*) Block_Pal); // 게임 블럭 스프라이트 팔레트

		for (i = 0; i < 5; i++) { // 위 화면에 블럭의 변화를 보여주는 sprite 생성
			PA_CreateSprite(UP_SCREEN, i, (void*) Block_Sprite, OBJ_SIZE_32X32,
					1, BLOCKPAL, (40 * i) + 32, 135);
			PA_SetSpriteAnim(UP_SCREEN, i, i);
		}

		view_block();
		PA_VBLCountersReset(); // 카운터 초기화.
		PA_VBLCounterStart(0); // 카운터 시작.

		while (1) {
			currentcount = (PA_VBLCounter[0] / 60);
			if (lastcount != currentcount) { // 메모리 타임 체크
				memoryTime -= (currentcount - lastcount);
				lastcount = currentcount;
				Memory_info();
			}
			if (memoryTime == 0) { // 0이하가 되면 본게임으로
				AS_SoundDefaultPlay((u8*) blind, (u32) blind_size, 80, 64, FALSE,0);
				PA_DeleteSprite(DOWN_SCREEN, BLOCKPAL);
				block_init(); // 블럭 초기화
				break;
			}
			if (NDS_SWITCH() == KEY_START)
				memoryTime = 0;
			PA_WaitForVBL();
		}

		Gaming_info();

		while (1) {
			currentcount = (PA_VBLCounter[0] / 60);
			if (lastcount != currentcount) { // 게임 시간 체크
				stageTime -= (currentcount - lastcount);
				lastcount = currentcount;
				Gaming_info();
			}
			if (stageTime <= 0) { //게임 나가기
				UnLoad_Sound();
				return;
			}
			if (Stylus.Newpress) {
				for (i = 0; i < BLOCKS_NUM; i++){
					if (PA_SpriteTouched(i)) block_reload(i);
				}
			}
			if (check_clear()) { 	// 게임 진행 상태 체크
				uinfo.userStage++; // 스테이지 업
				AS_SoundDefaultPlay((u8*) stageup, (u32) stageup_size, 45, 64, FALSE,0);
				break;
			}
			PA_WaitForVBL();
		}
	}
}