人气 253

[游戏程序] 无限大地图研究 [复制链接]

九艺网 2017-3-10 17:02:02

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
[table][tr][td]无限大地图 研究

实现无限大地图没有想象中那么难
今天尝试性的写了一下, 一个下午时间耗费了, 东西出来了, 效果不错, 点滴心得在此说一下
实现无限大地图, 说白了其实就是只绘制眼前的物体, 我们把这个扩展一下, 只要能实现一个地图能够沿着我们预想的轨道衍生, 并且删除已经走过去的部分, 这样的话, 其实顶点的个数还是没变, 那么什么变了呢, 明白人一想就知道, 是点本身变了
由于是试验, 所以我不必要用四叉树来进行一个完整的遍历过程, 用树组足够, 当然, 我用四叉树早已实现了足够大地图, 现在我要写的是无限大地图
我用一个二维树组来存储点
代码如下
CUSTOMVERTEX* vertices = new CUSTOMVERTEX[heightcount * widthcount];
int index = 0;
int indindex[100][100];
for( int i=0; iCreateIndexBuffer( size_index, 0, D3DFMT_INDEX16, D3DPOOL_MANAGED, &g_pIB, NULL );
//把索引值填入索引缓存区
VOID* pIndices;
g_pIB->Lock( 0,size_index,(void**)&pIndices,0 );
memcpy( pIndices,indices,size_index );
g_pIB->Unlock();
到此, 所有的创建工作已经完成, 我将会对这些点进行适当的变换
看下面的代码
CUSTOMVERTEX* verticesTemp;
g_pVB->Lock( 0,size_vertices,(void**)&verticesTemp,0 );
int index = 0;
//将前方的地形第一排的点进行重置
<p> for( int w=0; w
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|小黑屋|九艺游戏动画论坛 ( 津ICP备2022000452号-1 )

GMT+8, 2024-3-29 18:23 , Processed in 0.061491 second(s), 23 queries .

Powered by Discuz! X3.4  © 2001-2017 Discuz Team.