Cocos creator小游戏实现套牛小游戏资源及代码

Cocos creator小游戏实现套牛小游戏资源及代码
最近在学习Cocos Creator,作为新手,刚刚开始学习Cocos Creator,上线了两个微信小游戏,刚刚入门,这里记录一下小绳套牛实现及上线过程的过程。

在这里插入图片描述

一 安装CocosDashBoard

这里就不介绍如何安装了

本案例使用的是编译器版本为2.4.10

二 新建2D项目RunCow

1、管理项目目录

在资源管理器中新建文件夹

  • anim 动画
  • preb 预制体
  • res 图片、语音资源
  • scene 场景
  • scripts 脚本资源

将资源文件拖到res目录下

2、搭建界面

该案例中的场景界面为主界面main_scene、游戏界面game_scene.fire、关卡界面

在入口主界面中有进入游戏,绑定Touch时间,点击进入加载game场景
代码如下:

 // start动画
    btnStartAnimated() {
        this.btnStart.node.scale = 1.0;
        this.btnStart.node.runAction(cc.repeatForever(cc.sequence(
            cc.scaleTo(0.6, 1.2),
            cc.scaleTo(0.6, 1.0)
        )));
    }

    btnStartPlay() {
        this.selectLevel();
        this.loadingBar.node.active = true;
        this.btnStart.node.active = false;
        this.loadingBar.progress = 0;
        this.loadingBar.barSprite.fillRange = 0;
        cc.loader.onProgress = (count, amount, item) => {
            if (this.isFinished == false) {
                let progress = Number((count / amount).toFixed(2));
                if (progress > this.loadingBar.barSprite.fillRange) {
                    this.loadingBar.barSprite.fillRange = count / amount;
                }
            }
        };
        cc.director.preloadScene("game_scene", function () {
            if (this.isFinished == false) {
                this.loadingBar.node.active = false;
                this.btnStart.node.active = false;
                console.log("加载成功");
            }

            cc.director.loadScene("game_scene");
            this.isFinished = true;
        }.bind(this));
    }

进入游戏主场景game_scene中
绑定节点

创建奔跑的牛,这里用到牛的预制体,设置schedule定时器,创建奔跑的牛

createCow() {
        if (!this.checkShouldSchdule()) {
            return;
        }

        if (this.curCowType == 0) {
            this.curCowType = 1;
        } else if (this.curCowType == 1) {
            this.curCowType = 2;
        } else if (this.curCowType == 2) {
            this.curCowType = 0;
        }

        let cow = cc.instantiate(this.cowPreb).getComponent(CowRun);
        cow.cowType = this.curCowType;
        cow.node.setPosition(cc.v2(this.canvasWidth, -60));
        this.cowRoot.addChild(cow.node);
    }


    // 倒计时
    beginSchedule() {
        this.schedule(this.onCountDown, this.interval);
    }

    onCountDown() {
        if (!this.checkShouldSchdule()) {
            return;
        }

        this.countDuration--;
        if (this.countDuration < 0) {
            // 游戏结束,弹出游戏结束提示
            this.showGameOver();

            this.stopSchedule();

            this.countDuration = 0;
        }

        this.countDownLB.string = this.countDuration + "s";
    }

    stopSchedule() {
        this.unschedule(this.onCountDown);
        this.unschedule(this.createCow);
    }

奔跑的牛使用的是动画编辑器来设置的动画,通过不同类型的牛来播放不动的奔跑动画
RunCow.ts
代码如下

playAnim() {
        let anim = this.getComponent(cc.Animation);
                
        if (this.cowType == 0) {
            let animState = anim.play('cow1');
            animState.speed = 2;
        } else if (this.cowType == 1) {
            let animState = anim.play('cow2');
            animState.speed = 2;
        } else {
            let animState = anim.play('cow3');
            animState.speed = 2;
        }
    }

    update (dt) {
        this.node.x -= this.speed*dt;
        if (this.node.x < -this.canvasWidth) {
            this.node.removeFromParent();
        }
    }

当牛奔跑超出左侧界面外,则将移出该节点this.node.removeFromParent

