* もの ** 操作キャラクタ(画像) *** 主人公(ゲマ) *** 仲間(予定では2人) ** 背景 ** 障害物(オブジェクト) ** 移動ポイント(オブジェクト) ** NPC(オブジェクト) ** 宝箱(オブジェクト) * 操作 ** 十字キーによる操作 *** 十字キーを押すと、押した方向に主人公が *** その向きに歩いているように移動する. *** また、仲間は主人公の後をついてくるように移動する. ** オブジェクトについて *** オブジェクトの方を向いて、Enterキー(仮)などのキーを押すとイベントが起こる *** 障害物は十字キーを押しても通ることができない *** 移動ポイントでは、マップを違うが画像に切り替え *** NPCとの会話イベント→http://wiki.cis.iwate-u.ac.jp/~wiki/csd/group.cgi/2014/?p=gr09%3A%3A%E4%BC%9A%E8%A9%B1%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E7%94%BB%E9%9D%A2{gr09::会話イベント画面} *** 宝箱は、アイテムなどが手に入る
#pragma once /******************************** **** *** **** マクロ宣言 *** **** *** ********************************/ #define MAP_NUM 6 // マップの数 #define CHARA_CHIP 16 // キャラチップ用画像分割数 #define CHARA_NUM 3 // キャラクタのナンバー #define CHIP_SIZE 32 // マップチップ一つのドットサイズ #define MAP_WIDTH_MAX 40 // マップの最大幅 #define MAP_HEIGHT_MAX 40 // マップの最大縦長さ #define MOVE_FRAME 32 // 移動にかけるフレーム数 #define CHIP_WIDTH 32 #define CHIP_HEIGHT 32 #define WALK_SPEED 4 //歩く速度 /******************************** **** *** **** 構造体宣言 *** **** *** ********************************/ // マップの構造体 typedef struct { // マップの幅 int Width ; // マップの高さ int Height ; // マップデータ二次元配列 int Data[ MAP_HEIGHT_MAX ][ MAP_WIDTH_MAX ] ; } MAPDATA; //表示キャラ用構造体 typedef struct{ int x, //現在位置X座標 y, //現在位置Y座標 img[CHARA_CHIP],//表示キャラ画像ポインタ muki, //キャラの向きフラグ move_flag, //移動フラグ 0:停止中 1:移動中 map_no; //現在いるマップのナンバー }Chara_img; /******************************** **** *** **** グローバル変数宣言 *** **** *** ********************************/ MAPDATA MapData[]; /* *mapdata.cpp * *MAP_NUMBER * *0.特殊処理用 *1.1F *2.1F男子トイレ *3.2F *4.205教室 * */ extern Chara_img Player; extern char Key[]; /* * main.cpp */ extern int Mapchip[]; extern int Npcchip[]; extern int Itembox[]; /******************************** **** *** **** プロトタイプ宣言 *** **** *** ********************************/ void GraphDraw( int ScrollX, int ScrollY); /* ****mapdraw.cpp * 引数 * 1.int ScrollX ...スクロール量X * 2.int ScrollY ...スクロール量Y * 3.int MapNum ...使用マップナンバー * * マップとキャラクター表示関数 */ int IsAbleToGo(int MoveY, int MoveX); /* ****mapdraw.cpp * 引数 * 1.int MoveY ...移動量Y * 2.int MoveX ...移動量X * 3.int MapNum ...使用マップナンバー * * 戻り値 ...0(移動可能) * ...1(移動不可) * * キャラクター移動可能判定用関数 */ void MapEvent(int Flag); /* ****mapdraw.cpp * 引数 * 1.int Frag ...イベント管理フラグ(20以上の整数を使用する) * 数字はMapDataの二次配列の中身の数字とリンクしている。 * */ void Graph_load(); //chipの読み込み