cocos creator 3D | 蚂蚁庄园运动会星星球

AlgoZenith
• 阅读 2749
上一篇文章写了一个简易版的蚂蚁庄园登山赛,有小伙伴留言说想要看星星球的,那么就写起来吧!

cocos creator 3D | 蚂蚁庄园运动会星星球

效果预览

cocos creator 3D | 蚂蚁庄园运动会星星球

配置环境 cocos creator 3d 1.0.0

小球点击

3d里节点无法用 cc.Node.EventType.TOUCH_START 监听。最终在论坛上找到一个 raycast 解决方法。参考代码如下。

start() {
    systemEvent.on(SystemEventType.TOUCH_START, this.onClickBall, this);
}
private _ray = new geometry.ray();
private onClickBall(touch: Touch, event: EventTouch) {
    const pos = touch.getLocation();
    this.camera.screenPointToRay(pos.x, pos.y, this._ray);
    const result: { node: Node }[] = this.node_ball_click.scene.renderScene['raycast'](this._ray);
    if (result.some((i) => {
        if (i.node === this.node_ball_click) {
            return true;
        }
    })) {
        //点击到小球处理逻辑
    }
}

其中 result 返回的是一个包含node节点的结果数组。获取后需要判断一下是否为小球节点。

据说这个方案消耗性能比较大,后续应该会有更好的解决方案。

cocos creator 3D | 蚂蚁庄园运动会星星球

动画系统

采用了编辑器的动画编辑器,对需要部分增加动画效果。由于我的资源是网上找的,那只鸡有些身体部分切割的不好,所以小鸡的动画比较差一些。

需要注意的是动画编辑器里的rotation属性,与节点里的属性面板的rotation对应不上,而应该采用eulerAngles的属性。

cocos creator 3D | 蚂蚁庄园运动会星星球

据说后续版本会处理?

cocos creator 3D | 蚂蚁庄园运动会星星球

小球轨迹

采用tween控制小球坐标数值,先移动到最高点,然后再移动到最低点。

cocos creator 3D | 蚂蚁庄园运动会星星球

在运动轨迹中加入一些随机值,就可以达到不同位置的效果啦。

tweenUtil(this._node_balll_pos)
    .stop()
    .to(time, new math.Vec3((this.node_ball.position.x + BALL_INIT_X) / 2, BALL_MAX_Y * (0.8 + 0.2 * Math.random()), targetZ / 2))
    .to(time, new math.Vec3(BALL_GAMEOVER_X, BALL_MIN_Y, targetZ))
    .start();

小结

完成这个小功能主要遇到的问题是3d节点点击事件,和动画系统的rotation的问题。不过这些都在论坛里找到了相应的解决方法。

以上就是我最新的学习成果!如有问题或新的想法欢迎留言!我有了好想法会第一时间分享给大家的!


cocos creator 3D | 蚂蚁庄园运动会星星球


在线试玩
源码获取

点赞
收藏
评论区
推荐文章
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
Karen110 Karen110
4年前
一篇文章带你了解JavaScript日期
日期对象允许您使用日期(年、月、日、小时、分钟、秒和毫秒)。一、JavaScript的日期格式一个JavaScript日期可以写为一个字符串:ThuFeb02201909:59:51GMT0800(中国标准时间)或者是一个数字:1486000791164写数字的日期,指定的毫秒数自1970年1月1日00:00:00到现在。1\.显示日期使用
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Stella981 Stella981
3年前
Exceptionless
<divid"cnblogs\_post\_body"class"blogpostbodycnblogsmarkdown"<h1id"exceptionless.netcore开源日志框架"Exceptionless.NetCore开源日志框架</h1<blockquote<p作者:markjiang7m2<b
Stella981 Stella981
3年前
Service Mesh 双十一后的探索和思考(上)
1\.引言2019年ServiceMesh在蚂蚁大规模落地并完美支撑双十一核心链路,对于落地过程在去年已经有系列文章解读。而在此之后的一年多时间,ServiceMesh在蚂蚁又在如何演进呢。本文介绍蚂蚁ServiceMesh在双十一落地之后所做的探索和思考。2\.
Stella981 Stella981
3年前
Docker 部署SpringBoot项目不香吗?
  公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。  !(http://dingyue.ws.126.net/2020/0920/b00fbfc7j00qgy5xy002kd200qo00hsg00it00cj.jpg)  2
Stella981 Stella981
3年前
BZOJ3786星系探索——非旋转treap(平衡树动态维护dfs序)
题目描述物理学家小C的研究正遇到某个瓶颈。他正在研究的是一个星系,这个星系中有n个星球,其中有一个主星球(方便起见我们默认其为1号星球),其余的所有星球均有且仅有一个依赖星球。主星球没有依赖星球。我们定义依赖关系如下:若星球a的依赖星球是b,则有星球a依赖星球b.此外,依赖关系具有传递性,即若星球a依赖星球b,星球b依赖星球c,则有星球
似梦清欢 似梦清欢
2年前
C语言易错内容汇总
!image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/3dc55e061bdab8d2c66dcdf6d51bf99f.png)
近屿智能 近屿智能
4个月前
蚂蚁集团发布“Plan A”全球AI专项计划,AIGC时代必修课首选近屿智能实战体系
近日,蚂蚁集团官宣上线其面向AI领域研究型人才的全新专项招募计划——PlanA。作为“蚂蚁星”校招项目的战略升级,该计划锁定人工智能核心研究方向,聚焦前沿技术攻关与落地应用转化,展现出科技巨头对通用人工智能(AGI)未来的战略布局。据悉,PlanA将以“研