亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tilemap.h

?? 模擬游戲中人的行走
?? H
?? 第 1 頁 / 共 2 頁
字號:
#ifndef TILEMAP_H
#define TILEMAP_H

#include "Map.h"
#include "SDLHelpers.h"


const int DIRECTIONTABLE[4][2] = { { 0, -1 }, 
                                   { 1, 0 }, 
                                   { 0, 1 }, 
                                   { -1, 0 } };


// ============================================================================
//  TileCell Class
// ============================================================================
class TileCell
{
public:
// =======================================================
//  Functions
// =======================================================

// -------------------------------------------------------
// Name:        TileCell
// Description: constructs the cell
// -------------------------------------------------------
    TileCell()
    {
        m_blocked = false;
        m_item = 0;
        m_person = 0;
    }



// =======================================================
//  Data
// =======================================================

// -------------------------------------------------------
// Name:        m_blocked
// Description: determines if the cell is blocked by
//              a feature of the geography, but not
//              by items or people.
// -------------------------------------------------------
    bool m_blocked;

// -------------------------------------------------------
// Name:        m_item
// Description: The item in the cell
// -------------------------------------------------------
    Item* m_item;

// -------------------------------------------------------
// Name:        m_person
// Description: The person in the cell
// -------------------------------------------------------
    Person* m_person;
};




