とりあえずコンパイルを通し、インデントを整えてみました。
コード:
// -------------------- クラスの中身はわからないので、辻褄が合うように適当に。
struct GameObject {
int data;
};
struct Int {
int deeta;
Int(){}
Int(int d):deeta(d){}
Int& operator=(GameObject* g){deeta=g->data;return *this;}
Int& operator*(){return *this;}
int getx()const{return deeta;}
int gety()const{return deeta;}
void attacked(int a){deeta-=a;}
int getdamage()const{return deeta;}
};
const int TRUE = 1;
// -------------------- こちらにこのヘッダは無いのでコメントアウト
//#include "GameObject.h"
class HitEvent{
public:
HitEvent(){};
HitEvent(GameObject* adress11,GameObject* adress12){
adress1=adress11;adress2=adress12;}
Int adress1;
Int adress2;
Int hitcheck();//当たり判定の関数
// -------------------- 使用されているのに用意されていないので適当に追加
int hitcheck(int x,int y)const{return x==y?TRUE:TRUE-1;}
// -------------------- 宣言があるのに実体が無いので削除(引数の型から判別できないのでオーバーロードできない?)
//int hit();//当たったらどうするか
Int hit(); // -------------------- 実体があるのに宣言が無いので追加
}; // -------------------- セミコロンを追加
Int HitEvent::hit(){
// -------------------- 余計なカッコがある
//if (hitcheck((*adress1).getx(),(*adress2).gety()/*省略*/))==TRUE){
if (hitcheck((*adress1).getx(),(*adress2).gety()/*省略*/)==TRUE){
(*adress1).attacked((*adress2).getdamage());
//adress2も同じ処理
return 1;
}
return 0;
}
// -------------------- コンパイルだけでなくリンクもできるようにするためのダミー
int main(void){return 0;}
Artery さんが書きました:敵、自機クラスはGameObjectクラスを継承してattacked関数をオーバーロードしているのですが、
うまくいきません
どうすればいいのでしょうか
まずは何がどううまくいかないのかを説明するといいと思います。
敵、自機クラスのソースコードも貼っていただけるとわかりやすくなるかもしれません。