>
#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_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
<>
<<.h(担当:新田)>>