套绳的动画
套牛的绳子有不同的类型,默认抛出绳子后拉回套中的牛
这里执行this.cowRope.runAction一连串动作
代码如下

// 套牛的动作
    throwCow() {
        if (!this.checkShouldSchdule()) {
            return;
        }

        if (this.isThrowing) {
            return;
        }

        this.cowRope.getComponent(cc.Sprite).spriteFrame = this.ropeImgs[0];
        this.isThrowing = true;

        // 默认在屏幕外
        this.cowRope.y = - this.canvasHeight;

        // 移出去
        let mTop = cc.moveTo(0.45, cc.v2(0, 68 - this.cowRope.height / 2));

        // 套住牛
        let mFun = cc.callFunc(function () {
            // 判断是否套住了牛
            let cowRun = this.checkTakeCow();
            if (cowRun) {
                let cowType = cowRun.getComponent('CowRun').cowType;

                // 由于动作
                let ropeType = this.getRopeType(cowType);
                console.log("cowType:" + cowType + ",ropeType:" + ropeType);
                // 更换绳子样式
                this.cowRope.getComponent(cc.Sprite).spriteFrame = this.ropeImgs[ropeType];

                cowRun.active = false;
                cowRun.removeFromParent();

                // 更新分数
                this.score++;

                // 播放声音
                this.playCowSound();
            }
        }.bind(this));

        // 拖回
        let md = cc.moveTo(0.85, cc.v2(0, -this.canvasHeight));

        // 动作结束
        let finish = cc.callFunc(function () {
            this.isThrowing = false;
            let showScore = this.score + "/" + this.currentLevelInfo['cow'];
            this.starCollector.updateScore(showScore);
            let needCow = this.currentLevelInfo['cow'];
            console.log("this.score:" + this.score + "--needCow:" + needCow);
            if (this.score >= needCow) {
                // 通关
                this.winCurLevel();
            }
        }.bind(this));

        let seq = cc.sequence([mTop, mFun, md, finish]);
        this.cowRope.runAction(seq);
    }

下面判断套中牛儿判断,当牛头移动到中间位置

// 检测是否套住了牛
    checkTakeCow() {
        for (let index = 0; index < this.cowRoot.childrenCount; index++) {
            let cowRun = this.cowRoot.children[index];
            if (cowRun.active == true && (cowRun.x >= 50 && cowRun.x <= 160)) {
                return cowRun;
            }
        }

        return null;
    }

套中牛儿之后,根据套中的不同的牛更换拉回的绳子的样式

// 更换绳子样式
this.cowRope.getComponent(cc.Sprite).spriteFrame = this.ropeImgs[ropeType];

至此主要代码差不多这些,套牛的逻辑比较简单。稍后贴出资源及代码地址。

三 上线微信小游戏

在https://mp.weixin.qq.com 创建账号并登录,这里注意选择小程序的账号哦,需要绑定微信。
登录之后,在小游戏基本设置,设置一下内容

1、上线微信小游戏

小程序名称
小程序简称
小程序头像
小程序服务类目

在游戏设置中需要设置 上传小游戏自审自查文档照片,签字,日期,按手印哦。

2、Cocos Creator代码打包上传

在Cocos Creator的菜单的项目中,构建发布

选择发布平台,微信小游戏
根据游戏的横竖屏设置方向
设置appid(来自微信小程序后台)

最后点击构建,点击构建成功后。使用微信开发工具导入编译build后的项目。在微信开发工具中预览可以手机扫码看到游戏的开发版本。
上传游戏、提交版本及更新内容,上传成功后可以在微信小程序后台的版本管理中看到上传新版本。点击提交审核即可。

3、上线微信小游戏出现问题

上线微信小游戏经常出现“小游戏需具有完整的游戏玩法、不能为简单的素材堆砌”
根据这个问题,在案例中新增了关卡、游戏玩法介绍后重新发布新的版本,继续等待审核即可。暂时这么审核通过了。

学习记录,每天不停进步。

