2017 ソフトウェア設計及び演習用の班Wiki
17::gr07::統合後ヘッダファイル
includes.h
#ifndef INCLUDES
#define INCLUDES
#include <gtk/gtk.h>
#include <stdlib.h>
#include <SDL.h>
#include <SDL_mixer.h>
#include "start.h"
#include "opening.h"
#include "field.h"
#include "Status.h"
#include "SaveWindow.h"
#endif
start.h
#include "includes.h"
void cb_start_button_clicked (GtkWidget *button, gpointer user_data);
void cb_quit_button_clicked (GtkWidget *button, gpointer user_data);
void cb_load_button_clicked (GtkWidget *button, gpointer user_data);
void set_background(GtkWidget *window);
int StartScreen();
LoadWindow.h
#ifndef LOAD_WINDOW
#define LOAD_WINDOW
#include "includes.h"
void open_load_window();
#endif
field.h
/*
field.h
定義と構造体
- /
#ifndef FIELD_H
#define FIELD_H
#include "includes.h"
#define MAPINFO "../data/mapinfo.txt" //マップ情報が書いてあるファイル
#define STARTMAP 0 //最初のマップ
#define STARTBGM 0
#define STARTX 256 //最初のx 16の倍数にしなきゃオブジェクト判定できない!
#define STARTY 352 //最初のy
#define MAXMAP 16 //マップの数
#define MAXBGM 6 //bgmの数
#define MAXBOSS 1 //bossの数
#define MOVEWIDTH 39 //動ける横範囲(歩数)
#define MOVEHEIGHT 29 //動ける縦範囲(歩数)
#define WIDTH 640 //ウインドウの幅
#define HEIGHT 480 //ウインドウの高さ
#define CHARA_SIZE 32 //キャラのサイズ
#define CHARA_SAMPLE "../data/chara1.png" //主人公のキャラの画像ファイル名
#define CHARASPEED 16 //主人公キャラのキー入力で移動するピクセル数
#define TXT_H 100 //テキスト表示部の高さ
#define FONT "IPAゴシック 20" //フォント
#define ENCOUNT 30 //エンカウント
typedef struct { /* アニメーション用パーツ詰め合わせ */
GtkWidget *drawing_area; /* ドローイングエリア */
gint timeout; /* アニメーションのタイムアウト */
GdkPixbuf *s_pixbuf; /* スプライト用ピクスバッファ */
gint s_width; /* スプライト幅 */
gint s_height; /* スプライト高さ */
gint x, y, dx, dy; /* スプライトの座標・ベクトル */
gint s_timeout; /* スプライト自身のタイムアウト */
GdkPixbufAnimationIter *iter[4]; /* アニメーションのイテレータ */
gint iter_num; /*イテレータの番号*/
}anime_pack;
static anime_pack *anime; //表示に関する情報の構造体
/*************色々な変数***********/
char *map_name[MAXMAP]; /*マップの名前*/
int map_num;
static int obxy[MAXMAP][MOVEHEIGHT][MOVEWIDTH]; /*マップ毎のオブジェクト [map_num][oby][obx]*/
static GtkWidget *view; /*テキスト表示のためのウィジェト*/
static GtkTextBuffer *buffer; /*テキスト表示のためのバッファ*/
static int space; /*スペースが押された回数*/
static int encount; /*ランダムエンカウントに使う*/
static int p_add_count[4];//仲間が追加されたか判別
static Mix_Music *music;
char *bgm_name[MAXBGM];
static int bgm_num;
GtkWidget *window; //ウインドウ
char *oe_txt[MAXMAP][26][10];
int past_map_num;
int shop_open_num;
/***************************以下関数***************************/
int openFieldWindow();
/***************背景関連******************/
void map_name_define();
void map_ob_define();
void map_ob(gpointer,GtkWidget *);
void set_background(GtkWidget *);
/*基本ウィジェット関連*/
GtkWidget * my_window_new();
void my_init(void);
/***********イベント関連*************/
void textevent(int);
void text_define();
void random_encount();
void once_event(int);
void heal(void);
void shop(void);
void save(void);
void status(void);
void game_clear(int);
void bgm_load(void);
void nakama_event(int);
void move_map(int);
/*********コールバック関数*****************/
gint my_close_handler(GtkWidget *, gpointer );
static gint cb_delete_event(GtkWidget *, GdkEventExpose *, gpointer );
static gint cb_configure_event(GtkWidget *, GdkEventExpose *, gpointer );
void cb_key_press(GtkWidget *,GdkEventKey *,gpointer );
/*********アニメーション関連***************/
GtkWidget * my_animation(GtkWidget *, gboolean,gpointer );
void make_anim(anime_pack *);
static gint move_sprite(gpointer );
static gint update_sprite(gpointer );
static void draw_animation(anime_pack *);
static void draw_sprite(anime_pack *);
/*mapinfoの説明
書く際に次のマップ情報を書くには改行1つ
- 1・・・通れない
- 2・・・次のマップへ(map_num + 1)
- 3・・・前のマップへ(map_num - 1)
- 4
- 5
- 6
- 7
- 8
- 9・・・ランダムエンカウント
- a ~ ・・テキストイベント
- h ・・・回復イベント
- s ・・・ショップ画面呼び出しイベント
- e ・・・今回の冒険はここまで表示
- w ・・・boss0のシンボルエンカウント
- x ・・・仲間0
- y ・・・仲間1
- z ・・・仲間2
- A ~ ・・調べたら消えるイベント
- A 100$ get
- B 300$ get
- C 500$ get
- /
#endif
BattleWindow.h
#ifndef BATTLE_WINDOW
#define BATTLE_WINDOW
#include "includes.h"
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
#include <SDL.h>
#include <SDL_mixer.h>
#include "Status.h"
#include "EnemyDifinitions.h"
#define BATTLE_WINDOW_WIDTH 640
#define BATTLE_WINDOW_HEIGHT 480
#define ENEMY_GEO_X 200
#define ENEMY_GEO_Y 50
#define TEXT_MESSAGE_X 50
#define TEXT_MESSAGE_Y 300
#define USER_INTERFACE_X 150
#define USER_INTERFACE_Y 400
#define NEXT_BUTTON_GEO_X 150
#define NEXT_BUTTON_GEO_Y 400
void showBattleWindow(int enemy_num);
#endif
EnemyDifinitions.h
#ifndef ENEMY_DINIFINTIONS
#define ENEMY_DINIFINTIONS
#define PIPO_ENEMY 0
#define PIPO_ENEMY_FILE_LOCATION "pipo-enemy017.png"
#define PIPO_ENEMY_HP 100
#define PIPO_ENEMY_ATTACK 100
#define PIPO_ENEMY_DEFINCE 50
#define PIPO_ENEMY_X 0
#define BOSS_ENEMY 1
#define BOSS_ENEMY_FILE_LOCATION "pipo-boss004.png"
#define BOSS_ENEMY_HP 300
#define BOSS_ENEMY_ATTACK 200
#define BOSS_ENEMY_DEFINCE 100
#define BOSS_ENEMY_X -175
#define KINOKO_ENEMY 2
#define KINOKO_ENEMY_FILE_LOCATION "pipo-enemy1.png"
#define KINOKO_ENEMY_HP 50
#define KINOKO_ENEMY_ATTACK 50
#define KINOKO_ENEMY_DEFINCE 100
#define KINOKO_ENEMY_X 0
#define TAMAGO_ENEMY 3
#define TAMAGO_ENEMY_FILE_LOCATION "pipo-enemy2.png"
#define TAMAGO_ENEMY_HP 100
#define TAMAGO_ENEMY_ATTACK 100
#define TAMAGO_ENEMY_DEFINCE 200
#define TAMAGO_ENEMY_X 0
#define KUMA_ENEMY 4
#define KUMA_ENEMY_FILE_LOCATION "kuma.png"
#define KUMA_ENEMY_HP 300
#define KUMA_ENEMY_ATTACK 200
#define KUMA_ENEMY_DEFINCE 50
#define KUMA_ENEMY_X 0
#endif
shop.h
#include "includes.h"
/*
ボタンがクリックされたときに呼び出される関数
- /
static void
cb_show1_hide0(GtkWidget *button, gpointer user_data);
static void
cb_show0_hide1 (GtkWidget *button, gpointer user_data);
static void
cb_show0_hide2 (GtkWidget *button, gpointer user_data);
static void
cb_show2_hide0 (GtkWidget *button, gpointer user_data);
static void
cb_show0_hide3 (GtkWidget *button, gpointer user_data);
static void
cb_show3_hide0 (GtkWidget *button, gpointer user_data);
static void
cb_show0_hide4 (GtkWidget *button, gpointer user_data);
static void
cb_show4_hide0 (GtkWidget *button, gpointer user_data);
static void
cb_button_exit(GtkWidget *button, gpointer user_data);
static void
buy_spotion(GtkWidget *button,gpointer user_data);
static void
buy_lpotion(GtkWidget *button,gpointer user_data);
static void
buy_xpotion(GtkWidget *button,gpointer user_data);
static void
buy_sether(GtkWidget *button,gpointer user_data);
static void
buy_lether(GtkWidget *button,gpointer user_data);
static void
buy_xether(GtkWidget *button,gpointer user_data);
static void
buy_zyaazi(GtkWidget *button,gpointer user_data);
static void
buy_tapshoes(GtkWidget *button,gpointer user_data);
static void
buy_kattyuu(GtkWidget *button,gpointer user_data);
static void
buy_tokei(GtkWidget *button,gpointer user_data);
static void
buy_bouon_no_yoroi(GtkWidget *button,gpointer user_data);
static void
buy_earring(GtkWidget *button,gpointer user_data);
static void
buy_yellowbull(GtkWidget *button,gpointer user_data);
static void
buy_doramu_stuck(GtkWidget *button,gpointer user_data);
static void
buy_norinoriyaku(GtkWidget *button,gpointer user_data);
static void
buy_kyousouyaku(GtkWidget *button,gpointer user_data);
static void
buy_syuutyuuyaku(GtkWidget *button,gpointer user_data);
static void
buy_metorono_mu(GtkWidget *button,gpointer user_data);
static void
buy_kuroame(GtkWidget *button,gpointer user_data);
static void
buy_tatikakusan(GtkWidget *button,gpointer user_data);
static void
buy_score(GtkWidget *button,gpointer user_data);
static void
buy_sikibou(GtkWidget *button,gpointer user_data);
static void
buy_groundpiano(GtkWidget *button,gpointer user_data);
static void
buy_guiternogen(GtkWidget *button,gpointer user_data);
extern int money;
extern int main_char_hp;
extern int main_char_max_hp;
extern int main_char_max_vp;
extern int main_char_vp;
extern int main_char_attack;
extern int main_char_defence;
extern int main_char_technique;
extern int spotion;
extern int lpotion;
extern int xpotion;
extern int sether;
extern int lether;
extern int xether;
extern int bouon_no_yoroi;
extern int zyaazi;
extern int kattyuu;
extern int tokei;
extern int tapshoes;
extern int earring;
extern int yellowbull;
extern int doramu_stuck;
extern int norinoriyaku;
extern int kyousouyaku;
extern int syuutyuuyaku;
extern int metorono_mu;
extern int kuroame;
extern int tatikakusan;
extern int score;
extern int sikibou;
extern int groundpiano;
extern int guiternogen;
Mix_Music *se1;
Mix_Music *se2;
Mix_Music *se3;
Mix_Music *se4;
Mix_Music *se5;
char* init[7]={"回復",
"装備品",
"能力",
"秘密のアイテム",
"exit",
"",
"",
};
char* potion[7]={"ポーション小 \n200# HP+10",
"ポーション中 \n500# HP+30",
"ポーション大 \n800# HP+50",
"エーテル小 \n300# VP+10",
"エーテル中 \n600# VP+25",
"エーテル大 \n1000# VP+50",
"アイテム種類選択画面に戻る"
};
char* equip[7]={"ジャージ \n1000# 防御-20",
"タップシューズ \n2000# 技術+30",
"甲冑 \n2500# 防御+45",
"時計 \n3000# 攻撃+20,防御+20",
"防音の鎧 \n4500# 防御+100",
"魔族のイヤリング \n10000# 全能力+50",
"アイテム種類選択画面に戻る"
};
char* strong[7]={"yellowbull \n700# 技術+10",
"ドラム・スティック \n800# 攻撃+20",
"ノリノリ薬 \n700# VP+25",
"狂騒薬 \n2500# 全能力+10",
"ビタミン剤 \n3000# 攻撃+50,HP+20",
"メトロノーム \n4000# VP+40,技術+30",
"アイテム種類選択画面に戻る"
};
char* other[7]={"黒のど飴 \n1000# ???",
"立角酸 \n500# ???",
"SCORE \n900# ???",
"指揮棒 \n3500# ???",
"グランドピアノ \n5000# ???",
"ギターの弦 \n10# ???",
"アイテム種類選択画面に戻る"
};
int openShopWindow();
SaveWindow.h
#ifndef SAVE_WINDOW
#define SAVE_WINDOW
#include "includes.h"
#define SAVE_WINDOW_WIDTH 400
#define SAVE_WINDOW_HEIGHT 100
void open_save_window();
#endif
StatusWindow.h
#ifndef STATUS_WINDOW
#define STATUS_WINDOW
#include "includes.h"
#define STATUS_WIDTH 600
#define STATUS_HEIGHT 400
void open_status_window();
void signal_connect_status_window(GtkWidget *button);
void call_status_window();
#endif
最終更新日:2017/08/04 14:56:25