亚洲欧美第一页_禁久久精品乱码_粉嫩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| 韩国成人福利片在线播放| 欧美日韩精品欧美日韩精品一| 色婷婷综合五月| 日本黄色一区二区| 777久久久精品| 国产亚洲一本大道中文在线| 中文字幕在线不卡视频| 婷婷国产在线综合| 国产精品99久久久久| 欧美三级电影网| 中文一区一区三区高中清不卡| 亚洲精品欧美二区三区中文字幕| 秋霞影院一区二区| 白白色 亚洲乱淫| 91精品国产91久久综合桃花| 日韩欧美一级片| 婷婷综合另类小说色区| 成人久久18免费网站麻豆 | 久久精品免视看| 午夜精品aaa| 色94色欧美sute亚洲线路一ni| 久久一夜天堂av一区二区三区| 亚洲精品中文字幕乱码三区| 国产成人8x视频一区二区| 精品久久久三级丝袜| 日韩成人午夜精品| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美不卡一区二区| 美女视频黄免费的久久 | 日韩国产欧美视频| 欧美精品久久一区二区三区 | 92精品国产成人观看免费| 国产清纯美女被跳蛋高潮一区二区久久w | 一区二区久久久| 欧美三级日韩三级国产三级| 亚洲裸体xxx| 欧美伊人久久久久久久久影院| 亚洲免费观看高清完整版在线观看| 成人激情免费网站| 亚洲天堂a在线| 欧美美女网站色| 久久99精品久久久| 国产精品成人一区二区三区夜夜夜 | 国产成人av影院| 亚洲特级片在线| 777奇米四色成人影色区| 久久精品国产色蜜蜜麻豆| 国产欧美精品一区| 日韩一区二区电影网| 不卡一二三区首页| 韩国v欧美v日本v亚洲v| 亚洲精品网站在线观看| 精品国精品自拍自在线| 99国产精品久久久| 乱一区二区av| 亚洲特级片在线| 精品噜噜噜噜久久久久久久久试看| 国产成人av自拍| 日本女人一区二区三区| 亚洲欧美日韩中文播放| 久久久九九九九| 日韩欧美国产午夜精品| 色呦呦一区二区三区| 国产伦精品一区二区三区在线观看| 亚洲综合视频在线| 综合中文字幕亚洲| 国产精品国产三级国产有无不卡 | 国产精品99精品久久免费| 久久99精品一区二区三区| 日韩高清在线不卡| 亚洲综合成人在线| 一区二区三区国产| 怡红院av一区二区三区| 亚洲精品日韩一| 日韩毛片精品高清免费| 亚洲国产成人午夜在线一区 | 国内久久精品视频| 蜜桃久久久久久久| 麻豆成人91精品二区三区| 奇米一区二区三区| 奇米影视一区二区三区| 久久精品理论片| 成人精品国产一区二区4080| 高潮精品一区videoshd| 成人污污视频在线观看| 91影院在线免费观看| 色综合久久综合| 欧美精品久久99| 久久婷婷综合激情| 亚洲桃色在线一区| 日韩精品福利网| 国产永久精品大片wwwapp| 国产成人啪午夜精品网站男同| 成年人国产精品| 欧美视频一区二区三区四区 | 美国十次综合导航| 91亚洲永久精品| 日韩视频123| 亚洲免费毛片网站| 国产在线精品视频| 久久亚洲免费视频| 亚洲国产精品久久久久婷婷884| 日本成人在线看| 在线观看亚洲一区| 久久久99精品久久| 婷婷丁香久久五月婷婷| 成人黄色软件下载| 精品日韩成人av| 蜜臀va亚洲va欧美va天堂| 欧美日韩一区二区欧美激情| 国产精品福利一区| 国产在线不卡一区| 精品国精品国产| 国产在线一区二区| 日韩一区二区三区高清免费看看| 亚洲在线观看免费| 欧洲一区二区三区在线| 国产欧美日产一区| 不卡一二三区首页| 亚洲欧美成人一区二区三区| 波多野结衣在线一区| 国产精品欧美一区喷水| 粉嫩在线一区二区三区视频| 国产精品乱码人人做人人爱| 国产精品亚洲一区二区三区妖精 | www.色精品| 综合中文字幕亚洲| 在线亚洲免费视频| 亚洲国产成人精品视频| 欧美三级在线视频| 日本伊人午夜精品| 精品动漫一区二区三区在线观看| 国产一区二三区好的| 国产精品久久久久久一区二区三区| 国产成人一区二区精品非洲| 中文字幕日韩精品一区| 欧美视频精品在线| 麻豆免费精品视频| 国产精品你懂的在线| 在线观看三级视频欧美| 捆绑紧缚一区二区三区视频| 国产日韩精品一区| 欧美视频一区二区在线观看| 久久久久久久久久久久电影| 亚洲444eee在线观看| 国产精品久久夜| 国产精品免费av| 依依成人精品视频| 欧美成人激情免费网| 色欧美88888久久久久久影院| 毛片av中文字幕一区二区| 亚洲视频在线一区二区| 国产日产精品一区| 日韩一卡二卡三卡| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 久久99精品国产麻豆不卡| 亚洲欧美一区二区三区久本道91| www精品美女久久久tv| 欧美成人精品福利| 91福利精品视频| 欧美日韩国产片| 日韩视频在线永久播放| 久久女同互慰一区二区三区| 久久尤物电影视频在线观看| 欧美电影免费观看高清完整版 | jiyouzz国产精品久久| 久久99热狠狠色一区二区| 奇米色777欧美一区二区| 久久机这里只有精品| 成人性生交大片免费看中文| 日本高清视频一区二区| 国产**成人网毛片九色| 亚洲国产va精品久久久不卡综合| 日本一区二区三区在线观看| 亚洲综合区在线| 国产+成+人+亚洲欧洲自线| 日韩久久久精品| 一区二区成人在线视频 | 国产三级一区二区| 一区二区三区电影在线播| 人人爽香蕉精品| 菠萝蜜视频在线观看一区| 欧美最猛黑人xxxxx猛交| 欧美精品自拍偷拍动漫精品| 国产日韩欧美制服另类| 亚洲成人tv网| 丰满少妇在线播放bd日韩电影| 色www精品视频在线观看| 国产精品久久久久久久久动漫| 麻豆精品精品国产自在97香蕉 | 亚洲高清免费在线| 成人丝袜高跟foot| 欧美精品一二三四| 国产精品高潮久久久久无| 国产在线一区二区综合免费视频| 精品视频免费在线| 国产精品国产三级国产| 精久久久久久久久久久| 欧洲av一区二区嗯嗯嗯啊|