<> #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);//代入
int c_exp(int);//加算 レベルアップ時1を返す
void c_money(int);//加算
<> /*タイトル画面*/
void title (GtkWidget *button, gpointer user_data);
/*はじめから*/
void start_clicked (GtkWidget *button, gpointer user_data);
/*つづきから*/
void continue_clicked (GtkWidget *button, gpointer user_data);
/*終了*/
void quit_clicked (GtkWidget *button, gpointer user_data);
/*データ1ロード*/
void data1_clicked (GtkWidget *button, gpointer user_data);
/*データ2ロード*/
void data2_clicked (GtkWidget *button, gpointer user_data);
<> /*冒険への出発、宿屋・よろず屋・話を聞く機能の実装*/
#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_armor(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];
char buf_armor1[50], buf_aromor2[50], buf_aromor3[50];
char buf_acce1[50], buf_acce2[50], buf_acce3[50];
char buf_item1[50], buf_item2[50], buf_item3[50], buf_item4[50];
/*自分のステータスラベル(ボタン配置用)*/
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
<> #include
typedef struct enemy_status {
char name[32]; //名前
int hp; //hp
int attack; //攻撃力
int defence; //防御
int agility; //素早さ
int attribute; //属性
int exp; //取得経験値
int money; //金
} enemy;
enemy a = {"トラっぽい猫", 21, 11, 10, 5, 1, 15, 60};
enemy b = {"焼き鳥", 30, 10, 10, 6, 1, 18, 80};
enemy c = {"黒ヤギさん", 38, 10, 8, 5, 1, 22, 100};
enemy d = {"にらみつける", 150, 18, 15, 8, 1, 150, 1000};
enemy e = {"スプラトゥーン", 50, 12, 11, 7, 2, 30, 110};
enemy f = {"ワラスボ", 58, 13, 8, 15, 2, 40, 60};
enemy g = {"ジェグリジャ", 62, 15, 6, 9, 2, 70, 200};
enemy h = {"ドラグーン", 250, 20, 15, 12, 2, 500, 3000};
enemy i = {"ピ○チュウ", 140, 20, 18, 20, 3, 100, 314};
enemy j = {"ひらつか雷鳥", 160, 25, 20, 25, 3, 120, 500};
enemy k = {"富士通の化身", 180, 20, 20, 20, 3, 180, 800};
enemy l = {"工場長", 500, 30, 30, 35, 3, 1000, 7000};
enemy m = {"蛇口さん", 300, 30, 25, 25, 4, 500, 1000};
enemy n = {"教祖様", 350, 35, 35, 20, 4, 550, 1200};
enemy o = {"アグババ", 380, 30, 20, 40, 4, 700, 1500};
enemy q = {"魔王ダイル", 1000, 50, 40, 30, 4, 0, 0};
<> #pragma once
#define MAX_INSTRUMENTS 10 //適当
#include
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *hbox;
GtkWidget *label_text;
/*cb_status*/
GtkWidget *label_hp;
GtkWidget *label_mp;
GtkWidget *label_atk;
GtkWidget *label_def;
GtkWidget *label_quick;
GtkWidget *label_exp;
GtkWidget *label_money;
/*cb_instrument, cb_in_~*/
GtkWidget *button_in_hs;
GtkWidget *button_in_hm;
GtkWidget *button_in_hl;
GtkWidget *button_in_mp;
GtkWidget *button_yes;
GtkWidget *button_no;
GtkWidget *button_return;
/*cb_button_in_hm_clicked*/
GtkWidget *button_in_hm_y;
/* メニューでstatusが押された場合 */
void cb_status(GtkAction *, gpointer);
/* メニューでinstrumentが押された場合 */
void cb_instrument(GtkAction *, gpointer);
/* メニューでequipmentが押された場合 */
void cb_select_equipment(GtkAction *, gpointer);
/* メニューでsaveが押された場合 */
void cb_save(GtkAction *, gpointer);
/* メニューでquitが押された場合 */
void cb_quit(GtkAction *, gpointer);
/* メニュー > insturmentにおいて"HP回復薬(小)"が押された場合 */
void cb_button_in_hs_clicked(GtkWidget *, gpointer);
/* メニュー > insturmentにおいて"HP回復薬(中)"が押された場合 */
void cb_button_in_hm_clicked(GtkWidget *, gpointer);
/* メニュー > insturmentにおいて"HP回復薬(大)"が押された場合 */
void cb_button_in_hl_clicked(GtkWidget *, gpointer);
/* メニュー > insturmentにおいて"MP回復薬"が押された場合 */
void cb_button_in_mp_clicked(GtkWidget *, gpointer);
/* メニュー > insturment > HP回復薬(小)において"はい"が押された場合 */
void cb_button_in_hs_use_clicked(GtkWidget *, gpointer);
/* メニュー > insturment > HP回復薬(中)において"はい"が押された場合 */
void cb_button_in_hm_use_clicked(GtkWidget *, gpointer);
/* メニュー > insturment > HP回復薬(大)において"はい"が押された場合 */
void cb_button_in_hl_use_clicked(GtkWidget *, gpointer);
/* メニュー > insturment > MP回復薬において"はい"が押された場合 */
void cb_button_in_mp_use_clicked(GtkWidget *, gpointer);