第13講 シューティングゲーム開発(完成まで)
第9話 完成したシューティングゲームの全コードその2
完成ゲームの全コード
ファイル構成
make.cpp
#include"main.h"
void make() {
SetFontSize(65); //フォントサイズを65に変更
DrawBox(0, 0, 800, 1000, ao, true);
DrawFormatString(100, 100, siro, "(>_<)"); // 文字を描画する
DrawFormatString(100, 300, siro, "ゲームオーバです"); // 文字を描画する
SetFontSize(32); //フォントサイズを32に変更
DrawFormatString(20, 500, kiiro, "ゲームを再開するときはZキーを、"); // 文字を描画する
DrawFormatString(20, 540, kiiro, "ゲーム初期画面に戻るときはQキー"); // 文字を描画する
DrawFormatString(20, 580, kiiro, "を押してください。"); // 文字を描画する
if (jyu(KEY_INPUT_Z) != 0) {
syokika();
m = 1;
}
if (jyu(KEY_INPUT_Q) != 0) {
syokika();
m = 0;
}
}
saisyonogamen.cpp
#include"main.h"
void saisyonogamen() {
DrawBox(0, 0, 800, 1000, siro, true);
int gazou;
gazou = LoadGraph("画像/02.png");
DrawGraph(0, 0, gazou, false);
//ufo_hayasa = 1.0;
if (jyu(KEY_INPUT_A) == 1) {
ufo_hayasa = 1.0;
}
if (jyu(KEY_INPUT_B) == 1) {
ufo_hayasa = 1.2;
}
if (jyu(KEY_INPUT_C) == 1) {
ufo_hayasa = 1.5;
}
if (jyu(KEY_INPUT_Z) == 1) {
syokika();
m = 1;
}
}
syokika.cpp
#include"main.h"
void syokika() {
int i, j;
//UFOがすべてあるに設定
for (i = 0; i < ufo_tatesu; i++) {
for (j = 0; j < ufo_yokosu; j++) {
ufo_arunasi[i][j] = 1;
}
}
for (i = 0; i < 100; i++) {
tama_arunasi[i] = 0; //弾がないに設定
}
tamakazu = 0; //弾数0に設定
syujinkou_tatehaba = 172; //主人公(ヒロイン)の縦幅
syujinkou_yokohaba = 92; //主人公(ヒロイン)の横幅
syujinkou_x = 0; //主人公(ヒロイン)の最初の横位置
syujinkou_y = 1000- syujinkou_tatehaba; //主人公(ヒロイン)の最初の縦位置
syujinkou_hayasa = 8; //主人公(ヒロイン)の速さ
tama_x[tamakazu] = syujinkou_x+syujinkou_yokohaba/2; //弾の初期の横位置
tama_y[tamakazu] = 1000-syujinkou_tatehaba; //弾の初期の縦位置
tama_x_houkou = 1; //弾の横方向の最初の向き
tama_y_houkou = -1; //弾の縦方向の最初の向き
tama_hankei = 6; //弾の大きさ(半径)
tama_yokohoukouhayasa = 0; //弾の横方向の速さ
tama_tatehoukouhayasa = 12; //弾の縦方向の速さ
aki = 0.0; //天井から主人公(ヒロイン)上端までの距離
kiiro = GetColor(255, 255, 0); //黄色に出席番号を割り振りその番号を箱kiiroに収納
aka = GetColor(255, 0, 0); //黄色に出席番号を割り振りその番号を箱kiiroに収納
midori = GetColor(0, 255, 0); //緑色に出席番号を割り振りその番号を箱midoriに収納
ao = GetColor(0, 0, 255); //青色に出席番号を割り振りその番号を箱aoに収納
siro = GetColor(255, 255, 255); //白色に出席番号を割り振りその番号を箱siroに収納
mizuiro = GetColor(0, 200, 200); //水色に出席番号を割り振りその番号を箱mizuiroに収納
tokuten = 0; //とくてん 0に初期
ufo_yokosu = 10;
kosu = ufo_yokosu*ufo_tatesu; //UFO個数 ufo_yokosu:UFO横数 ufo_tatesu:UFO縦数
ufo_yokohaba = 800 / ufo_yokosu; //ufo_yokohaba:UFO横幅 ufo_yokosu:主人公(ヒロイン)横数
ufo_tatehaba = 2.0*(float)ufo_yokohaba/3.0; //主人公(ヒロイン)縦幅
syujinkou_hayasa = 8; //主人公(ヒロイン)の速さ
}
syujinkou.cpp
#include"main.h"
void syujinkou() {
if (CheckHitKey(KEY_INPUT_RIGHT) != 0 && syujinkou_x + syujinkou_yokohaba
<= 800) {
syujinkou_x = syujinkou_x + syujinkou_hayasa; //syujinkou_x:主人公の横位置 syujinkou_hayasa:移動の速さ
}
if (CheckHitKey(KEY_INPUT_LEFT) != 0 && syujinkou_x >= 0) {
syujinkou_x = syujinkou_x - syujinkou_hayasa; //syujinkou_x:主人公の横位置 syujinkou_hayasa:移動の速さ
}
int syujinkou_gazou= LoadGraph("画像/h00.png"); //ヒロイン画像を読み込み、画像の出席番号を付けて番号を箱に収納
DrawGraph(syujinkou_x, syujinkou_y, syujinkou_gazou, true); //ヒロインを描く
//syujinkou_x:主人公の左端の横位置 syujinkou_yokohaba:主人公の横幅 syujinkou_tatehaba:主人公の縦幅
DeleteGraph(syujinkou_gazou); //ヒロイン出席番号収納箱の削除
}
tama.cpp
#include"main.h"
void tama() { //弾の位置を計算して、その位置に弾を描く社員
for (int i = 0; i < 100; i++){
if (tama_arunasi[i] == 1) {
DrawCircle(tama_x[i], tama_y[i], tama_hankei, kiiro, true); //弾を描く
tama_x[i] += tama_yokohoukouhayasa * tama_x_houkou; //tama_x:弾の横位置 tama_yokohoukouhayasa:弾横方向の速さ
tama_y[i] += tama_tatehoukouhayasa * tama_y_houkou; //tama_y:弾の縦位置 tama_tatehoukouhayasa:弾縦方向の速さ
}
}
}
tamawoutu.cpp
#include"main.h"
//弾を撃つ社員
void tamawoutu() {
if (jyu(KEY_INPUT_SPACE) == 1) {
tama_arunasi[tamakazu] = 1; //弾がある状態に設定
PlaySoundMem(LoadSoundMem("音/発射.mp3"), DX_PLAYTYPE_BACK); // 発射音を発生させる
tama_x[tamakazu] = syujinkou_x + syujinkou_yokohaba / 2;
tama_y[tamakazu] = 1000 - syujinkou_tatehaba;
tamakazu++;
if (tamakazu == 100)tamakazu = 0;
}
}
第8話へ 第10話へ
第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 入門 サイト 基礎から応用まで
本サイトトップ