我正在做的一个游戏。
中文名字叫四元块 。。。英文叫Quatris(其实就是俄罗斯方块的 空间升级版)
除了是空间操作,块的种类也增加了 ,比如 。。。画不出来 你想象一下四个立方体一个挨着一个的所有三维空间排列吧 这个游戏里都有
渲染引擎Ogre。界面Cegui。IDE VS2008
我现在做完了
1.块的产生Block
2.基本动作(前后左右move这些)
这里都是基于节点的,也就是说ogre的 sceneNode给我做了大部分处理。这里有个小trick:每个块block由四个check组成 每个块有一个parentNOde 它生成4个childnode 每个childnode又各有一个childnode 2 所有的check entity都放在childnode2上 childnode2被setposition(-cubewidth/2,-cubewidth/2,-cubewidth/2,)---这里这么复杂的处理是为了 根据scendnode._getderivedPosition来获取到该check在空间的位置 映射到 container的空间数组里或者向平面投影比较方便计算 不然 一旋转 还要根据orientation来算。。。这样 简直无法想象
还有个问题就是。你做了位移之后直接用getderivedposition得到的数据不对的。根本没更新。很明显你需要更新一下也就是sceneNode->_update(bool,bool)
3.做Block在底面的投影
用的manulobj 对于trianglestrip类型的 顶点顺序 和counterclockwise剔除
4.碰撞(用数组实现的,看了一些帖子,研究了一些物理引擎,确实不需要 也很不合适那些物理引擎如physx更适合给一个rpg的来做碰撞而不是我这些立方体)
5.camera
我要将camera做成的样子:首先空间中 由一个比较大的立方体是blocks的活动空间 在这个空间的正中央竖着 一根很长的棍子。有一个很大的圆盘 插在棍子上 圆盘的平面和棍子垂直 相机在圆盘的圆周上四个等距离的节点上离散运动 圆盘可以沿着棍子上下活动。摄像机一直是 斜向下45度。可以沿着lookat 前后运动 和圆盘一起上下运动(沿那个棍子)按左右的时候它只能在圆盘的四个点之中转换 转换的过程是慢慢滑过去的
修改2010.12.11这里改掉 取笑相机整体上下移动的功能 因为 相机是斜向下的,朝lookat的地方moveon就是向下了
8.计分
哈哈做到材质了
6.材质 随着块数变多帧率下降太严重了 也许要 先优化 不然这个游戏的存在都没有什么意义了
越炫越好 这里可以加 很多materail的脚本 还有 compositer 还有shader之类之类的 可以先去看看compositer
7.效率优化
ps:写出来不会丢 在纸上写的被我丢的到处都是