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

转载请保留原文链接,个人公众号:xinshouit(新手程序员),欢迎关注

准备工作

把背景图拉长,很长很长的那种。。。。一会我们要让它滑动起来

背景动画

为背景节点添加滚动动画

现在背景就循环滚动起来了(图是我后来截的,这步猴哥还没登场呢)

猴哥动画

导弹动画

这里我们要添加两个Clip,一个是高空导弹,一个是低空导弹

这里我们要给导弹加几个帧事件,在导弹导弹猴哥头上的几个帧上添加judgeDown事件,当导弹到达猴哥头上,猴哥还没低头,那就游戏结束,低空导弹同理,需要猴哥跳起

结束场景

游戏脚本

Game.js

cc.Class({
    extends: cc.Component,

    properties: {
        king:{
            default:null,
            type:cc.Node,
        }
    },

    onLoad: function () {
        var self = this;
        //左侧蹲,右侧跳
        this.node.on(‘touchstart‘,function(event){
            var visibleSize = cc.director.getVisibleSize();
            if(event.getLocationX()<visibleSize.width/2){
                self.king.getComponent(‘King‘).down();
            }else{
                self.king.getComponent(‘King‘).jump();
            }
        });
        //左侧松手就恢复跑的状态
        this.node.on(‘touchend‘,function(event){
            var visibleSize = cc.director.getVisibleSize();
            if(event.getLocationX()<visibleSize.width/2){
                self.king.getComponent(‘King‘).downRelease();
            }else{
                // self.king.getComponent(‘King‘).jump();
            }
        });
    },

});

King.js

cc.Class({
    extends: cc.Component,

    properties: {
        // 主角跳跃高度
        jumpHeight: 0,
        // 主角跳跃持续时间
        jumpDuration: 0,
        //主角状态
        state:‘run‘,
    },

    //跑
    run:function(){
        this.getComponent(cc.Animation).play(‘king_run‘);
        this.state = ‘run‘;
    },

    //跳
    jump:function(){
        if(this.state == ‘run‘){
            this.state = ‘jump‘;
            this.getComponent(cc.Animation).stop();
            this.node.runAction(cc.sequence(cc.jumpBy(this.jumpDuration, cc.p(0,0), this.jumpHeight, 1),
                                cc.callFunc(function() {
                                    this.run();
                                }, this)));
        }
    },

    //弯腰跑
    down:function(){
        if(this.state == ‘run‘){
            this.state = ‘down‘;
            this.node.runAction(cc.scaleTo(0.05, 1, 0.5));
        }
    },

    //腰累了
    downRelease:function(){
        if(this.state == ‘down‘){
            this.node.runAction(cc.sequence(cc.scaleTo(0.05, 1, 1),
                                cc.callFunc(function() {
                                    this.run();
                                }, this)));
        }
    },
});

Bomb.js

cc.Class({
    extends: cc.Component,

    properties: {
        king:{
            default:null,
            type:cc.Node,
        }
    },

    //判断高空导弹来时,猴哥是否蹲下(响应之前设置的帧事件)
    judgeDown:function(){
        if(this.king.getComponent(‘King‘).state == ‘down‘){
            console.log("down---------------------");
        }else{
            cc.director.loadScene(‘Over‘);
        }
    },  

    //判断低空导弹来时,猴哥是否跳起
    judgeJump:function(){
        if(this.king.getComponent(‘King‘).state == ‘jump‘){
            console.log("jump---------------------");
        }else{
            cc.director.loadScene(‘Over‘);
        }
    },

    onLoad: function () {
        let self = this;
        //每隔2秒随机发射高空和低空导弹
        this.schedule(function(){
            if(Math.random()>0.5){
                this.getComponent(cc.Animation).play(‘bomb_high‘);
            }else{
                this.getComponent(cc.Animation).play(‘bomb_low‘);
            }
        },3);
    },
});

Over.js

cc.Class({
    extends: cc.Component,

    properties: {
    },

    reTry: function(){
        cc.director.loadScene(‘Game‘);
    },

    onLoad: function () {

    },

});

最终效果:

时间: 2024-11-01 12:46:41

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

【Cocos Creator 实战教程(1)】——人机对战五子棋

整体思路 在15*15的棋盘上每一个可下棋子的地方都放置一个"隐形的棋子",当要在某个位置下子时就将该位置的棋子显示出来,在判断输赢逻辑里,我们根据这225个"隐形棋子"的状态(黑,白,无)判断输赢 涉及知识点 场景切换 按钮事件监听 节点事件监听 节点数组 循环中闭包的应用 动态更换sprite图片 定时器 关于人机算法 参考了http://blog.csdn.net/onezeros/article/details/5542379 新建工程 在Menu.js里添

