三维物理 - 汽车冲撞盒子墙(难度:3级)
- 
					
					
					
					
 介绍在这篇教程中,大家将制作一个简单的物理仿真游戏。玩家将驾驶汽车冲撞一摞盒子,能撞飞越多盒子得分越高。  
 第1步 - 新建一个带物理引擎的空场景首先,在创益编程游乐场新建一个项目,删除带小狗的角色1,然后把“空的1”改名为“主角”。 在“主角”角色中,添加以下积木。将创建一个空的三维场景,显示三维坐标轴,并启用物理引擎,重力为-1000. 
  
 得到如下结果: 
 第2步 - 添加一个广阔的地面接下来,利用平面添加一个广阔的地面,宽4000,长15000,然后为地面添加网格材料,大家可以用自己喜欢的颜色: 
  
 制作的地面如下所示: 
 第3步 - 为地面设置物理实体地面不能动,所以质量应当设置为0。其恢复系数和摩擦系数对于这个游戏来说并不重要。设置物理实体的积木如下:  
 第4步 - 添加一个坡道接下来,我们为汽车添加一个坡道,就是一个小平面,宽600,长1000。大家可以根据喜好添加网格材料。把坡道绕x轴旋转一个小角度,比如15度,然后移到前面,以便于给汽车留一些加速空间。  
 汽车坡道如下所示: 
 第5步 - 为坡道设置物理实体为坡道设置与地面相同的物理实体:  
 第6步 - 广播2条消息到目前为止,我们已经搭建好了平台。接下来,我们就要添加靶位盒子和玩家的汽车。做法就是,在“主角”角色广播如下这2条消息: 
  
 第7步 - 角色“靶子”要添加靶位盒子,最好在一个新角色中来做。添加一个空角色并命名为“靶子”,然后在这个角色中接收“添加靶子”事件:  
 第8步 - 添加盒子墙为了在角色“靶子”中添加盒子墙,我们可以用2个新变量“x”和“z”,并用2个嵌套的遍历循环来控制这2个变量。盒子大小为100,第1个变量循环的x坐标从-200走到200,第2个变量循环的z坐标从50走到450。盒子的y坐标都相同,为5500。添加盒子的积木代码如下:  
 添加的盒子墙如下所示: 
 第9步 - 设置不同颜色为了让盒子外观各不相同,我们可以为每个盒子应用随机颜色的网格材料:  
 现在的盒子墙如下: 
 第10步 - 为盒子墙设置物理实体最后,我们需要为每个盒子设置物理实体,只有这样才能让汽车与盒子相撞。设置一个较大的摩擦系数,以便于盒子不太容易滑动:  
 第11步 - 角色“汽车”现在我们准备添加汽车了。和之前一样,我们还是在一个新角色中操作,新角色命名为“汽车”,在这个角色中处理消息“添加汽车”: 
  
 第12步 - 添加汽车模型首先,我们添加“赛车”模型,高度为50。  
 添加的“赛车”模型如下: 
 第13步 - 启用汽车仿真模拟接下来就是本教程最重要的一步,用如下积木[启用汽车模拟]:(/topic/750/car-with-physics-simulation): 
  
 汽车的质量是单个盒子的10倍。较大的恢复系数将会使汽车撞到盒子后将盒子飞弹出去。轮胎摩擦系数10%会使轮胎有点打滑,这样的话,当前轮转向时,车身就会有点漂移。
 第14步 - 添加跟踪摄像机现在我们添加一个跟踪摄像机,当汽车转向时会跟随汽车。“主方向”设置为“自由”,以便于玩家能够随时缩放和转动摄像头。 
  
 跟踪摄像机的新视角如下所示: 
 第15步 - “D”、“A”键控制方向现在要让玩家能够用键盘驾驶汽车。我们用一个无限循环来检查按键。 首先,我们处理前轮的转向角度。当按下“D”健,我们让车轮右转15度;当按下“A”健,左转15度;如果没有按下按键,车轮笔直向前。 
  
 从车底可以清晰看到前轮的动作: 
 第16步 - 按“W”键向前行驶接下来我们要处理发动机动力和刹车系数,这两项独立于转向角度。 当按下“W”键,我们设置一个较大的正数动力,设置刹车系数为0。 
  
 第17步 - 按“S”键向后行驶同理,如果按下“S”键,我们就要把发动机动力设置成负数,从而使汽车倒退: 
  
 第18步 - 按“空格”键刹车当按下“空格”键,我们就要把发动机动力设置为0,刹车系数设为10%。这样的话,汽车就会重复不断减速10%。如果没有按下任何按键,我们把发动机动力和刹车系数都设为0。 
  
 第19步 - 星空背景最后,为了让场景更美观,我们可以在“主角”角色中设置一个星空背景,还要隐藏三维坐标系: 
  
 游戏最终演示效果如下: 
 创意扩展在这篇教程的基础上,大家可以改编成更有趣的游戏,以下是一些思路建议: - 不同的靶子:大家可以更改盒子墙的位置、形状和数量,盒子不必都叠在一起。
- 不同的坡道:大家可以设计不同的坡道,还可以提供多个坡道。
- 不同的目标:玩家把所有盒子都撞出平台就算完成游戏。