文件名称:消失的木块-简易多波形信号发生器电路设计
文件大小:46.65MB
文件格式:PDF
更新时间:2024-07-31 10:04:25
OpenGL ES3x 游戏开发 下卷吴 亚峰pdf
8.5 消失的木块 会突然消失。 读者可以通过在屏幕上滑动来调整摄像机,从而以不同的角度进行观察;也可以通过多次单击 屏幕,观察发生碰撞接触时其他物体消失的效果。其运行效果如图 8-10、图 8-11、图 8-12 及图 8-13 所示。 ▲图 8-10 案例运行开始 ▲图 8-11 小球正在掉落 ▲图 8-12 小球已经静止 ▲图 8-13 小球撞击物体 说明 图 8-10 为案例运行开始时的效果图。图 8-11 为小球正在掉落时的效果图,当小 球与木块接触时,木块将会消失。图 8-12 为小球静止时的效果图,读者可以观察出 小球经过的区域,木块全部消失了。图 8-13 为单击屏幕后,小球撞击物体时的效果 图,新的小球若与木块碰撞接触时,木块也会消失。读者可以在真机上观察木块消 失的效果。 8.5.2 初始化及渲染函数文件——main.cpp 该文件的实现与创建简单物理场景的案例相比只是发生了少量的变化,其余部分并没有太大 区别,这里就不再重复讲解相同的代码。具体代码如下。 (1)首先介绍创建刚体的 initCreateBodys 方法和添加刚体的 addBody 方法。其中 addBody 方 法与上一个案例相比,不同之处仅仅是创建了不同的刚体。具体代码如下。 代码位置:源代码/第 8 章/Sample8_4/jni/hellocpp 目录下的 main.cpp。 1 TexBody* m_ball; //全局的球物体指针 2 TexBody* m_ground; //全局的地面物体指针 3 void initCreateBodys(){ 4 btCollisionShape* planeShape=new btStaticPlaneShape(btVector3(0, 1, 0), 0); //创建地面形状 5 tbTemp = new TexPlane(UNIT_SIZE*100,planeTexId,planeShape, 6 m_dynamicsWorld,0,-16,0,0.4,0.8); //创建地面 7 tca.push_back(tbTemp); //将新立方体加入列表中 8 m_ground = tbTemp; //给全局变量赋值 9 #define ARRAY_SIZE_X 3 //x 方向上数组大小 10 #define ARRAY_SIZE_Y 3 //y 方向上数组大小 11 #define ARRAY_SIZE_Z 3 //z 方向上数组大小 12 #define START_POS_X -3 //x 方向上起始坐标值 13 #define START_POS_Y -3 //y 方向上起始坐标值 14 #define START_POS_Z -3 //z 方向上起始坐标值