游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1338|回复: 0

这个是2.5D等角45°游戏里的一段代码

[复制链接]

2

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-6-20 17:08:00 | 显示全部楼层 |阅读模式
// 这个是2.5D等角45°游戏里的一段代码
// 一个tile是一个菱形的格子,地图是透过很多个tile拼接起来的
// 这个函数是通过传入的地图的像素来创建坐标系统
bool CTheodolite::Create(int nWidthPixel, int nHeightPixel)
{
        // 地图像素宽度
        m_dwMapWidthPixel = nWidthPixel;

        // 地图像素高度
        m_dwMapHeightPixel = nHeightPixel;

        int nCol = (nWidthPixel + TILE_WIDTH_PIXEL - 1) >> 6/*一个tile占64像素宽*/;

        int nRow = (nHeightPixel + TILE_HEIGHT_PIXEL - 1)>> 5/*一个tile占32像素高*/;       

        // 左上角第一个TILE的y向偏移
        m_yLeftTopYOffset = nRow - 1;       

        // 地图tile宽度
        m_dwMapWidthTile = nRow + nCol;         // 谁能帮忙解释一下地图的tile宽的为什么是这两个值的和

        // 地图tile高度
        m_dwMapHeightTile = nRow + nCol - 1;        // 同上

        // 地图宫格高度
        m_dwMapWidthGrid = (m_dwMapWidthTile + 16 - 1) >> 4 /*一个宫格占16个tile*/;

        // 地图宫格宽度
        m_dwMapHeightGrid = (m_dwMapHeightTile + 16 - 1) >> 4/*一个宫格占16个tile*/;

        return true;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-8 13:42

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表