首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

DirectX二维游戏中精灵与地图间的精确像素碰撞,该怎么处理

2012-04-15 
DirectX二维游戏中精灵与地图间的精确像素碰撞背景地图直接用一张bmp图片贴在底层(宽高经过调整成窗口的大

DirectX二维游戏中精灵与地图间的精确像素碰撞
背景地图直接用一张bmp图片贴在底层(宽高经过调整成窗口的大小后渲染出),规定了里面黑色的是可移动区域,非黑色的是障碍。
精灵就是一个矩形位图。

想构造一个函数来检测精灵与地图间的精确碰撞,打算检测精灵矩形外接圆上的八个点在地图上的颜色来检测是否与地图碰撞,传入参数就是精灵的世界坐标和移动方向。

自己参考着网上一些纹理与纹理之间的碰撞代码写了一个发现实现不了功能,估计首先世界坐标和地图的纹理坐标之间的转换不当,这里先求教下怎么转换;其次再问问如果我要加上游戏中用武器破坏地图(打算用黑圆遮住被破坏部分)后仍可实现准确的碰撞检测,是不是只能用LPDIRECT3DSURFACE backbuffer作为检测对象?如果是,它的检测和直接对纹理LPDIRECT3DTEXTURE的检测又有何不同?

其实最希望各位大神能给个模板,小弟初学对很多用法都不甚了解,还望多多帮助。

先谢~

[解决办法]
把你的地图生成一组数组 每次移动检测屏幕内的数字是否能行走不就可以了。。。
[解决办法]

探讨
直接锁定backbuffer会导致与游戏绘图函数运行冲突,所以另外建了一个表面,这个表面只是直接装载了地图的图片,未经放缩处理,所以加入了坐标变换。。效率优化问题就以后再处理了,求大神看看哪里错了,这个函数完全实现不了功能啊。。(worldx,worldy是精灵的窗口坐标,coord[8][2]为预先算好的八点相对位置,非全屏游戏)
bool Collidion_TestSE(int world……

热点排行