IDEはVisual Studio 2017です。
//ヘッダ名はdefine.hです。
#include <windows.h>
//プレイヤーの速度
#define PLAYER_SPEED 4;
//メッセージボックス
#define MSG(m){\
MessageBox(NULL,m,"メッセージ",MB_OK);}
//extern宣言してkey配列用意
extern char key[256];
//10Pixel余裕を持たせるための変数を用意
#define MARGIN 10;
//背景スクロール係数
#define SCROLL_SPEED 2;
//一画面に表示する弾数の最大値
#define PSHOT_NUM 20;
//弾の速度
#define PSHOT_SPEED 14;
//弾用の構造体宣言
struct SHOT {
bool flag;
double x;
double y;
//グラフィックハンドル
int gh;
//画像の幅高さ
int width, height;
};
//プレイヤーの行動関係のクラス
//ヘッダ名はplayer.h
#include "define.h"
class PLAYER {
private:
//画像のx,y座標を設定
double x, y;
//画像幅
int width, height;
//グラフィックハンドル
int gh[12];
//移動係数
float move;
//カウント
int xcount, ycount;
//要素のためのやつ
int ix, iy, result;
//生きてるかどうかのフラグ
bool life;
//弾用配列
SHOT shot[PSHOT_NUM]; //']'が必要ですとエラーが出る。
//カウント
int count;
private:
void Move();
void Draw();
void Shot();
public:
PLAYER();
void All();
};
//PLAYERクラスメンバ関数の定義
#include "pch.h" //pch.hではデラックスライブラリとdefine.hをインクルードしています。
#include "player.h"
//コンストラクタの定義は省略させていただきます
void PLAYER::Draw()
{
//弾描写
for (int i = 0; i < PSHOT_NUM; i++) {
if (shot[i]).flag){ //shotに式にはブール型を使用する必要があります、「.」に式が必要ですとエラー。
DrawGraph(shot[i].x - shot[i].width / 2, shot[i].y - shot[i].height / 2, shot[i].gh, TRUE);
}
} //ここのカッコに';'が必要ですとエラー。
//描写
if (life) {
DrawGraph(x - width / 2, y - height / 2, gh[result], TRUE);
}
}
//Shot関数の定義
void PLAYER::Shot()
{
if (key[KEY_INPUT_Z] == 1 && count % 6 == 0) {
for (int i = 0; i < PSHOT_NUM; ++i) { //PSHOT_NUMの後の;に式が必要ですとエラー。
if (shot[i].flag == false) {
shot[i].flag = true;
shot[i].x = x;
shot[i].y = y;
break;
}
}
}
//弾の移動制御
for (int i = 0; i < PSHOT_NUM; ++i) { //PSHOT_NUMの後の;に式が必要ですとエラー
if (shot[i].flag) {
shot[i].y -= PSHOT_SPEED;
//画面の外に言ったら消す
if (shot[i].y < 10) {
shot[i].flag = false;
}
}
}
}