【COCOS CREATOR 系列教程之二】脚本开发篇&事件监听、常用函数等示例整合

[Cocos Creator ](千人群):  432818031 上一篇,介绍了Himi在使用过cc所有组件后的一篇总结,没有具体介绍每个组件的原因在于官方文档很齐全,而且也有视频的介绍. 所以希望童鞋们可以把我这两篇博文当成对组件.脚本两部分开发的整理与总结. 后续的文章,Himi应该主要更新一些官方还未补充或者还没有的教程.避免无用功. 下面直接放出代码,因为不是很难理解.所以不再一一赘述,都是常用的函数.事件监听.动作回调.定时器等开发过程中必接触的. 大致内容如下: cc 属性介绍 获

《天天酷跑》游戏后台结构体标准化探 转

http://www.yxrb.net/thread-11839-1-1.html 在程序设计领域,程序就是数据结构加算法的理论早已深入人心.在手机游戏的后台系统中,数据结构就是各式各样的struct或class,遍布于数据存储(DB).内存(业务逻辑).网络(C/S交互协议),算法就是各种基于数据的业务处理逻辑了. 手机游戏后台数据结构有一些特点: 以整形数据为主,字符串类型比例很少,绝大部分数据可以用整形(直接或间接)表示. 相对大型端游,数据结构相对简单,绝大多数可以通过2-3层结构来抽象

Android版xx助手之天天酷跑外挂详细分析

Android版xx助手之天天酷跑外挂详细分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开始火了起来,这更是改变了人们长久以来的游戏娱乐习惯.茶余饭后,小伙伴们掏出"家伙"打个飞机已是习以为常的事情了.加之移动客户端游戏开发周期短,投入少等特点,很多初创公司也纷纷投入到这个领域中来,并且很多游戏都取得了不错的成绩.就在前不久,全球游戏巨头暴雪的新游戏<炉石传说>也推

Android版xx助手之天天酷跑外挂具体分析

Android版xx助手之天天酷跑外挂具体分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也開始火了起来,这更是改变了人们长久以来的游戏娱乐习惯.茶余饭后,小伙伴们掏出"家伙"打个飞机已是习以为常的事情了.加之移动client游戏开发周期短,投入少等特点,非常多初创公司也纷纷投入到这个领域中来,而且非常多游戏都取得了不错的成绩.就在前不久,全球游戏巨头暴雪的新游戏<炉石传说&

程序游戏推荐(C语言贪吃蛇,python天天酷跑(需要安装pygame),js是狠人就坚持30s)

下面是下载位置,我把他们上传到我的文件下了. C语言贪吃蛇:https://files.cnblogs.com/files/ITXiaoAng/%E8%B4%AA%E5%90%83%E8%9B%87.rar python天天酷跑:https://files.cnblogs.com/files/ITXiaoAng/%E5%A4%A9%E5%A4%A9%E9%85%B7%E8%B7%91.zip 30s: https://files.cnblogs.com/files/ITXiaoAng/%E7%B

【COCOS CREATOR 系列教程之四】基于0.7.1先简单制作一个PAGEVIEW

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/cocos-creator/1999.html 由于当前版本还没有发布1.0,因此还有不少组件没有发布,那么Himi也看到Cocos Creator群里有几个童鞋问起过PageView的问题,那么Himi正好借此练手,基于当前版本制作一个PageView. 本文分为两部分进行讲解: 1. 制作PageView     2. 如何使用 一. 制作

关于Cocos Creator用js脚本代码播放骨骼动画的步骤和注意事项

1.用cc.find()方法找到相应的骨骼动画节点,并把这个对象赋值给一个var出来的新对象. 具体代码:var spineboy_anim = cc.find("UI_Root/anchor_lb/spineboy"); 2.用getComponent()方法找到相应骨骼动画节点的骨骼动画组件,并把这个对象赋值给一个var出来的新对象. 具体代码:var ske_anim_comp = spineboy_anim.getComponent(sp.Skeleton); 3.把第二点的新

cocos2d 简单高仿天天酷跑游戏

1.先直接上视频来看下这个游戏的样子(GIF已经不能满足这个游戏的展示了) 跑酷游戏最纠结的是地图,碰撞倒是简单,可以自己写或者使用box2d等物理引擎.跑酷游戏地图的特点就是随机性.但是随机中又有策划特意安排的部分,这样让玩家有小小惊喜.所以我就打算这样实现:用地图编辑器编写个几十个地图,然后洗牌掉,从第一个开始取,直到最后最后一个后,再重新洗牌,取第一个.这样就能突出天天跑酷游戏的特点.随机中又有特定安排. 游戏中绘制地图当然不能一次全部完成,那样太慢了.手机屏幕横向就那么长,初始化两个地图