ソフトウェア設計及び演習用の班Wiki

13::g03:tama.hについて

敵の弾構造体

typedef struct{

表示しているか否かの判定

int flag; double x; double y; double xspeed; double yspeed; int speed;

自機と敵機の距離計算

double d; int attack;

弾の種類:当たり判定のとき使用

int type; }Tama;

基本的な考え

switch文で弾の種類を調べ、その弾にあったx,y座標、x,yそれぞれに進むベクトルを計算・代入。 move()関数を用意する。x,yの進む先の計算はxspeed,yspeedに格納されているので、ここではx+=xspeed,y+=yspeedのみを行う。 →弾構造体配列に、弾の準備ができたら前詰めに代入することで、必要最低限の配列数で済む。どの方向に進むべきかはxspeed,yspeedに格納されているので、弾の種類が順不同で格納されていても問題なく計算できる。

作成した敵弾

直線弾、発射時自機を狙って撃つ弾、ホーミング弾、円形弾、渦巻き状に撃つ弾、ランダムに上から降ってくる弾、自機を囲んで移動制限する弾、放射状に撃って自機の移動を制限する弾、扇形に撃つ弾、ある程度直線に進む→炸裂する弾

注意点

絶対に注意するべきことは、計算の短縮化。forループを使わないようにする。 pixbufにソースを貼り付ける動作そのものが(60FPSでは)非常に遅い。極力減らすこと。


最終更新日:2014/02/12 10:40:28