---ここから雑談---
C言語の基礎の勉強はしたのですが、なかなか全部は覚えられませんでした。(涙
ですがっ!けどC言語でゲームを作りたいので、おとといからゲームにも挑戦してしまいました。^^;
これからはゲームを作りながら参考書や、こちらのサイトやその他の参考サイトを参考に
頭の足りない所を、できるだけ埋めて行きたいと思います。
以前、質問させて頂いた時に、とある方にご指導頂いた(ご指導ありがとうございました。)
・じゃんけんゲームのような簡単な遊びをするゲーム
・簡単なアクションゲーム
・チャットをするソフト
私が作りたいゲームの勉強方法を、上記の様にご指導頂きました。
もちろん私の作りたいゲームができなくても、自爆なのでお気にされないで下さい。
自分が作りたいゲームに向かって、勉強してみます。<俺の、青春かい?w
---ここまで雑談(謝---
パソコンと、じゃんけんをするゲームを作ってます。
勝ち負けの判定は、まだです。
キーボードの「1」を押すと、自分は「グー」
キーボードの「2」を押すと、自分は「チョキ」
キーボードの「3」を押すと、自分は「パー」
1~3のキーを押すと
PCはランダムに「グー・チョキ・パー」の何れかを表示します。
#include "DxLib.h" #define HAIKEI "img/haikei001.jpg" //背景画像 #define JYANxITI 315 /* 自分側のじゃんけん画像 */ #define MYGOO "img/goo.png" #define MYTYOKI "img/tyoki.png" #define MYPAA "img/paa.png" /* PC側のじゃんけん画像 */ #define PCGOO "img/goo2.png" #define PCTYOKI "img/tyoki2.png" #define PCPAA "img/paa2.png" char keybuf[256]; int mynum, pc_rand, pcnum; //mynum pcnum は勝ち負けの判定に使う予定 void myjyan(); void pcjyan(); int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode(TRUE); //ウィンドウモードに変更する関数 if (DxLib_Init() == -1) //初期化処理する関数 return -1; LoadGraphScreen(0, 0, HAIKEI, FALSE); //#define HAIKEI 背景画像 DrawFormatString(520, 463, GetColor(100, 100, 255), "%s", "ムンじゃんけん"); //タイトル表示 while (1){ GetHitKeyStateAll(keybuf); //すべてのキーの状態を得る if (keybuf[KEY_INPUT_ESCAPE] == 1) //Escキー押すと終了 break; if (ProcessMessage() == -1) //エラーが起きたら終了 break; myjyan(); //自分じゃんけん関数 pcjyan(); //PCじゃんけん関数 } DxLib_End(); //終了処理をする関数 return 0; } void myjyan() //自分じゃんけん関数 { if (keybuf[KEY_INPUT_1] == 1){ LoadGraphScreen(JYANxITI, 390, MYGOO, TRUE); //数字1で自分グー画像 DrawFormatString(JYANxITI, 463, GetColor(100, 100, 255), "%s", "グー"); //自分グー表示 mynum = 1; //勝ち負け判定予定の変数 } else if (keybuf[KEY_INPUT_2] == 1){ LoadGraphScreen(JYANxITI, 390, MYTYOKI, TRUE); //数字2で自分チョキ画像 DrawFormatString((JYANxITI - 10), 463, GetColor(100, 100, 255), "%s", "チョキ"); //自分チョキ表示 mynum = 2; //勝ち負け判定予定の変数 } else if (keybuf[KEY_INPUT_3] == 1){ LoadGraphScreen(JYANxITI, 390, MYPAA, TRUE); //数字3で自分パー画像 DrawFormatString(JYANxITI, 463, GetColor(100, 100, 255), "%s", "パー"); //自分パー表示 mynum = 3; //勝ち負け判定予定の変数 } } void pcjyan() //PCじゃんけん関数 { if (keybuf[KEY_INPUT_1] == 1 || keybuf[KEY_INPUT_2] == 1 || keybuf[KEY_INPUT_3] == 1){ pc_rand = GetRand(2); //PCじゃんけんランダム Sleep(300); //押しっぱなし対策(1/600秒間) if (pc_rand == 0){ LoadGraphScreen(JYANxITI, 250, PCGOO, TRUE); //PCグー画像 pcnum = 1; //勝ち負け判定予定の変数 }else if (pc_rand == 1){ LoadGraphScreen(JYANxITI, 250, PCTYOKI, TRUE); //PCチョキ画像 pcnum = 2; //勝ち負け判定予定の変数 }else if (pc_rand == 2){ LoadGraphScreen(JYANxITI, 250, PCPAA, TRUE); //PCパー画像 pcnum = 3; //勝ち負け判定予定の変数 } } }このプログラムを実行して、「1」「2」「3」の何れかの数字をキーボードから入力して
じゃんけんをするのですが、じゃんけんを繰り返すと
自分側の画像も、PC側の画像も重なって表示されてしまいます。
「グー」「チョキ」「パー」の文字も重なります。
2回目以降に、じゃんけんをした時に、画像が重ならない様にしたいのです。
どの様に対処したらいいでしょうか?
ご指導の程お願い致します。
修正・追加<_ _>
ライブラリ:DXライブラリ
PC:Windows VISTA
開発環境:VC++ 2008