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