一起推导抛射体运动的各种公式,并在游戏中应用这些公式,实现各种有趣的功能。 前言 Hi,我是陈皮皮。 概述主线任务 本文的主线任务(核心主题)是「 抛射体运动(Projectile Mot
Hi,我是陈皮皮。
概述 主线任务本文的主线任务(核心主题)是「抛射体运动(Projectile Motion)」。
抛射体运动常常出现在我们的日常生活中,例如篮球运动员投篮后篮球在空中的运动。
在各种电子游戏中也可以看到抛射体运动的身影,例如《坦克世界》中坦克射击后炮弹在空中的运动。
如你所见,本文的标题是《抛射体运动在游戏开发中的实践》,我们将一起推导抛射体运动的各种公式,并在游戏中应用这些公式,实现各种有趣的功能。
支线任务除了主线任务,本文还包括一些支线任务:
- 3D 游戏中的对象交互与射线投射
- 三维空间中矢量的点乘与叉乘(线性代数)
- 三维空间中矢量在平面上的投影计算
- 三维空间中矢量的有向角计算
- 实时预绘制炮弹的运动轨迹
先给大家看下我们要实现的效果。
在线预览:https://app.chenpipi.cn/cocos-case-projectile/
动图:
示例项目与本文一同出现的示例项目「炮弹投射(Projectile)」为开源项目。
为了避免文章又臭又长,项目中的一些功能特性没有在文章中介绍,同时我会对项目代码进行整合再插入文内,所以实际的项目结构与代码和文章中出现的会有些许差异。
下载源码:
- Gitee 仓库:https://gitee.com/ifaswind/cocos-case-projectile
- GitHub 仓库:https://github.com/ifaswind/cocos-case-projectile
- Cocos 商店:https://store.cocos.com/app/detail/3680
本项目使用的游戏引擎为 Cocos Creator 3.4.2。
正文 场景搭建先来一段轻松愉快的搭积木体验。
环境快速搭建一个简单的场景,放置一些五颜六色且高矮不一的障碍物(或者说是平台)。
记得给这些东西都加上合适的碰撞器(Collider),这样我们才能够通过射线和它们进行交互。