2016 ソフトウェア設計及び演習用の班Wiki
16::gr05::bullet.h
bullet.h
#ifndef DEF_CBALLET_H
#define DEF_CBALLET_H
#include "../Game/common.h"
#include "../enemy/enemy.h"
#define PENETRATION 1
struct Bullet{
struct Bullet *next,*prev;
double x,y;
double speed;
int type;
double size;
int color;
int Rand;
int attribute;
int power;
int range;
int count;
double angle;
double angleRate;
double speedRate;
bool alive;
};
typedef struct Bullet Bullet_t;
void
Bullet_init();
/*
引数 : なし
戻り値: なし
内容 : 弾リストのの初期化、メインループに入る前に呼び出す
*/
void
Bullet_end();
/*
引数 : なし
戻り値: なし
内容 : 弾リストのメモリ開放、メインループが終わった後に呼びだす
*/
void* BulletNew(double X,double Y,double Speed,double Angle,double SpeedRate,double AngleRate,int type);
/*
引数 : double X,Y 弾を撃つ座標(X,Y)
double Speed 弾のスピード
double Angle 弾の発射する角度
double SpeedRate弾の加速度
double AngleRate弾の角加速度
int type 弾の種類 0~99 自機の弾
100~199 敵の弾
戻り値: 作ったBullet型のポインタ
内容 : 引数から弾を生成しアクティブタスクに加える
*/
void BulletDelete(Bullet_t*);
/*
引数 : Bullet_t* p 画面から消したい弾のポインタ
戻り値: なし
内容 : 引数に与えられた弾をフリーリストに移動させて消す
*/
void GrenadeExplosion(Bullet_t *Bullet);
void Move(Bullet_t*);
/*
引数 : Bullet_t* p 移動させたい弾
戻り値: なし
内容 : 引数で与えられた弾をp->speed,angleをもとに移送させる
*/
void Draw(Bullet_t*);
/*
引数 : Bullet_t* p 描画させたい弾
戻り値: なし
v
内容 : 引数で与えられた弾を描画する
*/
void Homing(Bullet_t*,Enemy_t*);
//////////////////////////////////////////////////////////////////////
//for文用
//////////////////////////////////////////////////////////////////////
Bullet_t*
GetActive();
Bullet_t* BArrow_init();
/*
引数 : なし
戻り値: ArrowBullet この時はActiveBulletの次をさす
内容 : ArrowBulletの初期化
この関数は以下のようにつかう
for(Bullet_t* p = BArrow_init();p = GetBNext();NowBActive()){
//弾の処理を各
}
こう書くことによってアクティブリストの中にある弾をループで回すことができる
*/
Bullet_t* GetBNext();
bool NowBActive();
#endif
最終更新日:2016/08/10 03:46:35