第13講 シューティングゲーム開発(完成まで)
第10話 完成したシューティングゲームの全コードその3
完成ゲームの全コード
ファイル構成
ufo.cpp
#include"main.h"
void ufo() {
int i, j, a;
for (i = 0; i < ufo_tatesu; i++) {
for (j = 0; j < ufo_yokosu; j++) {
if (ufo_arunasi[i][j] == 1) {
int ufo_gazou = LoadGraph("画像/ufo.png"); //UFO画像を読み込み出席番号を付けて番号を箱に収納
DrawGraph(ufo_yokohaba*j, ufo_tatehaba*(float)i+aki, ufo_gazou, true); //UFO画像を描く
DeleteGraph(ufo_gazou); //UFO出席番号収納箱の削除
if (ufo_tatehaba*(float)i + aki > 830) {
m = 2;
}
}
}
}
aki += ufo_hayasa;
}
atarihantei.h
void atarihantei();
//あたりはんてい 主人公(ヒロイン)への当たりの判定を行い主人公(ヒロイン)に対応するa[?][?]に0を代入する
gamemain.h
void gamemain(); //ゲームを進行させる社員
jyu.h
char jyu(int taisyoutonarukey);
//jyu(じゅう) taisyoutonarukey(たいしょうとなるきー)
//対象となるキーが直前に押されておらず、今押されている場合にそのキーを押したと判定する関数
//キーが押されたと判定:1 キーが押されていないと判定:0
tama.h
void kachi(); //かち ゲームクリアを描く社員(関数)
kachi.h
void kachi(); //かち ゲームクリアを描く社員(関数)
main.h
#include"kachi.h"
#include"ufo.h"
#include"syokika.h"
#include"jyu.h"
#include"tamawoutu.h"
extern char ufo_arunasi[20][20]; //UFOが ある:1 ない:0 とする
extern char tama_arunasi[100]; //弾が ある:1 ない:0 とする
extern char tamakazu; //弾数を数える変数
extern int tama_x[100], tama_y[100]; //弾の横位置と縦位置
extern float ufo_hayasa; //UFOの降りる速さ
extern int syujinkou_x, syujinkou_y; //主人公(ヒロイン)の横位置と縦位置
extern int ufo_yokosu , ufo_tatesu ; //UFOの横数と縦数
extern int ufo_yokohaba; //UFOの横幅
extern float ufo_tatehaba; //UFOの縦幅
extern int syujinkou_yokohaba , syujinkou_tatehaba; //主人公(ヒロイン)の横幅と縦幅
extern int tama_hankei; //弾の大きさ
extern int tama_yokohoukouhayasa; //弾の横方向の速さ
extern int tama_tatehoukouhayasa; //弾の縦方向の速さ
extern int syujinkou_hayasa; //主人公(ヒロイン)の速さ
extern int tama_x_houkou; //弾の方向
extern int tama_y_houkou; //弾の方向
extern int kiiro; //黄色の出席番号収納する箱
extern int aka; //黄色の出席番号収納する箱
extern int midori; //緑色の出席番号収納する箱
extern int ao; //青色の出席番号収納する箱
extern int siro; //白色の出席番号収納する箱
extern int mizuiro; //水色の出席番号収納する箱
extern int tokuten; //とくてん ゲームの得点をカウントする箱(変数)
extern int kosu; //UFO個数
extern int m; //ゲームの状態 0:ゲーム始め 1:ゲーム 2:ゲームオー主人公(ヒロイン) 3:ゲールクリア
extern float aki; //天井から主人公(ヒロイン)上端までの空きの大きさ
extern int ongaku; //BGMの出席番号を入れる箱
extern char taisyoutonarukey_mae[200];
//たいしょうとなるキーのまえ
//対象となるキーが直前に押されている:1 押されていない:0
make.h
void make(); //まけ ゲームオーバを描く社員(関数)
saisyonogame.h
void saisyonogamen(); //さいしょのがめん ゲームの初期画面を描く社員(関数)
syokika.h
void syokika(); //しょきか 最初は主人公(ヒロイン)がすべて存在している状態にする。
syujinkou.h
void syujinkou();
//syujinkou(主人公(ヒロイン))の位置を計算して、その位置に主人公(ヒロイン)を描く仕事する社員(関数)
tama.h
void tama(); //syujinkou(主人公(ヒロイン))の位置を計算して主人公を描く社員
tamawoutu.h
void tamawoutu(); //弾を撃つ社員
ufo.h
void ufo();
//syujinkou(主人公(ヒロイン))と区別するためにblock(主人公(ヒロイン))をufo(しかく)とする。ufo用の位置を表す変数はsy、ufo_xとする。
尚、コードをよく見るとufo_xとufo_yは一度も使われていませんでしたので、
削除してあります。
完成はしました。
しかし、第13講第1話で述べましたように、
改良の余地はたくさんあります。
そこで、第14講はシューティングゲームの高度化というテーマで、
シューティングゲームをより楽しいものに変えていきましょう。
第14講第1話の課題を出しておきます。
主人公のサイズを変えるために主人公をからに変更してください。
を右クリックして『大砲.png』というファイル名で画像フォルダに保存してください。
の縦幅(syujinkou_tatehaba)は40ですし、
縦幅(syujinkou_yokohaba)は36です。
さらに、ufo.cppを改造して、
UFOから赤色の弾が発射されるようにしてください。
赤玉は、UFOの3倍の速さで真下に落ちてくるものとします。
この際に
int ufo_yokohaba;
もfloat型に変更します。
すべて置換で問題なく置換できますから、
置換しておいてください。
第9話へ 第14講第1話へ
第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 入門 サイト 基礎から応用まで
本サイトトップ