当前位置: 首页 > Web前端 > HTML5

cocoscreator3D-拇指射击-3D项目入场练习

时间:2023-04-05 00:34:57 HTML5

你的命中率是多少?在文章底部尝试一下!效果预览配置环境:CocosCreator3Dv1.0.1玩法:触摸屏幕,上滑射击!注意篮板会移动!看看你的命中率是多少!实现原理为了达到好的投篮效果,在网上找了一个投篮机参数,根据实际参数大致设置了篮筐的大小,球的大小,篮筐的位置。Collider:篮板直接使用盒子碰撞组件(BoxColliderComponent),篮球使用球碰撞组件(SphereColliderComponent)。由于没有环形碰撞器组件,篮球架使用了多个球碰撞器组件来实现碰撞检测。小球轨迹:由于物理引擎的完整计算,要使小球的轨迹符合我们的预期,必须遵循物理原理。这里需要的知识是位移与加速度、速度与时间的关系。我们可以从三个方向考虑,需要计算初速度V_z和V_y。可以看作是Z轴方向的匀速运动,Y轴方向的匀速运动。我们已经设置好了Z轴和Y轴的位移,我们只需要设置投掷时间t就可以计算出初速度了。注意Y轴的最终速度必须与初始速度相反,才能达到图中抛物线的效果。参考计算如下:constCONST_H=1.25;constCONST_S=2.3;constCONST_G=-10;constCONST_T=0.8;constCONST_V_Z=CONST_S/CONST_T;constCONST_V_Y=CONST_H/CONST_T-CONST_G*CONST_T/2;它是通过将触摸开始位置x和触摸结束位置x之间的差值乘以一个系数得到的。目标判断:我在篮球篮下添加一个碰撞器检测。然后通过分组和遮罩来控制对撞机的开关。发射前开启碰撞检测,投掷时关闭碰撞检测让球落下。只要满足以下条件,就会发生碰撞检测。(GroupA&MaskB)&&(GroupB&MaskA)经过测试,发现Mask默认为-1(即每一位为1),Group默认为1。所以只要将MaskB设置为2(即只有第二位为1,其余为0),就可以通过控制GroupA的第二位来控制collider开关。参考代码如下:constPHY_GROUP={Group1:1<<1}//设置篮筐碰撞体maskthis.colliderComponent_goal.setMask(PHY_GROUP.Group1)//开启碰撞并设置小球的groupthis.colliderComponent_basketball.addGroup(PHY_GROUP.Group1)//关闭碰撞并设置小球的groupthis.colliderComponent_basketball.removeGroup(PHY_GROUP.Group1)得分判断使用对撞机检测,控制其检测开关让小球继续运动。如果你有更好的方法或者想法,欢迎留言分享交流!以上就是白玉无冰使用CocosCreator3D开发“拇指射击”项目的主要技术分享。欢迎关注【百语无病】公众号。在公众号回复【缩略图】获取完整代码。本文所用图片素材均来自网络!版权归原作者所有,如有侵权请联系我们!在线试玩源码获取