---ここから雑談---
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