Ejemplo n.º 1
0
void LoopFunction()
{
	if (hooked == false)
	{
		DWORD VTable[3] = { 0 };
		while (GetModuleHandleA("d3d9.dll") == NULL)
		{
			Sleep(250);
		}
		DX_Init(VTable);
		HOOK(EndScene, VTable[0]);
		while (!nm_pD3Ddev)
		{
			Sleep(50);
		}
		UNHOOK(EndScene, VTable[0]);
		*(PDWORD)&pEndScene = VTable[0];
		CreateThread(NULL, 0, &VMT_Patching, NULL, 0, NULL); //Create hooking thread
		hooked = true;
	}
}
Ejemplo n.º 2
0
void Game::Play(){//ゲーム全体の各処理
  int zx, zy,check=0;

  DX_Init(true, zx, zy,check);//DX初期化
  if (check == -1){
    return;
  }
  int Title_BG = Load_Title_Rand();//背景決め

  while (1){
    //デバッグコマンド
    //1-タイトル
    //2-本編
    //3-途中経過
    //4-ゲーム終了
    if (CheckHitKey(KEY_INPUT_1)){
      Change_Phase(GAME_TITLE);
    }
    if (CheckHitKey(KEY_INPUT_2)){
      Change_Phase(GAME_PLAY);
    }
    if (CheckHitKey(KEY_INPUT_3)){
      Change_Phase(GAME_PAUSE);
    }
    if (CheckHitKey(KEY_INPUT_4)){
      Change_Phase(GAME_END);
    }

    switch (game_phase){

    case 1://タイトル
      ClearDrawScreen();//描画、画面初期化

      DrawGraph(0, 0, Title_BG, false);//背景描画

      ScreenFlip();//描画、画面切り替え 

      break;

    case 2://本編
      ClearDrawScreen();//描画、画面初期化

      Mouse mouse;

      GetMousePoint(&mouse.x, &mouse.y);
      //田んぼ
      DrawFillBox(20, 20, 620, 520, Colors::Brown);
      //ステータス
      DrawFillBox(20, 560, 1004, 748, Colors::White);
      //ボタン
      if (Mouse_Sq(660, 20, 300, 100, mouse)){
        DrawFillBox(660, 20, 960, 120, Colors::Red);
      }
      else DrawFillBox(660, 20, 960, 120, Colors::White);

      if (Mouse_Sq(660, 140, 300, 100, mouse)){
        DrawFillBox(660, 140, 960, 240, Colors::Blue);
      }
      else DrawFillBox(660, 140, 960, 240, Colors::White);

      if (Mouse_Sq(660, 260, 300, 100, mouse)){
        DrawFillBox(660, 260, 960, 360,Colors::Green);
      }
      else DrawFillBox(660, 260, 960, 360, Colors::White);

      if (Mouse_Sq(660, 380, 300, 100, mouse)){
        DrawFillBox(660, 380, 960, 480, Colors::Yellow);
      }
      else DrawFillBox(660, 380, 960, 480, Colors::White);

      ScreenFlip();//描画、画面切り替え 

      break;

    case 3://途中経過
      ClearDrawScreen();//描画、画面初期化

      DrawFillBox(zx, zy, zx + 20, zy + 20, 0xff00ff);

      ScreenFlip();//描画、画面切り替え 

      break;

    case 4://ゲーム終了
      ClearDrawScreen();//描画、画面初期化

      DrawFillBox(zx, zy, zx + 20, zy + 20, 0xffff00);

      ScreenFlip();//描画、画面切り替え 

      break;
    }
  }
}