[26章]ボスの移動について
Posted: 2011年8月03日(水) 15:00
26章を参考に、ボスを表示させてみたのですが、ボスがふわふわと移動しません。
ショットが当たると、hpが減っているようなので、当たり判定に問題はなさそうです。
弾幕もちゃんと撃てています。
心当たりがあるのは、メモリ節約のために構造体のデータ型を変更していたところぐらいです。
以下にsturuct.hの内容を示します。
ちなみにch_tの構造体だけtypedef struct ~{};ではなくstruct {}ch_t;となっているのは前者の書き方だとコンパイルエラーが出たからです。
コンパイラはBorland C++ Compiler 、OSはwindows 7 64bit です。
初歩的な質問かも知れませんが、よろしくお願いします。
ショットが当たると、hpが減っているようなので、当たり判定に問題はなさそうです。
弾幕もちゃんと撃てています。
心当たりがあるのは、メモリ節約のために構造体のデータ型を変更していたところぐらいです。
以下にsturuct.hの内容を示します。
//キャラクターショットに関する構造体
typedef struct{
bool flag;
unsigned short power,knd;//フラグ、パワー、カウンタ、種類
unsigned int cnt;
double x,y,angle,spd;//座標、角度、スピード
}cshot_t;
//キャラクターに関する構造体
struct ch_t{
unsigned char flag; //フラグ
unsigned cnt; //カウンタ
int power; //パワー
int point; //ポイント
unsigned score; //スコア
unsigned char num; //残機数
int mutekicnt; //無敵状態とカウント
unsigned char shot_mode; //ショットモード
unsigned money; //お金
int img; //画像
int slow; //スローかどうか
double x,y; //座標
unsigned shot_cnt; //ショットのカウンタ
};
//パッドに関する構造体
typedef struct{
int key[PAD_MAX];
}pad_t;
//コンフィグに関する構造体
typedef struct{
int left,up,right,down,shot,bom,slow,start,change;
}configpad_t;
//敵構造体
typedef struct{
//フラグ、カウンタ、移動パターン、向き、敵の種類、HP最大値、落とすアイテム、画像
unsigned cnt,pattern,muki,knd,hp_max,item_n[6];
unsigned char back_col;
int img,hp;
bool flag;
//座標、速度x成分、速度y成分、スピード、角度
double x,y,vx,vy,sp,ang;
//弾幕開始時間、弾幕の種類、弾の種類、色、状態、待機時間、停滞時間
unsigned bltime,wtime,wait;
unsigned short blknd,blknd2,col,state;
}enemy_t;
typedef struct{
//カウンタ、移動パターン、敵の種類
unsigned cnt,pattern,knd;
//初期座標と移動スピード
double x,y,sp;
//弾幕開始時間、弾幕の種類、色、体力、弾の種類、停滞時間、アイテム(6種類)
unsigned bltime,wait,item_n[6];
unsigned short blknd,col,hp,blknd2;
}enemy_order_t;
//弾に関する構造体
typedef struct{
//フラグ、種類、カウンタ、色、状態、少なくとも消さない時間、エフェクトの種類
unsigned char flag;
unsigned knd,cnt,col,state,till,eff;
//座標、角度、速度、ベースの角度、一時記憶スピード
double x,y,angle,spd,base_angle[1],rem_spd[1];
}bullet_t;
//ショットに関する構造体
typedef struct{
//フラグ、種類、カウンタ、どの敵から発射されたかの番号
unsigned char flag;
unsigned knd,cnt,num;
//ベース角度、ベーススピード
double base_angle[1],base_spd[1];
bullet_t bullet[SHOT_BULLET_MAX];
}shot_t;
//エフェクト
typedef struct{
unsigned char flag;
int cnt,col,knd,img,eff,brt;
double x,y,r,ang,spd,mvang;
}effect_t;
//消滅エフェクト
typedef struct{
bool flag;
int cnt,col;
double x,y;
}del_effect_t;
typedef struct{
int size_x,size_y,col_num;
double range;
}bullet_info_t;
//ボムの情報
typedef struct{
unsigned flag,cnt,knd;
double x,y;
}bom_t;
//画面の明るさ情報
typedef struct{
unsigned char brt;
}bright_set_t;
//ドン!と揺れる画面の情報
typedef struct{
unsigned flag,cnt,time,size;
int x,y;
}dn_t;
//ボスショットに関する構造体
typedef struct{
//フラグ、種類、カウンタ、どの敵から発射されたかの番号、色
int flag,knd,cnt,num;
//ベース角度、ベーススピード
double base_angle[1],base_spd[1];
bullet_t bullet[BOSS_BULLET_MAX];
}boss_shot_t;
//物理的計算に使う構造体
typedef struct{
int flag,cnt,set_t;
double ax,v0x,ay,v0y,vx,vy,prex,prey;
}phy_t;
//ボスの情報
typedef struct{
int flag,cnt,knd,wtime,state,endtime,hagoromo,graph_flag;
int hp,hp_max;
int appear_count[2],set_hp[DANMAKU_MAX],back_knd[DANMAKU_MAX];
double x,y,dx,dy,ang,spd;
phy_t phy;
}boss_t;
コンパイラはBorland C++ Compiler 、OSはwindows 7 64bit です。
初歩的な質問かも知れませんが、よろしくお願いします。