当前位置:   article > 正文

开发实现物理加速度移动_cocos creator《切水果》核心技术:抛物线物理仿真

cocoscreator 显示加速移动和转向

在切水果游戏中,我们需要从下方向上斜抛出水果。这时候就需要使用抛物线物理仿真。

一、 创建项目、导入资源、编辑游戏场景

b3cbf0a7899284357adaefc6240bbf23.png

具体场景在此不过过多阐述,需要源码的可以联系我们。点击链接加入群聊【unity/cocos交流二群】

二、 组件化开发流程

【1】创建一个类,自定义脚本js。

【2】实例化这个类,得到这个类的实例。【添加组件】、addComponent。

【3】执行原理:加载游戏场景 → 遍历节点树 → 加载节点上所有组件 → 游戏引擎调用组件中的方法、start方法 → 每次更新都会调用update(dt)方法。

新建game_mgr,代码如下:

0f5a0366327dfbe8c8b9ff9f66ecad40.png

在Canvas节点上,【添加组件】-【用户脚本组件】-game_mgr。

bf58329825f19cefa7b054195a8dbf22.png

在properties中添加属性,且通过编辑器绑定:

apple : { type : cc.Node, default : null, }

08417b26d70624e8f456641f1e9d1d82.png

在update方法中添加如下代码:

// 为什么非得用dt,不用会导致什么问题?

// 【1】因为不同手机帧频不一样,保证不同手机显示效果一致!

// 60FPS的手机会比30FPS的手机运动距离多一倍

// 【2】因为dt每次都不一样,保证同一手机是匀速运动

//this.apple.x += this.speed;

this.apple.x += this.speed * dt;

三、 抛物线物理仿真实现

重力加速g:

Vy = v0 + g * t;

h = v0 * t + 0.5 * g * t * t;

斜抛运动:

分解到水平上: 匀速直线运动;

分解到竖直方向: 匀变速直线运动 (加速度)。

1. 自定义用户脚本类throw_action.js

385f0f08b04c2a92d31c1619372dc7e9.png

98efd01064095cafb1fe75d73a20fe6a.png

在throw_action中实质只是修改设置相关的关键参数(速度分量、移动状态),具体动态效果在update(dt)方法中执行,因为每隔一段时间会刷新一次。

d3cf875c50d25998a7e60eb5103b977e.png

如果苹果超出屏幕显示区域,应该移出。

2. 添加组件到apple节点上

7a862a9bed6dd521967c52e34f62ca1f.png

运行结果如下:

e084dda2ef5a8fb9a85029c616bcd833.png

发现苹果速度小了,改properties中的值200为400,编译发现运行无变化!!为什么?

16fda7ecdafa0b732cd1e58859f40217.png

要么在编辑器中修改,要么在方法或start方法中修改。而且优先级start>>编辑器。

3. 随机不断抛出苹果

修改update(dt)方法中的代码如下:

227eddbed19374ab6224bb55b50506d4.png

9490199bd25df4328a596f524943cf20.png

如果是在运动中,不要重新出现新苹果。

当苹果超出屏幕区域后,移动状态切换为false。然后,进入到re_show方法中,条件才不会被拦截,所以会设置苹果到新的位置(从屏幕下方抛出,锚点在屏幕中心)。设置抛出速度、角度,然后调用throw_action()方法即可。方法throw_action中会重新计算速度分量,切回将运动移动状态修改为true,如此update方法中又能根据运动状态进行相关刷新,动态显示了。

4. 细节优化

发现苹果没有完全离开屏幕就消失了,还有一半遗留在屏幕就消失了。

9513fab8531da3abd458ab7ea9701a80.png

如上修改即可,因为苹果的锚点也在中心,要完全离开,还需要考虑苹果的宽和高!

四、 微信小游戏打包发布

略,需要远的,可以联系我们。点下方链接即可:

正在跳转​jq.qq.com
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/105104
推荐阅读
相关标签
  

闽ICP备14008679号