【Cocos Creator 实战教程(4)】——黄金矿工(上)(节点动作、碰撞体相关)
准备工作:
我们新建一个工程,名字叫做GoldMiner,把相关资源导入,搭建一个游戏场景如下(灰色节点先不用看,那是后来加上的):
绳子伸缩思路:
在玩游戏时我们需要让绳子伸长去采矿,在制作游戏的时候,绳子是一个节点,很多人都会利用节点的伸缩方法来实现绳子伸长的效果,但如果直接调整节点长度,会使图片变得模糊,如果绳子中间是纯色的,我们可以利用9path图片工具来制作相应可以拉伸不变形的图片。但我这里要介绍另一种方法——利用Mask组件遮挡绳子:
首先我们准备一根足够长的绳子图片,添加一个绳子节点,并将钩子添加为绳子节点的子节点
我们可以发现,绳子很长
添加一个空节点取名为mask,添加mask组件,调整节点大小(这里的mask节点的大小就是其子节点的显示区域)为绳子可见区域,并将绳子节点拖入成为mask节点的子节点
现在我们就把绳子的上面挡住了,只需要调整绳子位置就可以实现绳子伸缩的效果了。
绳子摇摆动作:
我们在Canvas节点添加一个游戏脚本组件
properties: {//绳子rope: {type : cc.Node,default : null,},//钩子hook: {type:cc.Node,default :null,}},
将两个我们需要用的节点声明为属性,在面板中拖入相关节点。
在onLoad()方法里实现绳子摇摆方法
this.shakeAction = cc.repeatForever(cc.sequence(cc.rotateTo(3,60),cc.rotateTo(3,-60)));
this.rope.runAction(this.shakeAction);
绳子伸长动作:
因为绳子节点是不停变换角度的,所以我们要动态的根据节点角度计算绳子变换位置(200是测试值,后面会根据情况改动,该值应该可以让绳子到达最远端)
this.rope.runAction(cc.moveBy(3,-200*Math.tan(Math.PI/180*this.rope.rotation),-200));
绳子收回动作:
我们在一开始记录一下绳子的初始位置,那么绳子收回的动作就可以这样写
//记录绳子初始位置
this.startPos = this.rope.position;
'''
'''
'''
this.returnAction = cc.sequence(cc.moveTo(3,this.startPos),cc.callFunc(function() {
this.rope.runAction(this.shakeAction);
}, this));//绳子收回后继续左右摇摆
this.rope.runAction(self.returnAction);
完整测试代码:
cc.Class({extends: cc.Component,properties: {rope: {type : cc.Node,default : null,},hook: {type:cc.Node,default :null,}},// use this for initializationonLoad: function () {//记录绳子初始位置this.startPos = this.rope.position;//绳子摇摆动作this.shakeAction = cc.repeatForever(cc.sequence(cc.rotateTo(3,60),cc.rotateTo(3,-60)));//绳子收回动作,绳子收回后执行摇摆动作this.returnAction = cc.sequence(cc.moveTo(3,this.startPos),cc.callFunc(function() {this.rope.runAction(this.shakeAction);}, this));//绳子左右摇摆this.rope.runAction(this.shakeAction);var self = this;this.node.on('touchstart',function(){self.rope.stopAllActions();//绳子伸长动作,根据角度动态计算self.rope.runAction(cc.moveBy(3,-200*Math.tan(Math.PI/180*this.rope.rotation),-200));},this);this.node.on('touchend',function(){self.rope.runAction(self.returnAction);},this);},// called every frameupdate: function (dt) {},
});
点击绳子伸出,松开绳子收回,效果如下:
现在我们就有挖矿工具了,但是坑里现在什么都没有,之后会在里面增加宝石,会用到Creator1.1支持的碰撞检测系统,有兴趣的朋友关注一下哈
【Cocos Creator 实战教程(4)】——黄金矿工(上)(节点动作、碰撞体相关)相关推荐
- slider节点透明背景_【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)...
一.涉及知识点 场景切换 按钮事件监听 节点事件监听 节点数组 循环中闭包的应用 动态更换sprite图片 定时器 预制资源 二.步骤 2.1 准备工作 首先,我们要新建一个空白工程,并在资源管理器中 ...
- 【Cocos Creator实战教程(7)】——猴子摘月亮(平台动作,碰撞检测详解)
最后一个寒假说没就没... 话说我等Creator 的物理引擎等了好久好久,终于......还是没等到...... 我们今天就用碰撞检测系统和一些算法简单的模拟一下2D平台动作的物理特性吧 先来看一下 ...
- 【Cocos Creator实战教程(6)】——get47(数字消除)
先来看一下游戏效果 电脑端:http://www.potato47.cn/get47 手机端:http://www.potato47.cn/get47-m 微信扫描: 游戏玩法: 游戏操作仿的是天天爱 ...
- Cocos Creator实战教程(5)】——打砖块(物理引擎,碰撞检测)
1. 知识点 物理引擎 碰撞检测 2. 步骤 2.1 准备工作 搭一个游戏背景 2.2 小球运动 再建一个物理层,用来装游戏里的带有物理属性的东西,设置锚点为左下角 wall:墙//小球碰到就会反弹的 ...
- 【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)
整体思路 在15*15的棋盘上每一个可下棋子的地方都放置一个"隐形的棋子",当要在某个位置下子时就将该位置的棋子显示出来,在判断输赢逻辑里,我们根据这225个"隐形棋子& ...
- 【Cocos Creator 实战教程(2)】——天天酷跑(动画、动作相关)
转载请保留原文链接,个人公众号:xinshouit(新手程序员),欢迎关注 准备工作 把背景图拉长,很长很长的那种....一会我们要让它滑动起来 背景动画 为背景节点添加滚动动画 现在背景就循环滚动起 ...
- 【Cocos Creator实战教程(3)】——TiledMap(瓦片地图)组件
1. 前言 瓦片地图是由一张一张的正方形小图片拼接成的地图,例如炸弹人,QQ堂都是非常典型的瓦片游戏.瓦片地图(Tile Map) 不但生成简单,并且可以灵活的用于Cocos2d-x引擎.不论你的游戏 ...
- 【Cocos Creator 实战】06 - 如何给拼图游戏添加计时器
文章目录 概览 主要内容 项目资源 开搞 项目结构 字体 如何控制节点的显示&隐藏 如何设置节点的相对位置 & 自动大小 & 对齐策略 如何防止节点的点击穿透 如何倒计时 总结 ...
- 【Cocos Creator 实战】02 - 给拼图游戏加上音乐和音效
文章目录 概览 主要内容 项目资源 开搞 使用 AudioSource 播放(静态) 使用 AudioEngine 播放(静态 + 动态) 静态播放 动态播放 AudioSource 和 AudioE ...
最新文章
- Python将MySQL表数据写入excel
- 【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识
- R语言quantmod包
- 11个实用jQuery日历插件
- Windows 11的19个新功能
- 计算SDWebImage缓存大小以及清除
- Linux防火墙配置入门
- oracle 表查询(1)
- 华为钱包开卡显示服务器异常,华为手机喜迎微信指纹支付 会遇到的11大常见问题!...
- 编程中,有哪些好的习惯一开始就值得坚持?
- HR告诉你,怎么回答“为什么从上家公司离职?”
- java 计算间隔天数,java 计算间隔的天数
- 构建初级前端页面以及重构开发环境(from 知乎)
- get_sequencer的用法总结
- 数据分析实战项目2:优衣库销售数据分析
- 怎么清理计算机里的音乐,如何清理电脑中的重复的音乐
- codeup之沙漏图形
- 各种接口资源整合(持续更新)
- 抖音一个老人和一个机器人歌曲_抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲...
- Python 绘制中国地图并标上国家名
热门文章
- 计算机硬盘是输出还是输入,输入输出
- ECshop 数据库表结构字段说明
- Sqlmap 22.05.23.05
- 无言的结局......
- 鸿蒙系统充电动画,荣耀智慧屏首发抢先体验:电视只是小功能,鸿蒙系统才是真亮点...
- Java正确获取星期Calendar.DAY_OF_WEEK
- Gulp老矣 尚能饭否
- 破物联网大数据难题,百度天工物联网平台上线时序数据库服务
- 灵飞经4·西城八部 第十七章 八部之主 6
- Premiere Pro教程