<> #pragma once
/*セーブデータにセーブ、ロードする関数(データ1,2それぞれ)*/
void save1();
void save2();
void load1();
void load2();
/*レベルアップ時に変動するステータスを反映させる関数*/
void levelup();
/*現在のステータス(HP,装備,所持金など)を更新する関数群*/
void c_level(int);//加算
void c_hp(int);//加算
void c_mp(int);//加算
void c_atk(int);//加算
void c_def(int);//加算
void c_quick(int);//加算
void c_sword(int);//代入
void c_armor(int);//代入
void c_accessory(int);//代入
void c_hpdrug_s(int);//加算
void c_hpdrug_m(int);//加算
void c_hpdrug_l(int);//加算
void c_mpdrug(int);//加算
void c_firecrystal(int);//代入
void c_watercrystal(int);//代入
void c_thundercrystal(int);//代入
void c_exp(int);//加算
void c_money(int);//加算
<> /*冒険への出発、宿屋・よろず屋・話を聞く機能の実装*/ #include #include #include GtkWidget *window; GtkWidget *vbox; GtkWidget *image; GtkWidget *label; /* cb_button_clicked_adventure,returnで使用 */ GtkWidget *button_ad; GtkWidget *button_inn; GtkWidget *button_shop; GtkWidget *button_talk; /*街モジュール呼び出し*/ void town_start (); void signal_end (GtkWidget *, gpointer); void cb_button_clicked_ad1 (GtkWidget *, gpointer); void cb_button_clicked_ad2 (GtkWidget *, gpointer); void cb_button_clicked_ad3 (GtkWidget *, gpointer); void cb_button_clicked_ad4 (GtkWidget *, gpointer); void cb_button_clicked_return (GtkWidget *, gpointer); void cb_button_clicked_adventure (GtkWidget *, gpointer); void cb_button_clicked_inn (GtkWidget *, gpointer); void cb_button_clicked_inn_yes (GtkWidget *, gpointer); void cb_button_clicked_shop (GtkWidget *, gpointer); void cb_button_clicked_weapon (GtkWidget *, gpointer); void cb_button_clicked_acce (GtkWidget *, gpointer); void cb_button_clicked_item (GtkWidget *, gpointer); void cb_button_clicked_buy (GtkWidget *, gpointer); void cb_button_clicked_yes (GtkWidget *, gpointer); void cb_button_clicked_talk (GtkWidget *, gpointer); /*よろず屋ステータス*/ char buf_wp1[50], buf_wp2[50], buf_wp3[50], buf_wp4[50], buf_wp5[50]; /*sprintf(buf_wp1, "%s, 所持数 %d, 属性 無, 攻撃力 %d, 金額 100G", swords[0].s_name, swords[0].s_number, swords[0].s_atk); sprintf(buf_wp2, "%s, 所持数 %d, 属性 炎, 攻撃力 %d, 金額 200G", swords[1].s_name, swords[1].s_number, swords[1].s_atk); sprintf(buf_wp3, "%s, 所持数 %d, 属性 水, 攻撃力 %d, 金額 300G", swords[2].s_name, swords[2].s_number, swords[2].s_atk); sprintf(buf_wp4, "%s, 所持数 %d, 属性 雷, 攻撃力 %d, 金額 400G", swords[3].s_name, swords[3].s_number, swords[3].s_atk); sprintf(buf_wp5, "%s, 所持数 %d, 属性 無, 攻撃力 %d, 金額 500G", swords[4].s_name, swords[4].s_number, swords[4].s_atk);*/ /*自分のステータス*/ GtkWidget *label_hp; GtkWidget *label_mp; GtkWidget *label_atk; GtkWidget *label_def; GtkWidget *label_quick; GtkWidget *label_exp; GtkWidget *label_money; char bufh[3], bufmp[3], bufa[3], bufd[3], bufq[3], bufe[3], bufm[9]; <> #include #include #include /*GtkWidget *window; GtkWidget *vbox; GtkWidget *image; GtkWidget *label;*/ /* 「次へ」ボタン */ GtkWidget *button1, *button2, *button3, *button4, *button5, *button6; void cb_button1_clicked(GtkWidget *, gpointer); void cb_button2_clicked(GtkWidget *, gpointer); void cb_button3_clicked(GtkWidget *, gpointer); void cb_button4_clicked(GtkWidget *, gpointer); void cb_button5_clicked(GtkWidget *, gpointer); void cb_gamestart_clicked(GtkWidget *, gpointer); void op_message(); <> #include #include /*GtkWidget *window; GtkWidget *vbox; GtkWidget *image; GtkWidget *label;*/ //void signal_end(GtkWidget *, gpointer); void cb_button_clicked_mura1(GtkWidget *, gpointer); void cb_button_clicked_mura2(GtkWidget *, gpointer); void cb_button_clicked_mura3(GtkWidget *, gpointer); void cb_button_clicked_mura4(GtkWidget *, gpointer); void cb_button_clicked_town(GtkWidget *,gpointer); /* 村人1の会話の続きの内容を扱う関数(①~③) */ void cb_button_clicked_next1_1(GtkWidget *, gpointer); void cb_button_clicked_next1_2(GtkWidget *, gpointer); void cb_button_clicked_next1_3(GtkWidget *, gpointer); /* 村人2の会話の続きの内容を扱う関数(①~③) */ void cb_button_clicked_next2_1(GtkWidget *,gpointer); void cb_button_clicked_next2_2(GtkWidget *,gpointer); void cb_button_clicked_next2_3(GtkWidget *,gpointer); /* 村人3の会話の続きの内容を扱う関数(①~③) */ void cb_button_clicked_next3_1(GtkWidget *,gpointer); void cb_button_clicked_next3_2(GtkWidget *,gpointer); void cb_button_clicked_next3_3(GtkWidget *,gpointer); /* 村人4の会話の続きの内容を扱う関数(①~④) */ void cb_button_clicked_next4_1(GtkWidget *,gpointer); void cb_button_clicked_next4_2(GtkWidget *,gpointer); void cb_button_clicked_next4_3(GtkWidget *,gpointer); void cb_button_clicked_next4_4(GtkWidget *,gpointer); void cb_button_clicked_talk_select (); <> #ifndef _SAMPLE #define _SAMPLE #include #include #include #include #include #define WIDTH 800 #define HEIGHT 600 #define CHARA_SIZE 32 #define atari_d 5 GtkWidget *window; GtkWidget *window_b; GtkWidget *window_m; GdkPixbuf *pixbuf; int encount(int *x, int *y); void atari(int *fire, int *water, int *sander, int *mao, guint *x, guint *y); static void cb_button1_clicked(GtkWidget *button, gpointer user_data); static void cb_button1_clicked(GtkWidget *button, gpointer user_data); 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; /* アニメーションのイテレータ */ } anime_pack; //マッピ現在低 char *map_here(int *fire,int *water, int *sander, int *mao); //mapseni void map_seni(int *fire, int *water, int *sander, int *mao ,guint *x, guint *y); static GdkPixbufAnimation * make_anime(anime_pack *anime, int j) ; void my_init(int argc, char *argv[]); /* ドローイングエリアにスプライトを描く */ static void draw_sprite(anime_pack *anime); /* ドローイングエリアを更新 */ static void draw_animation(anime_pack *anime); static gint cb_key_press(GtkWidget *widget, GdkEventKey *event, gpointer user_data); static gint cb_key_release(GtkWidget *widget, GdkEventKey *event, gpointer user_data); /* スプライトを動かす */ static gint move_sprite(gpointer data); /* スプライト用ピクスバッファを更新 */ static gint update_sprite(gpointer data); /* exposeイベントのコールバック */ static gint cb_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); /* 終了処理 */ static gint cb_delete_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); /* 歩行パターン画像からPixbufAnimationを作成 */ static GdkPixbufAnimation * make_anime(anime_pack *anime, int j) ; /* キャラクターが動くアニメーションサンプルウィジェット */ GtkWidget * my_animation_chara(GtkWidget *window, gboolean trans); /* 背景画像の読み込みと設定 */ void set_background(GtkWidget *window); /* ピクスマップに背景を描く */ static void draw_background(GtkWidget *widget, GdkPixmap *pixmap); /* configureイベントのコールバック */ static gint cb_configure_event(GtkWidget *widget, GdkEventExpose *event, gpointer data); /* スプライト用ピクスバッファを更新 */ static gint update_sprite(gpointer data); GtkWidget * my_window_new(void); #endif // _SAMPLE