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