2014 ソフトウェア設計及び演習用の班Wiki
gr09::マップ画面
-
もの
-
操作キャラクタ(画像)
- 主人公(ゲマ)
- 仲間(予定では2人)
- 背景
- 障害物(オブジェクト)
- 移動ポイント(オブジェクト)
- NPC(オブジェクト)
- 宝箱(オブジェクト)
-
操作キャラクタ(画像)
-
操作
-
十字キーによる操作
- 十字キーを押すと、押した方向に主人公が
- その向きに歩いているように移動する.
- また、仲間は主人公の後をついてくるように移動する.
- オブジェクトについて
- オブジェクトの方を向いて、Enterキー(仮)などのキーを押すとイベントが起こる
- 障害物は十字キーを押しても通ることができない
- 移動ポイントでは、マップを違うが画像に切り替え
- NPCとの会話イベント→gr09::会話イベント画面
- 宝箱は、アイテムなどが手に入る
-
十字キーによる操作
map.h
#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 ...イベント管理フラグ(40以上の整数を使用する) * 数字はMapDataの二次配列の中身の数字とリンクしている。 * */ int IsAbleToNPC();//キャラの向いている一つ先のデータがオブジェクトなのかどうか /* *****mapdraw.cpp * 戻り値 ......オブジェクトであった場合,その配列のデータ(40以上) * ......0(オブジェクトではない) * */ void Graph_load(); //chipの読み込み void DataSwap(int New_Data);//キャラの向いている一つ先の配列のデータを更新 void Map_BGM_SE_Set();//ループBGMをロード、流す void Set_SmallWindow();//現在位置を示す小窓を表示する
最終更新日:2015/02/18 07:51:33