第13講 シューティングゲーム開発(完成まで)
第8話 完成したシューティングゲームの全コードその1
完成ゲームの全コード
ファイル構成

001
atarihantei.cpp

#include"main.h"
void gamemain() {
  atarihantei();
  ufo(); //UFOの位置を計算して、その場所にUFOを描く社員 将来的には当たったら消えるようにする仕事も担当する
  syujinkou(); //主人公の位置を計算して、その場所に主人公(ヒロイン)を描く社員
  tamawoutu(); //弾を発射させる社員
  tama(); //弾の位置を計算して、その位置に弾を描く社員
  SetFontSize(32); //フォントサイズを32に変更
  DrawFormatString(450, 800, siro, "ゲームスコア:%d", tokuten); // 文字を描画する
}
gamemain.cpp
#include"main.h"
void gamemain() {
  atarihantei();
  ufo(); //UFOの位置を計算して、その場所にUFOを描く社員 将来的には当たったら消えるようにする仕事も担当する
  syujinkou(); //主人公の位置を計算して、その場所に主人公(ヒロイン)を描く社員
  tamawoutu(); //弾を発射させる社員
  tama(); //弾の位置を計算して、その位置に弾を描く社員
  SetFontSize(32); //フォントサイズを32に変更
  DrawFormatString(450, 800, siro, "ゲームスコア:%d", tokuten); // 文字を描画する
}
jyu.cpp
#include"main.h"
//jyu(じゅう) taisyoutonarukey(たいしょうとなるきー)
//対象となるキーが直前に押されておらず、今押されている場合にそのキーを押したと判定する関数
//キーが押されたと判定:1 キーが押されていないと判定:0
char jyu(int taisyoutonarukey) { //taisyoutonarukey(たいしょうとなるキー)は、今対象としているキーの出席番号
  if (CheckHitKey(taisyoutonarukey) != 0) {
    if (taisyoutonarukey_mae[taisyoutonarukey] == 0) {
      taisyoutonarukey_mae[taisyoutonarukey] = 1;
      return 1;
    }
  }
  else {
    taisyoutonarukey_mae[taisyoutonarukey] = 0;
    return 0;
  }
  return 0;
}
kachi.cpp
#include"main.h"
void kachi() {
  SetFontSize(65); //フォントサイズを65に変更
  DrawBox(0, 0, 800, 1000, mizuiro, true);
  DrawFormatString(100, 100, kiiro, "ヾ(^v^)k"); // 文字を描画する
  DrawFormatString(100, 300, kiiro, "ゲームクリアです"); // 文字を描画する
  SetFontSize(32); //フォントサイズを65に変更
  DrawFormatString(20, 500, siro, "ゲームを再開するときはZキーを、"); // 文字を描画する
  DrawFormatString(20, 540, siro, "ゲーム初期画面に戻るときはQキー"); // 文字を描画する
  DrawFormatString(20, 580, siro, "を押してください。"); // 文字を描画する
  if (jyu(KEY_INPUT_Z) != 0) {
    syokika();
    m = 1;
  }
  if (jyu(KEY_INPUT_Q) != 0) {
    syokika();
    m = 0;
  }
}
main.cpp
#include"main.h"
char ufo_arunasi[20][20]; //UFOが ある:1 ない:0 とする
char tama_arunasi[100]; //弾が ある:1 ない:0 とする]
char tamakazu; //弾を数える変数
int tama_x[100], tama_y[100]; //弾の横位置と縦位置
float ufo_hayasa; //UFOの降りる速さ
int syujinkou_x, syujinkou_y; //主人公(ヒロイン)の横位置と縦位置
int ufo_yokosu=10 , ufo_tatesu=8; //UFOの横数と縦数
int ufo_yokohaba; //UFOの横幅
float ufo_tatehaba; //UFOの縦幅
int syujinkou_yokohaba, syujinkou_tatehaba; //主人公(ヒロイン)の横幅と縦幅
int tama_hankei; //弾の大きさ
int tama_yokohoukouhayasa; //弾の横方向の速さ
int tama_tatehoukouhayasa; //弾の縦方向の速さ
int syujinkou_hayasa; //主人公(ヒロイン)の速さ
int tama_x_houkou; //弾の方向
int tama_y_houkou; //弾の方向
int kiiro; //黄色の出席番号収納する箱
int aka; //黄色の出席番号収納する箱
int midori; //緑色の出席番号収納する箱
int ao; //青色の出席番号収納する箱
int siro; //白色の出席番号収納する箱
int mizuiro; //水色の出席番号収納する箱
int tokuten; //とくてん ゲームの得点をカウントする箱(変数)
int kosu; //UFO個数
int m; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオー主人公(ヒロイン) 3:ゲールクリア
float aki; //天井から主人公(ヒロイン)上端までの空きの大きさ
int ongaku; //BGMの出席番号を入れる箱
char taisyoutonarukey_mae[200];
//たいしょうとなるキーのまえ
//対象となるキーが直前に押されている:1 押されていない:0
int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) {
  ChangeWindowMode(true); //ウィンドウモードの切り替え
  SetGraphMode(800, 1000, 32); //ウインドウサイズの変更
  if (DxLib_Init() == -1)return(-1); // DXライブラリ初期化処理

  m = 0; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオー主人公(ヒロイン) 3:ゲームクリア
  

  SetDrawScreen(DX_SCREEN_BACK); //裏画像を描画対象に加える
  while (ScreenFlip() == 0 && ProcessMessage() == 0 && ClearDrawScreen() == 0) {
    switch (m) { //mはゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオー主人公(ヒロイン) 3:ゲールクリア
    case 0:
      saisyonogamen(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
      break;
    case 1:
      gamemain(); //ゲームを進行させる社員(関数)
      break;
    case 2:
      make(); //まけ ゲームオーバを描く社員(関数)
      break;
    case 3:
      kachi(); //かち ゲームクリアを描く社員(関数)
      break;
default:
      break;
    }
  }

  WaitKey(); // キー入力待ち
  DxLib_End(); // DXライブラリ終了処理
  return 0;
}
(申し訳ございません。Caseと大文字が入っていました。
このままだとエラーします。正しくは、caseです。
2017/07/14に訂正しました。)



第7話へ   第9話へ

第2部トップへ  第1部トップへ


初心者のための excel 2016 マクロ VBA 入門講義 基
礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための]世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップ