准备工作:

我们新建一个工程,名字叫做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)】——黄金矿工(上)(节点动作、碰撞体相关)相关推荐

  1. slider节点透明背景_【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)...

    一.涉及知识点 场景切换 按钮事件监听 节点事件监听 节点数组 循环中闭包的应用 动态更换sprite图片 定时器 预制资源 二.步骤 2.1 准备工作 首先,我们要新建一个空白工程,并在资源管理器中 ...

  2. 【Cocos Creator实战教程(7)】——猴子摘月亮(平台动作,碰撞检测详解)

    最后一个寒假说没就没... 话说我等Creator 的物理引擎等了好久好久,终于......还是没等到...... 我们今天就用碰撞检测系统和一些算法简单的模拟一下2D平台动作的物理特性吧 先来看一下 ...

  3. 【Cocos Creator实战教程(6)】——get47(数字消除)

    先来看一下游戏效果 电脑端:http://www.potato47.cn/get47 手机端:http://www.potato47.cn/get47-m 微信扫描: 游戏玩法: 游戏操作仿的是天天爱 ...

  4. Cocos Creator实战教程(5)】——打砖块(物理引擎,碰撞检测)

    1. 知识点 物理引擎 碰撞检测 2. 步骤 2.1 准备工作 搭一个游戏背景 2.2 小球运动 再建一个物理层,用来装游戏里的带有物理属性的东西,设置锚点为左下角 wall:墙//小球碰到就会反弹的 ...

  5. 【Cocos Creator 实战教程(1)】——人机对战五子棋(节点事件相关)

    整体思路 在15*15的棋盘上每一个可下棋子的地方都放置一个"隐形的棋子",当要在某个位置下子时就将该位置的棋子显示出来,在判断输赢逻辑里,我们根据这225个"隐形棋子& ...

  6. 【Cocos Creator 实战教程(2)】——天天酷跑(动画、动作相关)

    转载请保留原文链接,个人公众号:xinshouit(新手程序员),欢迎关注 准备工作 把背景图拉长,很长很长的那种....一会我们要让它滑动起来 背景动画 为背景节点添加滚动动画 现在背景就循环滚动起 ...

  7. 【Cocos Creator实战教程(3)】——TiledMap(瓦片地图)组件

    1. 前言 瓦片地图是由一张一张的正方形小图片拼接成的地图,例如炸弹人,QQ堂都是非常典型的瓦片游戏.瓦片地图(Tile Map) 不但生成简单,并且可以灵活的用于Cocos2d-x引擎.不论你的游戏 ...

  8. 【Cocos Creator 实战】06 - 如何给拼图游戏添加计时器

    文章目录 概览 主要内容 项目资源 开搞 项目结构 字体 如何控制节点的显示&隐藏 如何设置节点的相对位置 & 自动大小 & 对齐策略 如何防止节点的点击穿透 如何倒计时 总结 ...

  9. 【Cocos Creator 实战】02 - 给拼图游戏加上音乐和音效

    文章目录 概览 主要内容 项目资源 开搞 使用 AudioSource 播放(静态) 使用 AudioEngine 播放(静态 + 动态) 静态播放 动态播放 AudioSource 和 AudioE ...

最新文章

  1. Python将MySQL表数据写入excel
  2. 【系统架构师修炼之道】(13):操作系统基础知识——进程基础知识
  3. R语言quantmod包
  4. 11个实用jQuery日历插件
  5. Windows 11的19个新功能
  6. 计算SDWebImage缓存大小以及清除
  7. Linux防火墙配置入门
  8. oracle 表查询(1)
  9. 华为钱包开卡显示服务器异常,华为手机喜迎微信指纹支付 会遇到的11大常见问题!...
  10. 编程中,有哪些好的习惯一开始就值得坚持?
  11. HR告诉你,怎么回答“为什么从上家公司离职?”
  12. java 计算间隔天数,java 计算间隔的天数
  13. 构建初级前端页面以及重构开发环境(from 知乎)
  14. get_sequencer的用法总结
  15. 数据分析实战项目2:优衣库销售数据分析
  16. 怎么清理计算机里的音乐,如何清理电脑中的重复的音乐
  17. codeup之沙漏图形
  18. 各种接口资源整合(持续更新)
  19. 抖音一个老人和一个机器人歌曲_抖音歌曲少年是谁唱的 最近抖音非常火的一首歌曲...
  20. Python 绘制中国地图并标上国家名

热门文章

  1. 计算机硬盘是输出还是输入,输入输出
  2. ECshop 数据库表结构字段说明
  3. Sqlmap 22.05.23.05
  4. 无言的结局......
  5. 鸿蒙系统充电动画,荣耀智慧屏首发抢先体验:电视只是小功能,鸿蒙系统才是真亮点...
  6. Java正确获取星期Calendar.DAY_OF_WEEK
  7. Gulp老矣 尚能饭否
  8. 破物联网大数据难题,百度天工物联网平台上线时序数据库服务
  9. 灵飞经4·西城八部 第十七章 八部之主 6
  10. Premiere Pro教程