c++でゲームを作ろうとしています。そこで敵クラスから自機クラスの関数を呼ぶ必要が出てきました。
少し前の同じようなスレッドを読み、そのかたの参考にしていたサイト()。そこで敵クラスから自機クラスの関数を呼ぶ必要が出てきました。
少し前の同じようなスレッドを読み、そのかたの参考にしていたサイト(https://bituse.info/game/shot/13)も見てみましたがうまくいきません。
そこで改めて同じような質問をさせて頂きます、ご容赦ください。
具体的な内容に入ります。
まず環境を述べます。OSはWindows、コンパイラはVisual Studio、ライブラリはOpensiv3dです。
今までcを使っていて最近c++を使い始めました。基本的なクラスの概念が理解できる程度です。また、ポインタはアドレスを持つことを知っている程度であまり使えません。c++の設計を今回の簡単なゲームを通して学ぼうと思っています。
設計はGameクラスの中にPlayerクラスのインスタンスplayer,Enemyクラスのインスタンスの配列enemyです。
またGameクラスはOpensiv3dのシーンマネージャーという機能から呼ばれるため、GameクラスがMyAppを継承していたり、独自のコンストラクタがありますが内容はGameクラス自体で完結しているので影響はないと思いますが念のため書かせていただいてます。また、Arrayは動的配列です。
以下コードです。関係がないところは割愛しています。
Game.hpp
#include"Player.hpp"
#include"Enemy.hpp"
class Game: public MyApp::Scene{
private:
Player player;
Array<Enemy*> enemy;
public:
Game(const InitData& init);
void update() override;
void draw() const override;
}
#include"Game.hpp"
Game::Game(const InitData& init)
: IScene(init){
}
void Game::update()
{
player.update();
for (size_t i = 0; i < enemy.size(); i++) {
enemy[i]->update();
}
}
void Game::draw(){
}
Player.cpp
Enemy.hpp
Enemy.cpp
#include"Enemy.hpp"
void Enemy::update(){
}
void Enemy::draw()const{
}
void Enemy::shot(){
//ここでplayerの情報を扱いたいです。
}
よろしくお願いいたします。