代码和资源
https://gitee.com/baibaime/class_cow.git

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
### 回答1: Cocos Creator是一个流行的游戏开发引擎,提供了各种功能和工具,可以帮助开发者快速创建和设计小游戏。当我们提到Cocos Creator小游戏代码时,通常是指游戏的源代码文件和资源文件。 Cocos Creator的源代码文件由JavaScript编写,通常包括游戏的逻辑、场景组织和界面展示等方面的代码。开发者可以通过编辑源代码来修改游戏的行为,添加新的功能或调整游戏的操作方式。通过理解源代码,开发者可以深入了解游戏的工作原理和内部机制。 此外,Cocos Creator的源代码还包括资源文件,如图像、声音和动画等。这些资源文件是游戏中使用的各种元素,可以通过编辑软件进行设计和修改。通过修改资源文件,开发者可以改变游戏的外观和音效,增加游戏的吸引力和乐趣。 如果我们拥有Cocos Creator小游戏的源代码,我们可以根据自己的需求进行定制和修改,使游戏更符合自己的创意和目标。我们可以通过学习源代码来了解游戏的设计理念和技巧,从而提高自己的游戏开发能力。 总而言之,Cocos Creator小游戏代码是游戏开发过程中的重要组成部分,通过对源代码的理解和修改,我们可以定制和优化游戏,使其更具个性和品质。 ### 回答2: Cocos Creator 是一款用于开发2D和3D游戏的游戏引擎。它是基于 Cocos2d-x 引擎的基础上进行开发的,同时支持 JavaScript 和 TypeScript 编程语言。使用 Cocos Creator 可以方便地创建各种类型的小游戏Cocos Creator小游戏代码是指使用 Cocos Creator 编写的游戏的源代码。这些源代码包含了游戏的各种各样的功能和逻辑,例如游戏场景的创建、角色控制和碰撞检测等。 在 Cocos Creator小游戏代码中,你可以看到许多不同的文件。其中最重要的是场景文件,它包含了游戏中的场景布局和对象的放置。另外还有脚本文件,用于编写游戏的逻辑和功能。以及资源文件,包括游戏中使用的图片、音效和动画等。 小游戏代码中的脚本文件是游戏的核心部分,通过编写脚本可以实现游戏中的各种功能。你可以在脚本中定义角色的移动方式、敌人的行为模式、背景音乐的播放等。同时,你还可以使用脚本文件进行碰撞检测、游戏得分的计算和关卡的切换等。 总而言之,Cocos Creator小游戏代码提供了游戏的各种功能和逻辑的实现方式。通过学习和理解这些源代码,你可以自由地修改和扩展游戏的功能,以满足自己的需求。同时,你也可以参考源代码中的编程方式和设计思路,来进行自己的游戏开发。 ### 回答3: Cocos Creator是一款用于开发小型游戏的游戏引擎和开发工具。它提供了适用于多平台的跨平台开发功能,以及强大的编辑器和场景编辑工具。 Cocos Creator使用JavaScript脚本语言编写游戏逻辑,并使用C++编写引擎核心功能。游戏内容可以在编辑器中创建和编辑,然后通过编译输出为可在多个平台上运行的游戏代码Cocos Creator的游戏源代码包括引擎核心的C++部分以及游戏逻辑的JavaScript脚本代码。引擎核心代码的作用是提供游戏开发所需的基础功能,包括图形渲染、物理碰撞检测、动画控制和资源管理等。 在游戏源代码中,开发者可以编写游戏逻辑的JavaScript脚本,包括角色移动、碰撞检测、游戏进度控制等。开发者可以通过编辑器添加场景、角色和其他游戏资源,并使用JavaScript脚本将它们连接起来,实现游戏的逻辑和交互。 通过编写自定义的脚本代码,开发者可以为游戏增加各种功能和特效,比如实现角色的特殊能力、设计游戏关卡的难度、添加音效和动画效果等。 总的来说,Cocos Creator小游戏代码包含了游戏引擎的核心和游戏逻辑的脚本代码,开发者可以利用这些代码来创建和定制自己的小型游戏。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值