2017 ソフトウェア設計及び演習用の班Wiki
gr02::ヘッダファイル
ヘッダファイル解説
https://wiki.cis.iwate-u.ac.jp/svn/csd/17/g02/proj/
boss.h -土田智也
#pragma once
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include "enemy_bullet.h"
typedef struct boss{
GdkPixbuf *image; //ボスの画像
float x; //x座標
float y; //y座標
float width; //幅
float height; //高さ
int hp, hp_max; //体力、最大値
double xrad;
double yrad;
int pattern;
}Boss;
Boss boss[4];//とりあえずボスは4体
Bullet boss_bullet[BLTMAX];
void boss_move(int i);//ボスの動き
void Appear(int i);
void MovePattern1(int i);
void MovePattern2(int i);
void boss_draw(cairo_t *cr, int i);//ボスの描画
void boss_hit(double x, double y, int i);//あたり判定
void boss_bullet_init();
void boss_bullet_dir(float x,float y);
void boss_bullet_n_way(float x,float y,int n);
void boss_bullet_spiral(float x,float y,int n);
void boss_bullet_back_spiral(float x,float y,int n);
void boss_bullet_draw(cairo_t *cr, int i);
void boss_bullet_main(cairo_t *cr);
void boss_bullet_move(cairo_t *cr);
enemy.h -有賀裕也
#ifndef ENEMY_H #define ENEMY_H
#define ENEMAX 128 //敵最大数
#include <stdlib.h> #include <gtk/gtk.h> #include <gdk-pixbuf/gdk-pixbuf.h>
/* 弾の種類ごとの画像の宣言 */ GdkPixbuf *hachi_image; // ハチ GdkPixbuf *game_image; // ゲーム機 GdkPixbuf *huton_image; // 布団
typedef struct enemy { float x, //敵のx座標 y, //y座標 vx, //x座標方向の速度 vy; //y座標方向の速度 float cx, cy; int vit; //耐久力 int flg; //敵出現のフラグ、1なら出現中 int type; //敵の種類 int count; //各種カウントに使う int time; //時間 int counter;//打ち返し判定用。 int weapon; float width; float height; GdkPixbuf *image; }Enemy; Enemy ene[ENEMAX];
void enemy_init();//初期化関数 void enemy_main(cairo_t *cr,int ti,int s_num); void enemy_move(cairo_t *cr,int s_num);//敵を動かすための関数 void enemy_player_hitcheck(int i);//当たり判定 void enemy_shot_hitcheck(int i);//同上 void enemy_draw(cairo_t *cr,int i);//描画関数
void enemy_pop(int ti,int s_num);// void enemy_spawn(float x,float y,float vx,float vy,int vit,int type,int w);//敵を出現させる関数
#endif
enemy_bullet.h -有賀裕也
#ifndef ENEMYBULLET
#define ENEMYBULLET
#include <stdio.h>
#include <stdlib.h>
#include <gtk/gtk.h>
#include <math.h>
#define BLTMAX 1024 //敵弾の最大数
typedef struct enemybullet { //弾に必要な変数をまとめた構造体
float x, //x座標
y, //y座標
vx, //x座標方向の速度
vy; //y座標方向の速度
int flg; //アクティブかどうかを示す変数。
int type; //種類
}Bullet;
Bullet blt[BLTMAX];
void bullet_draw(cairo_t *cr,int i);//描画関数
void bullet_init();//初期化
void bullet_move(cairo_t *cr);//移動
void bullet_main(cairo_t *cr);
void bullet_player_hitcheck(int i);//当たり判定
void bullet_dir(float x,float y);//方向弾
void bullet_aim(float x,float y);//狙い撃ち弾
void bullet_n_way(float x,float y,int n);//n_way弾
void bullet_aim_n_way(float x,float y,int n);//狙い撃ちn_way弾
void bullet_spiral(float x,float y,int n,int d);//渦巻き弾
#endif
ganchan_shot.h -菊地翔太
#pragma once
#include "jiki.h"
/* 定義 */
/* 何個弾(及び光線)を発射するか */
#define GANCHAN_SHOT_STRUCT_MAX 750
/* 弾の種類ごとの画像の宣言 */
GdkPixbuf *shot_image;
GdkPixbuf *beam_l_image;
GdkPixbuf *beam_m_image;
GdkPixbuf *beam_h_image;
/* 弾の情報を格納する構造体の宣言 */
typedef struct{
/* 弾のx座標 */
double x;
/* 弾のy座標 */
double y;
/* 弾のx方向速度 */
int dx;
/* 弾のy方向速度 */
int dy;
/* 弾の発射状態(1なら発射している、0なら発射されていない) */
int shoot_flag;
/* 弾の種類(1ならビーム、0ならショット) */
int beam_flag;
/* 弾の画像 */
GdkPixbuf *image;
}ganchan_shot_struct;
ganchan_shot_struct bullet[GANCHAN_SHOT_STRUCT_MAX];
/* 弾の威力 */
extern int strength;
/* 光線の威力 */
extern int b_strength;
extern int power_sum;
extern int power_rem;
extern int power_stage;
/* 関数の宣言 */
/* 弾の位置などの初期化 ゲームを始める際に呼び出す */
void ganchan_shot_struct_init(void);
/* 弾の位置などの再読み込み コンティニュー時に呼び出す */
void ganchan_shot_struct_coninit(void);
/* 主人公の弾の生成 弾配列を操作 */
void ganchan_shot_struct_shot_player(void);
/* 主人公の光線の生成 */
void ganchan_shot_struct_beam_player(void);
/* 弾の移動 */
void ganchan_shot_struct_move(void);
/* 弾の描画 */
void ganchan_shot_struct_draw(cairo_t *cr);
/* 弾の消去 */
void ganchan_shot_struct_delete(int i);
/* 弾の強化についての関数 */
void ganchan_shot_struct_power(int p);
/* 弾の強化状態の記憶 */
void ganchan_shot_struct_power_rem(void);
/* ここから派生 */
void shot_main(int z,int x,int c,cairo_t *cr);
/* bulletの値を返す関数 */
double ganchan_shot_struct_x(int num);
double ganchan_shot_struct_y(int num);
double ganchan_shot_struct_width(int num);
double ganchan_shot_struct_height(int num);
int ganchan_shot_struct_shoot_flag(int num);
int ganchan_shot_struct_beam_flag(int num);
int ganchan_shot_struct_shot_strength(void);
int ganchan_shot_struct_beam_strength(void);
item.h -菊地翔太
#pragma once
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkkeysyms.h>
#define ITEM_MAX 1027
/* 弾の種類ごとの画像の宣言 */
GdkPixbuf *huka_image; // 0以下
GdkPixbuf *kry_image; // 1 2 3
GdkPixbuf *syuu_image; // 4
GdkPixbuf *bomb_image; // 5
GdkPixbuf *ext_image; // 6
GdkPixbuf *scr_image; // 7
/* アイテムの情報を格納する構造体の宣言 */
typedef struct{
/* アイテムのx座標 */
double x;
/* アイテムのy座標 */
double y;
/* アイテムの使用フラグ */
int flag;
/* アイテムの落下速度 */
double y_fall;
/* アイテムの種類 */
int type;
/* アイテムの幅と高さ */
double width;
double height;
/* アイテムの画像 */
GdkPixbuf *image;
}Item;
Item item[ITEM_MAX];
/* 弾の強化段階 */
extern int power;
/* 単位取得状況 */
extern int tan_i;
/* 面移動時の単位取得状況 */
extern int ctan_i;
/* 得点 */
extern int score;
/* アイテムとの接触判定 */
extern int get_flag;
/* 関数の宣言 */
/* アイテムについての初期化 */
void item_init(void);
/* コンティニュー時のアイテムについての初期化 */
void item_coninit(void);
/* アイテムの生成 */
void item_player(float x,float y,int t);
/* アイテムの移動 */
void item_move(void);
/* アイテムの描画 */
void item_draw(cairo_t *cr);
/* アイテム消滅の関数 */
void item_delete(int i,int f,int t);
/* 単位の獲得についての関数 */
void item_count(void);
/* ボムの追加についての関数 */
void ganchan_bomb(void);
/* 残機の追加についての関数 */
void ganchan_ext(void);
/* 得点の増加についての関数 */
void game_score(void);
/* 被弾時に呼ぶ関数 単位に関係 */
void itaissu(void);
/* コンティニュー時の被弾数の初期化 */
void itakunai(void);
/* アイテムのだいじな関数 */
void item_main(float x,float y,int t);
/* itemの値を返す関数 */
double item_x(int num);
double item_y(int num);
double item_fall(int num);
int item_power(int num);
int item_type(int num);
jiki.h -土田智也
#pragma once
#include <gtk/gtk.h>
#include <gdk-pixbuf/gdk-pixbuf.h>
#include <gdk/gdkkeysyms.h>
typedef struct{
GdkPixbuf *image; //自機の画像
GdkPixbuf *hit; //被弾エフェクト
double x; //x座標
double y; //y座標
double width; //自機の幅
double height; //自機の高さ
int bomb; //ボムの個数
int zanki; //残機
double speed; //速度
}Jiki;
extern int hit_time;
Jiki jiki;
void jiki_new();
void jiki_move(); //自機の移動
void jiki_draw(cairo_t *cr); //自機の描画
void jiki_bomb(); //ボム
void jiki_hit(); //被弾処理
int respawn_time();//無敵時間
double jiki_x(); // 自機の中央のx座標を返す
double jiki_y(); // 自機の中央のy座標を返す
double jiki_width(); // 自機の幅を返す
double jiki_height(); // 自機の高さを返す
int jiki_zanki(); // 自機の残機を返す
key.h -有賀裕也
extern int right_key_flag;
extern int left_key_flag;
extern int up_key_flag;
extern int down_key_flag;
extern int deceleration_flag;
extern int z_key_flag;
extern int x_key_flag;
extern int c_key_flag;
extern int c_hold;
extern int shot_count;
gboolean key_press(GtkWidget *widget,GdkEventKey *event,gpointer user_data);
gboolean key_release(GtkWidget *widget,GdkEventKey *event,gpointer user_data);
最終更新日:2017/08/04 00:46:57