Exemplo n.º 1
0
int Draw(Screen *screen){//   メイン描画処理
    ClsDrawScreen();
    //printfDx("テスト1\n");
    DrawScene(screen);//ステージを描画させる
	ScreenFlip();
    return DRAW_SUCCESS;
}
Exemplo n.º 2
0
void sort(int bl[],int x){
	int tmp;//一時
	int cmp=0,swp=0;//比較、交換	
	int i, j;//ループ用
		
	for(i=0;i<x;i++){//x=20
		for(j=0;j<(x-1)-i;j++){
			SetDrawScreen(DX_SCREEN_BACK); // 描画先を裏画面へ
			ClsDrawScreen(); //裏画面消去
			cmp++;//比較+1			



			if(bl[j]>bl[j+1]){
				swp++;//交換+1
				tmp =bl[j];
				bl[j]=bl[j+1];
				bl[j+1]=tmp;
			}



			showHeader(cmp, swp);//ヘッダー表示
			showGraph(bl, ARRAY_SIZE, j);//表示

			//_sleep(10);

			ScreenFlip();                           // 裏画面を表画面へ
			

		}
	}
	///////////////////////////////////////////////

}
Exemplo n.º 3
0
//*********************************************************
//	ゲームメイン処理
//*********************************************************
void	 GameMain(void)
{

	ClsDrawScreen();

	// 背景
	DrawBox(0, 0, WIN_W, WIN_H, WHITE, TRUE);

	//文字(会話)設定-----------------------------
	// 描画する文字列の文字セットを変更
	ChangeFont("07やさしさゴシック");
	//文字サイズ
	SetFontSize(20);
	//--------------------------------------------

	//コミットテスト用の表示
	DrawFormatString(100, 100, BLACK, "やさしさゴシックフォントで表示TEST");

	ScreenFlip();
}
Exemplo n.º 4
0
int WindowMode()
{
	#define CMOVE 90
	#define TIP 200
	#define END 200 + CMOVE
	
	int CursorX;
	int CursorY;
	
	int Graph;
	int CursorGraph;
	
	
	 //キー関係-------
    int Key;
    int BeforeInput;
    int UpInput;
    int DownInput;
    //--------------
	
	CursorX = 100;
	CursorY = TIP;
	
	
	Graph = LoadGraph("graphic/WindowMode.png");
	CursorGraph = LoadGraph("graphic/handicon.png");
	
	SetDrawScreen(DX_SCREEN_BACK);
	
	while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0)
	{
	   BeforeInput = Key;
    	
       Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); 
    	
       UpInput = ~Key & BeforeInput;
       DownInput = Key & ~BeforeInput;
       
		ClsDrawScreen();
				
		DrawGraph(0, 0, Graph, TRUE);
		
		DrawGraph(CursorX, CursorY, CursorGraph, TRUE);
		
		if(DownInput & PAD_INPUT_DOWN)
		{
			PlayEffect(SelectSound);
			CursorY += CMOVE;
		}
		
		if(DownInput & PAD_INPUT_UP)
		{
			PlayEffect(SelectSound);
			CursorY -= CMOVE;
		}
		
		if(CursorY < TIP)
		{
			CursorY = TIP;
		}
		
		if(CursorY > END)
		{
			CursorY = END;
		}
		
		if(CursorY==TIP && DownInput & PAD_INPUT_A)
		{
			PlayEffect(EnterSound);
					
			ChangeWindowMode(FALSE);

			return Title();
		}
		
		if(CursorY==END && DownInput & PAD_INPUT_A)
		{
			PlayEffect(EnterSound);
    
			ChangeWindowMode(TRUE);

			return Title();
		}
		
		ScreenFlip();		
	}	
}
Exemplo n.º 5
0
int Tutorial(void)
{
    int Color;
    int MovingGraph;//操作方法グラフィック
    int PItemExplainGraph;//プラスアイテム説明グラフィック
    int MItemExplainGraph;//マイナスアイテム説明グラフィック
    int GameGraph;//ゲーム画面説明グラフィック
    int WordBeforeGameGraph;//ゲーム画面前文字グラフィック
    int GameRuleGraph;//ゲームグラフィック説明グラフィック
    int ScoreExGraph; //スコア計算方法説明グラフィック
    
    int PageUpSound; //ページ進み音
    int PageDownSound; //ページ戻り音
    
     //キー関係-------
    int Key;
    int BeforeInput;
    int UpInput;
    int DownInput;
    //--------------
    
    int tutorialcounter;//ゲーム画面の出す順
    
    Color = GetColor(255,255,255);
    
    MovingGraph = LoadGraph("graphic/moving.png");
    PItemExplainGraph = LoadGraph("graphic/ItemExplain(Plus).png");
    MItemExplainGraph = LoadGraph("graphic/ItemExplain(Minus).png");
    GameGraph = LoadGraph("graphic/GameScreen.png");
    WordBeforeGameGraph = LoadGraph("graphic/GameExplain(Word).png");
    GameRuleGraph = LoadGraph("graphic/GameRule.png");
    ScoreExGraph = LoadGraph("graphic/Score.png");
    
    PageUpSound = LoadSoundMem("sound/pageup.wav");
    PageDownSound = LoadSoundMem("sound/pagedown.wav");
    
    tutorialcounter = 0;
    
    SetDrawScreen(DX_SCREEN_BACK);
    
    while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0)
    {
       BeforeInput = Key;
    	
       Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); 
    	
       UpInput = ~Key & BeforeInput;
       DownInput = Key & ~BeforeInput;
       
       ClsDrawScreen();

       if(DownInput & PAD_INPUT_A)
       {
        	tutorialcounter++; 
        	PlayEffect(PageUpSound);
        	WaitTimer(50);
       }
       
       if(DownInput & PAD_INPUT_B)
       {
           tutorialcounter--;
           PlayEffect(PageDownSound);
           WaitTimer(50);
       }
       
       if(tutorialcounter < 0)
       {
          PlayEffect(CancelSound);
          
          StopEffect(TitleMusic);

           Title();
       }
       
       if(tutorialcounter > 6)
       {
       		StopEffect(TitleMusic);

       		Title();
       }
       
       switch(tutorialcounter)
       {
       		case 0:
       		{
       		   DrawGraph(0, 0, MovingGraph, TRUE);
       		   break;
       		}
       		
       		case 1:
       		{
       		   DrawGraph(0, 0, WordBeforeGameGraph, TRUE);
       		    break;
       		}
       		
       		case 2:
       		{
       		   DrawGraph(0, 0,GameGraph, TRUE);
       		    break;
       		}
       		
       		case 3:
       		{
       			DrawGraph(0, 0,ScoreExGraph, TRUE);
       			break;
       		}
       		
       		case 4:
       		{
       		    DrawGraph(0, 0,PItemExplainGraph, TRUE);   
       		     break;
       		}
       		
       		case 5:
       		{
       		    DrawGraph(0, 0,MItemExplainGraph, TRUE);
       		     break;

       		}
       		
       		case 6:
       		{
       		    DrawGraph(0, 0,GameRuleGraph, TRUE);
       		    break;

       		}
       		
       }
       
       ScreenFlip();
       
    }
}
Exemplo n.º 6
0
int LevelSelect()
{
	#define CMOVE 214
	#define LEVEL_TIP  3
	#define LEVEL_END  431
		
	#define MENU_X 2	
	#define MENU_Y 380
	
	int Color;
	
	int SelectGraph;
	
	int CursorGraph;
	
	int CursorX;
	int CursorY;
	
	Color = GetColor(0,0,0);
	
	CursorGraph = LoadGraph("graphic/LevelSelect_C.png");
	SelectGraph = LoadGraph("graphic/LevelSelect.png");
	
	CursorX = MENU_X;
	CursorY = 61;
	
	SetDrawScreen(DX_SCREEN_BACK);
	
	while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
    {
    	int Key;
    	int BeforeInput;
    	int UpInput;
    	int DownInput;
    	
    	BeforeInput = Key;
    	
    	Key = GetJoypadInputState(DX_INPUT_KEY_PAD1); 
    	
    	UpInput = ~Key & BeforeInput;
    	DownInput = Key & ~BeforeInput;
    	
    	ClsDrawScreen();
    	
    	DrawGraph(0, 0, SelectGraph, TRUE);
    	
    	DrawGraph(CursorX, CursorY, CursorGraph, TRUE);	
    	
    	if(DownInput & PAD_INPUT_B)
    	{
    		PlayEffect(CancelSound);
    		StopEffect(LevelSelectMusic);
    		 Title();
    	}
    	
    	if(DownInput & PAD_INPUT_LEFT)
    	{
    		CursorX -= CMOVE;
    		PlayEffect(SelectSound);
    	}
    	
    	if(DownInput & PAD_INPUT_RIGHT)
    	{
    		CursorX += CMOVE;
    		PlayEffect(SelectSound);
    	} 
    	
    	if(CursorX == LEVEL_TIP)
    	{
    		if(DownInput & PAD_INPUT_A)
    		{	             
    			PlayEffect(EnterSound);
    			
    			StopEffect(LevelSelectMusic);
    			
    			LevelEasy();
    			
    			ActMain();
    			
    			return 0;
    		}
    	}
    	
    	if(CursorX == LEVEL_TIP + CMOVE)
    	{
	             
    		if(DownInput & PAD_INPUT_A)
    		{
    			PlayEffect(EnterSound);
    			
    			StopEffect(LevelSelectMusic);
    			
    			LevelNormal();
    			
    			ActMain();
    			
    			return 0;
    		}
    	}
    	
    	if(CursorX == LEVEL_TIP + CMOVE*2)
    	{
    		
    		if(DownInput & PAD_INPUT_A)
    		{
    		 	PlayEffect(EnterSound);

	    		StopEffect(LevelSelectMusic);

    			LevelHard();
    			
    			ActMain();
    			
    			return 0;
    		}
    	}
    	
    	if(CursorX < LEVEL_TIP)
    	{
    		CursorX = LEVEL_TIP;
    	}
    	
    	if(CursorX > LEVEL_END)
    	{
    		CursorX = LEVEL_END;
    	}

    	ScreenFlip();
    }
}
Exemplo n.º 7
0
int Title()
{
	#define WORD_SIZE 20
    #define CMOVE 40
	#define TITLE_TIP 350
    #define TITLE_END TITLE_TIP + CMOVE * 2
    
    int TitleGraph; //タイトルグラフィックハンドル
    int CursorGraph; //カーソルグラフィックハンドル
    
    int TutorialGraph[9];
       
    int Color;
    
    //キー関係-------
    int Key;
    int BeforeInput;
    int UpInput;
    int DownInput;
    //--------------
    
    int CursorX; 
    int CursorY;
    
	TitleMusic = LoadSoundMem("sound/Title.ogg");//タイトルBGM
	LevelSelectMusic = LoadSoundMem("sound/levelselect.ogg");
	
	EnterSound = LoadSoundMem("sound/decide.wav");
    SelectSound = LoadSoundMem("sound/select.wav");
    CancelSound = LoadSoundMem("sound/cancel.wav");
    
    TitleGraph = LoadGraph("graphic/Title.png");
    CursorGraph = LoadGraph("graphic/handicon.png");
    
    LoadDivGraph("graphic/chip.png", 10, 2, 5, 32, 32, TutorialGraph); 
    
    Color = GetColor(0, 0, 0);
    
    SetFontSize(WORD_SIZE);
    
    //カーソル位置の初期化
    CursorX = 165;
    CursorY = TITLE_TIP;
    
    SetDrawScreen(DX_SCREEN_BACK);
    
    	    PlayEffectLoop(TitleMusic);

    
    

    while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE) ==0)
    {
	    ClsDrawScreen();
	    
	     
	    BeforeInput = Key;
	    
	    Key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
	    
	    UpInput = ~Key & BeforeInput;
	    DownInput = Key & ~BeforeInput;
	    
	    if(DownInput & PAD_INPUT_UP)
	    {
	       CursorY -= CMOVE;
	       
	       PlayEffect(SelectSound);
	    }
	 
	    if(DownInput & PAD_INPUT_DOWN)
	    {
	       CursorY += CMOVE;
	       PlayEffect(SelectSound);
	    }
	 
	    if(CursorY<=TITLE_TIP) 
	    {
	       CursorY = TITLE_TIP;
	       
	         if(DownInput & PAD_INPUT_A)
	         {
	             StopEffect(TitleMusic);
	             
	             PlayEffect(EnterSound);
	             
	             PlayEffectLoop(LevelSelectMusic);
	                          
	             LevelSelect();
	             
	             return 0;
	             
	         } 
    
	    }
	    
	    if(CursorY == TITLE_TIP + CMOVE)
	    {
	        if(DownInput & PAD_INPUT_A)
	        {
	        	PlayEffect(EnterSound);
	        	
	        	return Tutorial();
	        }
	    }
	    
	 
	    if(CursorY>=TITLE_END)
	    {
	        CursorY = TITLE_END;
	    
	          if(DownInput & PAD_INPUT_A)
	          {
	             StopEffect(TitleMusic);
	             
	             exit(0);
	          }
	    }
	    
         DrawGraph(0, 0, TitleGraph, TRUE);
         
         DrawGraph(CursorX, CursorY, CursorGraph, TRUE);
             
         //画面の表示
         ScreenFlip();
         
    }
}    
Exemplo n.º 8
0
int Main()
{
	int Color;
	
	int check_data[] =
	{
		10.0, 15.0, 20, 25, 30, 40,
	};
		
	PlayerGraph = LoadGraph("human.png");
	BallGraph = LoadGraph("0055.png");
	BackGraph = LoadGraph("");
	
	Color = GetColor(255, 255, 255);
	
	GetGraphSize(PlayerGraph, &PlayerSizeX, &PlayerSizeY);
	GetGraphSize(BallGraph, &BallSizeX, &BallSizeY);
	
	PlayerX = 0;
	PlayerY = 325;
	
	BallX = 0;
	BallY = 50;
	
	Second = 0;
    Minute = 0;
    Hour = 0;
    
    Index = 0;
    
	SetDrawScreen(DX_SCREEN_BACK);
	
	while(ProcessMessage()==0 && CheckHitKey(KEY_INPUT_ESCAPE)==0)
	{
		int Key;
		
		Key = GetJoypadInputState(DX_INPUT_KEY_PAD1);
		
		playertop = PlayerY ;
    	playerbottom = PlayerY + PlayerSizeY;
	    playerleft = PlayerX ;
	    playerright = PlayerX + PlayerSizeX;
	    
	    balltop    = BallY ;
	    ballbottom = BallY + BallSizeY;
	    ballleft   = BallX ;
	    ballright  = BallX + BallSizeX;
	    
	    
				
		ClsDrawScreen();
		
		if(Key & PAD_INPUT_LEFT)
		{
			PlayerX -= 4;
		}
		
		if(Key & PAD_INPUT_RIGHT)
		{
			PlayerX += 4;
		}
		
		if(PlayerX < LEFT_EDGE)
		{
			PlayerX = LEFT_EDGE;
		}
		
		if(PlayerX > RIGHT_EDGE)
		{
			PlayerX = RIGHT_EDGE;
		}
		
		BallX += BallVx;
		BallY += BallVy;
		
		if(BallX < LEFT_EDGE)
		{
			BallX = LEFT_EDGE;
			BallVx = -BallVx;
		}
		
		if(BallX  > RIGHT_EDGE)
		{
			BallX = RIGHT_EDGE;
			BallVx = -BallVx;
		}
		
		if(BallY > BOTTOM)
		{
			BallY = BOTTOM;
			BallVy = -BallVy;
		}
		
		if(BallY < 0)
		{
			BallY = 0;
			BallVy = -BallVy;
		}
		
			
		Time();
		
		if(Minute==check_data[Index])
		{
			if(BallVx < 0)
			{
				BallVx -= 1;
			}
			
			if(BallVx > 0)
			{
				BallVx += 1; 
			}
			
			if(BallVy < 0)
			{
				BallVy -= 1;
			}
			
			if(BallVy > 0)
			{
				BallVy += 1;
			}
			
			Index++;
		}
		
		Temp();
		
	   if(playertop < ballbottom &&
	      playerbottom > balltop &&
	      playerleft < ballright &&
	      playerright > ballleft )
	   {
		return 0;
	  }
	
		
		//DrawFormatString(50, 50, Color, "Temp; %2f", Temperature);
		
		DrawGraph(PlayerX, PlayerY, PlayerGraph, TRUE);
		
		DrawGraph(BallX, BallY, BallGraph, TRUE);
		
		DrawGraph(0, 0, BackGraph, TRUE);
		
		DrawBox(playerleft, playertop, playerright, playerbottom, Color, TRUE); 

        DrawBox(ballleft, balltop, ballright, ballbottom, Color, TRUE); 
		
		ScreenFlip();
	}
}
Exemplo n.º 9
0
// アクションサンプルプログラムメイン
int ActMain(void)
{
	// 描画先を裏画面にセット
	SetDrawScreen(DX_SCREEN_BACK);

	// 垂直同期信号を待たない
	SetWaitVSyncFlag(FALSE);

	// プレイヤーの座標を初期化
	PlX = 320.0F;        PlY = 240.0F;

	// プレイヤーの落下速度を初期化
	PlDownSp = 0.0F;

	// ジャンプ中フラグを倒す
	PlJumpFlag = FALSE;

	// 入力状態の初期化
	Input = 0;
	EdgeInput = 0;

	// 60FPS固定用、時間保存用変数を現在のカウント値にセット
	FrameStartTime = GetNowCount();

	// メインループ開始、ESCキーで外に出る
	while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0)
	{drawPlayer();
		// 画面のクリア
		ClsDrawScreen();

		// 1/60秒立つまで待つ
		while (GetNowCount() - FrameStartTime < 1000 / 60){}

		// 現在のカウント値を保存
		FrameStartTime = GetNowCount();

		// 入力状態を更新
		{
			int i;

			// パッド1とキーボードから入力を得る
			i = GetJoypadInputState(DX_INPUT_KEY_PAD1);

			// エッジを取った入力をセット
			EdgeInput = i & ~Input;

			// 入力状態の保存
			Input = i;
		}

		// プレイヤーの移動処理
		{
			float MoveX, MoveY;

			// 移動量の初期化
			MoveX = 0.0F;
			MoveY = 0.0F;

			// 左右の移動を見る
			if ((Input & PAD_INPUT_LEFT) != 0) MoveX -= SPEED;
			if ((Input & PAD_INPUT_RIGHT) != 0) MoveX += SPEED;

			// 地に足が着いている場合のみジャンプボタン(ボタン1 or Zキー)を見る
			if (PlJumpFlag == FALSE && (EdgeInput & PAD_INPUT_A) != 0)
			{
				PlDownSp = -JUMP_POWER;
				PlJumpFlag = TRUE;
			}

			// 落下処理
			PlDownSp += G;

			// 落下速度を移動量に加える
			MoveY = PlDownSp;

			// 移動量に基づいてキャラクタの座標を移動
			CharMove(&PlX, &PlY, &PlDownSp, MoveX, MoveY, CHAR_SIZE, &PlJumpFlag);
		}
		
		drawMap();
		

		// キャラクタの描画
		DrawBox((int)(PlX - CHAR_SIZE * 0.5F), (int)(PlY - CHAR_SIZE * 0.5F),
			(int)(PlX + CHAR_SIZE * 0.5F) + 1, (int)(PlY + CHAR_SIZE * 0.5F) + 1,
			GetColor(255, 0, 0), TRUE);

		// 画面の更新
		ScreenFlip();
	}

	// 終了
	return 0;
}