#やりたいこと
C++とDxライブラリを用いてシューティングゲームを作成しているのですが、クラスのコンストラクタからの引数の指定がうまくいきません。
エラーは発生せずに実行できますが、応答停止ウィンドウが出てきて停止してしまいます。引数から敵を簡単に作れるようにしたいのですが・・・
引数の指定や記述法で誤った部分があれば、教えてください。
こちらのサイトを参考に作らせていただきました。
開発環境はVisual Studio 2013です。
#出来ている部分
現在はプレイヤーの動きと弾の発射、背景の描画は出来ています。
Control関数を用いて全体の関数をコントロール、Dxライブラリ管理用のpchファイルも作成してあります。
敵以外の記述に関してはスラッシュで隠しています。
####Control.cpp
c++
1#include "pch.h" 2#include "control.h" 3 4CONTROL::CONTROL() 5{ 6 //プレイヤークラスの生成 7 //player = new PLAYER; 8 //back = new BACK; 9 ENEMY enemy(-20, 0, 3);//引数の指定 10} 11 12CONTROL::~CONTROL() 13{ 14 //プレイヤークラスの解放 15 //delete player; 16} 17 18void CONTROL::All() 19{ 20 //back->All(); 21 //player->All(); 22 enemy->All(); 23}
####Control.h
c++
1//#include "player.h" 2//#include "BACK.h" 3#include "enemy.h" 4 5class CONTROL{ 6private: 7 //プレイヤークラスのポインタ 8 //PLAYER *player; 9 //BACK *back; 10 ENEMY *enemy; 11 12public: 13 CONTROL(); 14 ~CONTROL(); 15 void All(); 16};
####pch.cpp
c++
1#include "pch.h"
####pch.h
c++
1//警告を消すための記述 2#pragma warning(disable:4244) 3#define _CRT_SECURE_NO_WARNINGS 4 5//DXライブラリとdefine.hの取り込み 6#include "DxLib.h" 7#include "define.h"
#出来ていない部分
敵に関するクラスの設定がうまくできていないようです。
敵に関する記述がされているソースコードを載せます。プレイヤーや他のコード部分の情報が必要な場合は連絡ください。
####enemy.cpp
c++
1#include "pch.h" 2#include "enemy.h" 3 4ENEMY::ENEMY(int ex, int ey ,int espeed) 5{ 6 /*LoadDivGraph("images/enemy.png", 3, 1, 3, 27, 25, gh);*/ 7 gh = LoadGraph("images/enemy.png"); // 画像のロード 8 9 GetGraphSize(gh, &width, &height); 10 11 x = ex; 12 y = ey; 13 x_speed = espeed; 14} 15 16void ENEMY::Move() 17{ 18 x = x + x_speed; 19 20 if (x > 600) 21 { 22 x_speed = -3; 23 x_speed = +x_speed; 24 } 25 else if (x < 0) 26 { 27 x_speed = 3; 28 x_speed = +x_speed; 29 } 30 else; 31} 32 33void ENEMY::Draw() 34{ 35 DrawGraph(x, y, gh, TRUE); 36} 37 38void ENEMY::All() 39{ 40 Move(); 41 Draw(); 42 /*++count; 43 return endflag;*/ 44}
####enemy.h
c++
1class ENEMY{ 2private: 3 int x, y; 4 int gh; 5 6 int width, height,x_speed; 7 8public: 9 ENEMY(int ex, int ey ,int espeed);//コンストラクト 10 void Move(); 11 void Draw(); 12 void All(); 13 14};
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。