2016 ソフトウェア設計及び演習用の班Wiki

gr07::ヘッダーファイル

main.h

#ifndef MAIN_H
#define MAIN_H

#include"DxLib.h"
#include<iostream>
#include<string>
#include<sstream>
#include<cmath>
#include"Class.h"

static int stateKey[256];
static int KeyCheck(){
char GetHitKeyState_all[256];
GetHitKeyStateAll(GetHitKeyState_all);
for(int i=0;i<256;i++){
if(GetHitKeyState_all[i]==1)stateKey[i]++;
else
stateKey[i]=0;
}
return 0;
}
static int Key(unsigned char Handle){
return stateKey[Handle];
}

#endif

Class.h

#ifndef CLASS_H
#define CLASS_H

#define G 9.806/200
#define BS 50 //ブロックサイズ
#define GS 50 //ガンちゃんサイズ
#define ES 50 // 敵サイズ
#define Bulletsize 10 //弾幕サイズ
#define MS 4 //最大速度
#define Acce 0.3 //加速度
#define Field_block 10 //フィールド作成の最小単位
#define bullet_speed 3 //敵の攻撃速度
#define enemy_number_e 13
#define enemy_number_h 91

class Field{
public:
int fx, fy; // フィールドのx,y座標
char f_data_e[48][358]; // フィールドのデータ easy
char f_data_h[48][358]; // フィールドのデータ hard
bool change; // フィールド切り替えフラグ
};

class Sound{
public:
void bgm_s(int soundhandle);
void se_s(int soundhandle);

int bgm[5]; // 0:title 1:main 2:success 3: fault
int se[10];

void Soundload(bool jadge); // true:bgm false:se
void Soundload();
//

};

class Chara{
public: double cx, cy; // がんちゃんの座標 double dx, dy; // がんちゃんの速度

double fieldx; // ガンちゃんのフィールド座標
double screenx; // ガンちゃんのスクリーン座標

int tanix[10], taniy[10]; // 単位のあたり判定 メインからコピー

//init()で初期化する変数 //******************************************************************* int block_cnt; // ブロックの表示数
int block_timer[3]; // ブロックの表示時間 180>timeで消滅
bool endtimeflag[3]; // ブロックの消滅フラグ
int block_x[3], block_y[3];

short pass; // がんちゃんの方向 0:right 1:left

int calc_t; // 落下時間
double dx_t; // x方向速度の絶対値
double dy_t;

int M_cnt; // 機械攻撃の攻撃回数
int M_time[3]; // 機械攻撃の移動用時間変数
bool matkflag[3]; // 機械攻撃の攻撃フラグ
int Mx[3]; // 機械攻撃の座標x
//int My[3]; // 機械攻撃の座標y
int M_inix[3]; // 機械攻撃の初期座標x
int M_iniy[3]; // 機械攻撃の初期座標y
short local_pass[3]; //

int E_time; // 電撃攻撃の攻撃用時間変数
int E_cool_time; // 電撃攻撃のクールタイム
bool eatkflag; // 電撃攻撃の攻撃フラグ
//*******************************************************************

int state; // がんちゃんの形態
int time; // 経過した時間

int blocknum; // ブロックの配置数
int block(); // ブロック制御関数

int calc(char field[48][358]); // 移動制御
int e_h_mode; // easy hard の敵の数

void Eatk(); // 電気攻撃処理の計算
void Matk(); // 機械攻撃処理の計算

void init(); // 初期化関数

Chara(); // コンストラクタ
~Chara(){}; // デストラクタ

};

class Graph_Handle{ //画像表示用ハンドル用
public: int sample; int map_e; // easy mode map
int map_h; // hard mode map
int csv_e; // easy mode csv
int csv_h; // hard mode csv

int g_graph[20]; // ganchan graphic
int e_graph[4]; // enemy graphic
int u_graph[8]; // unit graphic
int thunder; // thunder effect
int gear; // gear graphic
int block; // block graphic

Graph_Handle();
~Graph_Handle();

};

class Enemy{
public: int ex, ey; // 敵の座標
double screenx, screeny; // 敵のスクリーン座標
double bulletx[3], bullety[3]; // 敵の攻撃の座標 int state; // 敵の状態 0:未出現 1:出現 2:倒された
int score; // 敵の持つスコア
bool atkflag; // 敵の攻撃フラグ 初期化用
bool atkcalcflag[3]; // 敵の攻撃フラグ 計算用
int life; // 敵のライフ

int g_timer; //画像切り替え用タイマー

int place; // 敵の位置 0:空中 1:地上

double atkx[3], atky[3]; // 敵の攻撃時の座標
int time; // 攻撃制御用タイマー

void atk(Graph_Handle*g_load,Chara *chara); // 敵状態の攻撃
void hit(Chara *chara); // 敵の当たり判定

int chara_hit(Chara *chara); // あたり判定

void clear(); // クリア関数

Enemy();

};

class Gmain : public Field{ public:

int loop(); // loop関数
virtual void ini(); // 初期化関数
virtual void title(); // タイトル関数
virtual void main(Graph_Handle *g_load, Chara *chara, Enemy *enemy); // メイン関数
virtual void result(); // 結果表示関数

int state; // 現在の関数情報を格納
int tani; // 取得単位数

int score; // 現ゲームのスコア

int clearflag; // クリアflag 0:default 1:false 2:clear

int timer; // ゲーム時間

int tanix_e[10]; int taniy_e[10]; // 単位の座標 イージーモード

int tanix_h[10]; int taniy_h[10]; // 単位の座標 ハードモード

int taniflag[10]; // 単位のフラグ

int loadcnt; // loadの読み込み回数

int e_h_mode; // easy hard modeの切り替え

double fieldx, fieldy; // フィールド上でのがんちゃんの絶対座標

Sound music;

int menu_state; //メニューの状態
int score_easy; //easyモードのスコア
int score_hard; //hardモードのスコア
int highscore_easy; //easyモードのハイスコア
int highscore_hard; //hardモードのハイスコア
int game_level; bool mode; // windowモード切替
int record; //進級or留年の判別
int new_record; //result画面にハイスコアの表示

bool startflag; bool endflag;

void graph(Graph_Handle *g_load); // 画像表示関数
void load(Graph_Handle *g_load,Enemy *enemy_e,Enemy *enemy_h); // 画像読み込み関数

Gmain(); // コンストラクタ ~Gmain(){}; // デストラクタ };

class Connect{ void server() {}; void cliant() {};

Connect() {}; ~Connect() {}; };

#endif


最終更新日:2016/07/29 14:01:35