《CSOL大灾变》Mobile开发进度记录——扔掉与拾取武器的逻辑
在武器系统的开发过程中,涉及到武器的丢弃逻辑。由于场景是复制场景,而自己写碰撞测试和抛物线以及重力下落来模拟扔掉一把武器,并且要防止武器扔到墙里。如果自己实现这些逻辑,那么会占用渲染线程的时间开销,即使单独在子线程中实现这部分碰撞和物理模拟。也还需要注意很多细节,而jMonkey物理引擎本身就支持并行线程模拟,并且可以包含完整,自然且标准的反弹物理模拟与碰撞检测。所以使用物理刚体去实现是最有效的手段。
我们需要注意两点:
1.约束武器刚体x,y,z旋转;
2.约束武器刚体只与指定对象碰撞,同时防止武器之间的碰撞;
3.对武器施加抛物线冲量来模拟物理扔掉;
这三点注意下,就可以完成一个简单的武器丢弃逻辑了,而且几乎不占用性能开销。下面是测试GIF:

接下来,我们需要能够拾取武器,如果我们仍然使用刚体去做碰撞的话,那么势必会与玩家发生碰撞,当我们只需要通知碰撞触发,而不需要执行碰撞处理。什么意思呢?简单的说,就是玩家接触武器后受到碰撞信息,但是不发生碰撞处理(即不会站在武器的包围盒上面),如果我们手动每帧去做包围盒测试,跟上面提到的一样,即浪费cpu时间又要自己额外线程避免渲染线程。所以,最标准的做法就是触发器,同Unity一样,可以添加一个物理触发器(GhostControl)。然后把触发器设置为检测玩家的碰撞标记组,提高物理引擎的效率。
效果如下:

这里,我们使用刚体模拟物理运动与碰撞,使用触发器让玩家可以监测拾取物体。这么做效率非常高,也是标准游戏的做法,比起自己在更新函数中做什么射线检测,包围盒检测要高效很多,因为实时物理引擎的算法比起自己在更新函数中去做检测算法要高效太多了。所以尽可能全部用物理引擎去处理(这实际上就是目前所有主流游戏的做法),不建议用古老的技术(比如BSP,检测包围盒这些),而应该统一处理物理引擎。
在这里,紫色包围盒是刚体碰撞体,黄色包围盒是触发器。
完成这些后,就可以集成到游戏中了。
《CSOL大灾变》Mobile开发进度记录——扔掉与拾取武器的逻辑的更多相关文章
- jQuery mobile 开发问题记录
一.动态加载页面问题 1.存在这样一个页面布局: main.html 为主界面A,B为该页面中的三个page,其中A为splitview左部分页面,B为右半部页面 a1.html 为一个独立的页面 a ...
- [课程设计]Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计)
Scrum 3.3 多鱼点餐系统开发进度(下单详细信息页面设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点 ...
- Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】
2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...
- iOS开发之记录用户登录状态
iOS开发之记录用户登录状态 我们知道:CoreData的配置和使用步骤还是挺复杂的.但熟悉CoreData的使用流程后,CoreData还是蛮好用的.今天要说的是如何记录我们用户的登陆状态.例如微信 ...
- [课程设计]Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计)
Scrum 3.8 多鱼点餐系统开发进度(留言反馈系统设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统 ...
- [课程设计]Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案)
Scrum 3.7 多鱼点餐系统开发进度(留言板选择方案) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统W ...
- [课程设计]Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计)
Scrum 3.6 多鱼点餐系统开发进度(用户测试反馈页面构思&留言板设计) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团 ...
- [课程设计]Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面)
Scrum 3.5 多鱼点餐系统开发进度(修复Bug&美化页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅 ...
- [课程设计]Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面)
Scrum 3.4 多鱼点餐系统开发进度(下单详细信息页面&会员信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队 ...
- [课程设计]Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面)
Scrum 3.2 多鱼点餐系统开发进度(页面优化&下单详细信息页面) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选 ...
随机推荐
- 经典问题 1 —— DAG 上区间限制拓扑序
问题描述 给定一个 DAG,求一个拓扑序,使得节点 \(i\) 的拓扑序 \(\in [l_i,r_i]\). 题解 首先进行一个预处理:对于所有 \(u\),令 \(\forall (v,u)\in ...
- echarts图表配置
1.柱状图 option = { xAxis: { type: 'category', data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] ...
- Dubbo 中 Zookeeper 注册中心原理分析
vivo 互联网服务器团队- Li Wanghong 本文通过分析Dubbo中ZooKeeper注册中心的实现ZooKeeperResitry的继承体系结构,自顶向下分析了AbstractRegist ...
- Springboot整合AOP和注解,实现丰富的切面功能
简介 我们在文章<Spring AOP与AspectJ的对比及应用>介绍了AOP的使用,这篇文章讲解一下AOP与注解的整合,通过注解来使用AOP,会非常方便.为了简便,我们还是来实现一个计 ...
- 了解 Transformers 是如何“思考”的
Transformer 模型是 AI 系统的基础.已经有了数不清的关于 "Transformer 如何工作" 的核心结构图表. 但是这些图表没有提供任何直观的计算该模型的框架表示. ...
- JavaScript 疑难记录(未解决)
异步迭代器与生成器的联系和区别
- Vue的认识、入门小历史
VUE.3 小知识 渐进式框架,尤雨溪 Soc原则:关注度分离原则 网络通信:axios 页面跳转:vue-router 状态管理:vuex Vue-ui: Ant-Design 阿里巴巴基于Reac ...
- 我Alfred Workflow工具集合
MyToolBox 我常用的工具箱,Alfred Workflow工具集合满足日常开发使用场景.不断完善和更新Alfred Workflow. 目前包含一下功能. 时间戳转换 unicode转中文 随 ...
- select去除默认样式
select { /*Chrome同Firefox与IE里面的右侧三角显示的样式不同*/ border: solid 1px #ddd; /*将默认的select选择框样式清除*/ appearanc ...
- Wpf Border圆角 设置不成功
//错误的用法 这样子是不会出现圆角的,哪怕你把CornerRadius设置到1000 <Border CornerRadius="3" Width="100&qu ...