// ============================================================================
//  TileCell Class
// ============================================================================
class TileMap : public Map
{

protected:
// =======================================================
//  Data
// =======================================================

// -------------------------------------------------------
// Name:        m_tiles
// Description: a 3d array, representing the tilemap
//              graphics
// -------------------------------------------------------
    Array3D<int> m_tiles;

// -------------------------------------------------------
// Name:        m_tilemap
// Description: a 2d array, representing the tilemap
//              cells
// -------------------------------------------------------
    Array2D<TileCell> m_tilemap;

// -------------------------------------------------------
// Name:        m_tilebmps
// Description: an array of bitmaps that the tiles will
//              be drawn from
// -------------------------------------------------------
    SDL_Surface** m_tilebmps;


// =======================================================
//  New Functions
// =======================================================
public:
// -------------------------------------------------------
// Name:        TileMap
// Description: Constructor, constructs the map with the
//              given size, and a filename. If the
//              filename is 0, then empty map is created
// -------------------------------------------------------
    TileMap( int p_x, int p_y, int p_z, SDL_Surface** p_tilebmps )
             : m_tiles( p_x, p_y, p_z ), m_tilemap( p_x, p_y )
    {
        m_tilebmps = p_tilebmps;
    }


// -------------------------------------------------------
// Name:        ~TileMap
// Description: destructor, deletes everything on the map
// -------------------------------------------------------
    ~TileMap()
    {
        int x, y;

        // go through all of the tiles and delete the items
        // and persons.
        for( y = 0; y < m_tilemap.Width(); y++ )
        {
            for( x = 0; x < m_tilemap.Height(); x++ )
            {
                if( m_tilemap.Get( x, y ).m_item != 0 )
                    delete m_tilemap.Get( x, y ).m_item;
                if( m_tilemap.Get( x, y ).m_person != 0 )
                    delete m_tilemap.Get( x, y ).m_person;
                m_tilemap.Get( x, y ).m_item = 0;
                m_tilemap.Get( x, y ).m_person = 0;
            }
        }  
    }

// -------------------------------------------------------
// Name:        SetTile
// Description: Set the tile at the index
// -------------------------------------------------------
    void SetTile( int p_x, int p_y, int p_z, int p_tile )
    {
        m_tiles.Get( p_x, p_y, p_z ) = p_tile;
    }
    

// -------------------------------------------------------
// Name:        Getcell
// Description: Given an X and Y coordinate, calculate
//              the cell number.
// -------------------------------------------------------
    int GetCell( int p_x, int p_y )
    {
        return p_y * m_tiles.Width() + p_x;
    }

// -------------------------------------------------------
// Name:        LoadFromFile
// Description: Loads the map from a file
// -------------------------------------------------------
    void LoadFromFile( char* p_filename )
    {
        int x, y;
        int item;
        int person;
        Array2D<int> items( 64, 64 );
        Array2D<int> people( 64, 64 );

        // open the file
        FILE* f = fopen( p_filename, "rb" );

        // file cant be opened, return
        if( f == 0 )
            return;

        // read in the tile data
        fread( m_tiles.m_array, 64 * 64 * 2, sizeof(int), f );

        // read the items and the people into the temporary arrays
        fread( items.m_array, 64 * 64, sizeof(int), f );
        fread( people.m_array, 64 * 64, sizeof(int), f );


        // loop through each cell, converting the items and people.
        for( y = 0; y < 64; y++ )
        {
            for( x = 0; x < 64; x++ )
            {
                // get item type
                item = items.Get( x, y );

                // if there is an item at that cell, convert it.
                if( item != -1 )
                {
                    m_tilemap.Get( x, y ).m_item = 
                        MakeItem( item, x, y, GetCell( x, y ) );

                }

                // get the person type
                person = people.Get( x, y );

                // item is a person
                if( person != -1 )
                {
                    m_tilemap.Get( x, y ).m_person = 
                        MakePerson( person, x, y, GetCell( x, y ) );

                    // set the viewer if the person is type 0, the 
                    // default player
                    if( person == 0 )
                    {
                        SetViewer( m_tilemap.Get( x, y ).m_person );
                    }
                }
            }
        }
    }

// =======================================================
//  New Functions
// =======================================================

// -------------------------------------------------------
// Name:        Draw
// Description: Draws the map onto the given surface, 
//              using the viewers coordinates as the
//              midpoint of the screen.
// -------------------------------------------------------
    void Draw( SDL_Surface* p_surface, int p_midx, int p_midy )
    {
        int x, y, z;            // counting variables
        int px, py;             // pixel coordinates
        int ox, oy;             // offset coordinates
        int current;
        Item* i;
        Person* p;

        // these are the drawing boundaries

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91日韩一区二区三区| 亚洲精选视频在线| 国产在线精品一区二区不卡了| 欧美性色欧美a在线播放| 一区二区免费视频| 在线成人高清不卡| 久久综合综合久久综合| 欧美国产日韩a欧美在线观看 | 精品国产一区二区三区不卡| 免费在线看成人av| 久久综合狠狠综合久久激情 | 日本强好片久久久久久aaa| 欧美一级黄色大片| 成人黄色大片在线观看| 免费在线观看视频一区| 久久久精品tv| 午夜影院久久久| 国产91色综合久久免费分享| 国产精品色哟哟| 91福利精品视频| 国产一区欧美一区| 一区二区三区在线观看欧美 | 一本大道久久a久久精二百| 午夜精品久久久久久久99水蜜桃| 欧美精品一区二区高清在线观看| 丁香婷婷深情五月亚洲| 性欧美疯狂xxxxbbbb| 中文字幕不卡一区| 欧美日韩国产电影| 国产99久久久国产精品潘金| 性感美女久久精品| 17c精品麻豆一区二区免费| 日韩午夜精品视频| 欧美午夜精品免费| jlzzjlzz国产精品久久| 国产一区二区三区免费看| 天堂久久久久va久久久久| 亚洲欧洲av另类| 久久久久88色偷偷免费| 这里只有精品免费| 欧亚一区二区三区| 91久久人澡人人添人人爽欧美| 成人免费看的视频| 从欧美一区二区三区| 成人视屏免费看| 国产精品资源站在线| 精品一区二区三区在线观看国产| 日韩成人免费在线| 开心九九激情九九欧美日韩精美视频电影| 亚洲一区二区三区爽爽爽爽爽 | 亚洲444eee在线观看| 亚洲激情图片小说视频| 亚洲一区二区三区中文字幕| 一区二区三区四区蜜桃| 亚洲一区电影777| 婷婷综合另类小说色区| 日韩av电影一区| 国产乱码字幕精品高清av| 国产99一区视频免费| 在线视频一区二区免费| 精品视频一区 二区 三区| 日韩一区二区三区在线观看| 久久久综合网站| 一区二区在线观看视频在线观看| 一区二区三区蜜桃网| 日本不卡中文字幕| 国产91精品一区二区麻豆网站 | 久久精品国产第一区二区三区 | 亚洲人成小说网站色在线| 中文字幕在线视频一区| 亚洲综合一区二区三区| 国产乱码字幕精品高清av | 欧美日韩另类一区| 久久九九久精品国产免费直播| 亚洲欧美另类在线| 日韩国产精品久久久久久亚洲| 日韩中文字幕av电影| 成人国产精品免费观看视频| 91精品欧美一区二区三区综合在| 国产欧美一区二区在线观看| 亚洲第一搞黄网站| 99久久精品国产麻豆演员表| 欧美不卡一区二区三区四区| 亚洲综合色在线| av福利精品导航| 久久精品一区二区三区不卡| 日韩高清不卡在线| 欧美性受xxxx黑人xyx性爽| 中文字幕一区二区三区蜜月| 蜜桃91丨九色丨蝌蚪91桃色| 欧美三级中文字幕在线观看| 亚洲同性gay激情无套| 国产福利精品导航| 26uuuu精品一区二区| 免费欧美在线视频| 777色狠狠一区二区三区| 亚洲已满18点击进入久久| 欧洲一区二区三区在线| 亚洲视频 欧洲视频| 91成人网在线| 亚洲成人动漫精品| 日韩欧美卡一卡二| 国模一区二区三区白浆| 国产欧美一区二区三区在线老狼| 精品一区在线看| 国产欧美日韩麻豆91| 成人18视频在线播放| 亚洲美女一区二区三区| 欧美三级韩国三级日本三斤 | 精品一区二区免费| 久久久蜜桃精品| 波多野结衣在线一区| 一区二区三区中文字幕精品精品 | 日韩午夜精品电影| 国产馆精品极品| 亚洲一区中文在线| 欧美v亚洲v综合ⅴ国产v| 国产91在线|亚洲| 亚洲精品国产无天堂网2021| 日韩一级二级三级精品视频| 国产一本一道久久香蕉| 亚洲综合清纯丝袜自拍| 日韩美女天天操| 色美美综合视频| 亚洲成人综合视频| 国产精选一区二区三区| 国产精品嫩草99a| 日韩欧美在线123| 91原创在线视频| 国产精品正在播放| 亚洲午夜一区二区三区| 国产精品网站在线播放| 日韩一级黄色大片| 欧美日韩亚洲另类| 91麻豆蜜桃一区二区三区| 寂寞少妇一区二区三区| 国产精品私房写真福利视频| 日韩欧美三级在线| 欧美精品777| 在线免费不卡视频| 色婷婷久久久亚洲一区二区三区| 国产高清一区日本| 九九精品一区二区| 亚洲在线免费播放| 久久久国产精品麻豆| 日韩视频免费观看高清在线视频| 欧美性大战久久久久久久| 91在线一区二区| 色94色欧美sute亚洲13| 色综合久久久久久久| 色噜噜狠狠一区二区三区果冻| 成人18视频日本| 在线精品国精品国产尤物884a| av成人动漫在线观看| 欧美视频一区在线| 91麻豆精品国产无毒不卡在线观看| 在线一区二区三区四区五区| 在线观看欧美日本| 日韩一区二区三区高清免费看看| 欧美mv日韩mv国产网站| 最新欧美精品一区二区三区| 亚洲免费在线电影| 开心九九激情九九欧美日韩精美视频电影 | 国产精品网站在线| 国产精品伦理在线| 亚洲综合色噜噜狠狠| 热久久久久久久| 国产v日产∨综合v精品视频| 国产一区二三区好的| 91原创在线视频| 欧美一区二区视频网站| 国产精品毛片a∨一区二区三区| 中文字幕在线播放不卡一区| 日本免费新一区视频| www.日韩av| 在线观看91精品国产麻豆| 国产精品久久久久影院| 亚洲精品国产精华液| 精品国产乱码久久久久久老虎| 国产蜜臀av在线一区二区三区| 亚洲精品五月天| 成人av网在线| 精品福利av导航| 夜夜操天天操亚洲| 一本色道久久综合精品竹菊| 精品国一区二区三区| 亚洲国产精品久久久久婷婷884| 国产丶欧美丶日本不卡视频| 激情综合一区二区三区| 丁香婷婷综合网| 国产日本亚洲高清| 成人久久18免费网站麻豆 | 亚洲视频小说图片| 丰满少妇在线播放bd日韩电影| 欧美色图片你懂的| 一区二区免费看| 欧美精品成人一区二区三区四区| 亚洲欧美另类小说| 国产麻豆视频一区| 国产日韩欧美一区二区三区乱码|