游戏开发的HelloWorld,快速入门,新手上路,使用CocosCreator+JS,flyBird(飞翔小鸟)

  • 介绍
  • 开发环境
    • 游戏原理
    • 文件结构
    • 详细操作
    • 全部代码

介绍

拓展什么的都没有,真正的helloworld。
超简单版小鸟,看完上手一会儿就能搞出来。
没有繁杂的功能,只有简单的游戏性。
能飞,碰到柱子会死。能重开。

开发环境

CocosCreator v2.3.1
node.js v10.16.0
最好再搞个文本编辑器,方便使用。

游戏原理

鸟不动,背景动,柱子动。
但在视觉上是只有鸟在动。

  1. 找一个首尾相连的背景板,防止穿帮。
  2. 随便找一个看起来像可以飞的鸟图片,和像样的柱子,这里把柱子反转一下,就是上下两根,一对柱子。

文件结构

一般来说文件结构只放一下三个大目录:,

文件目录 Value
resources 用来放各种资源(音频,图片,字体等)
scene 场景,比如小鸟可以做三个场景,开始,游戏,结束。首先在开始场景,然后满足什么条件后进游戏场景,再挂了之后进结束场景。我这里开始,游戏中,结束全放在一个场景里完成了。
scripts 脚本,可以绑定各个节点写逻辑。


在程序猿视角里,游戏是如上的,在玩家眼里,只能看到框中的场景。
如下所示。
框中的是玩家视角

详细操作

根据需要完成的功能。
game.js里面添加这四个节点

    properties: {skyBg:cc.Node,birdNode:cc.Node,pipes:cc.Node,btnStart:cc.Node,// audioClip: { // 关联音乐资源,this.audioClip等于一个数组,里面存放多个音乐资源//     default: [],//     type: cc.AudioClip// },},

把图片往场景里面脱,就会生成节点,再把节点拖到脚本上绑定这四个节点。鸟,钢管,背景,开始按钮

也可以脚本用如下方法获取。
let birdNode = cc.find(“Canvas/bird”);
先说明一下 update(dt){} 方法。
在脚本加载完运行后,每一帧调用一次,永久执行,dt为每一帧的秒数
以下代码全是放在update中

1. 背景无缝向左移动

        //背景平移this.skyBg.x-=5;if(this.skyBg.x<=-1200){this.skyBg.x=0;}

2. 钢管无缝向左移动

钢管可以用两种方法实现,一种是一直在最右边生成,当钢管从屏幕左边走出后删除。
另一种就是一开始固定好生成的钢管,全部左移,走出屏幕左边的就放到最右边去。
这里是用的移动。

         //钢管平移let pipeschild = this.pipes.children;for (let pipe of pipeschild){pipe.x -=5;if(pipe.x<=-600){pipe.y=(Math.random()-0.5)*150    pipe.x=600;// cc.log(pipe.x,pipe.y)if(pipe.active==false){pipe.active=true;}}}

3. 小鸟一直下坠,点击时跳跃

        //小鸟下坠,跳跃。this.power+=0.2;              //模拟重力下坠this.birdNode.y-=this.power;    //power为负数时往上飞if(this.birdNode.y<-320){this.birdNode.y=0;}

4. 鼠标点击屏幕时小鸟跳跃

创建一个空节点,宽高设置和屏幕一样大,用来监听全屏的鼠标点击事件。
由于点击事件会被它上层的点击节点给截取,所以要把其他点击按钮放在它之下,不然其他的全都监听不到,被此节点截取。
右下角是点击时触发game.js脚本中的addPower()方法

addPower(){this.power=-4;},

自己定义的方法最好放到如下位置

5. 小鸟碰到钢管时 gameOver()

        for (let pipe of pipeschild){if(Math.abs(pipe.x-this.birdNode.x)<=43){// let pipey=pipe.children[0].y;let birdy=this.birdNode.y;// console.log("此时的钢管位置:" +pipe.y);//初始值是0,上下浮动+-75// console.log("此时的下钢管位置:" +pipey);//相对总钢管一直没有变if(Math.abs(birdy-pipe.y)>=(75-10)){        //钢管中心点距离上下两端都是75,小鸟高度为24,this.gameOver();                        //算上边缘透明距离-2,所以为10}}}

全部代码

cc.Class({extends: cc.Component,properties: {skyBg:cc.Node,birdNode:cc.Node,pipes:cc.Node,btnStart:cc.Node,audioClip: { // 关联音乐资源,this.audioClip等于一个数组,里面存放多个音乐资源default: [],type: cc.AudioClip},},addPower(){this.power=-4;},playclick(){                    //按钮开关,游戏开始,且不再显示按钮this.playflag=true;this.btnStart.active=false;},gameOver(){                     //游戏结束调用,将参数复原this.playflag=false;this.power = 1;this.btnStart.active=true;this.birdNode.y=0;let i=200for (let pipe of this.pipes.children){pipe.x=i;i+=200;}},// LIFE-CYCLE CALLBACKS:// onLoad () {},start () {          // 等待游戏点击开始按钮,将playflag置为true.this.power=1;this.playflag=false;},update (dt) {if(this.playflag==false){   //代表游戏还没有开始return;}//背景平移this.skyBg.x-=5;// cc.log( this.skyBg.x);if(this.skyBg.x<=-1200){this.skyBg.x=0;}//小鸟下坠,跳跃。this.power+=0.2;this.birdNode.y-=this.power;    //power为负数时往上飞if(this.birdNode.y<-320){this.birdNode.y=0;}//钢管平移let pipeschild = this.pipes.children;for (let pipe of pipeschild){pipe.x -=5;if(pipe.x<=-600){pipe.y=(Math.random()-0.5)*150    pipe.x=600;// cc.log(pipe.x,pipe.y)if(pipe.active==false){pipe.active=true;}}}//碰撞检测for (let pipe of pipeschild){if(Math.abs(pipe.x-this.birdNode.x)<=43){// let pipey=pipe.children[0].y;let birdy=this.birdNode.y;// console.log("此时的钢管位置:" +pipe.y);//初始值是0,上下浮动+-75// console.log("此时的下钢管位置:" +pipey);//相对总钢管一直没有变if(Math.abs(birdy-pipe.y)>=(75-10)){        //钢管中心点距离上下两端都是75,小鸟高度为24,this.gameOver();                        //算上边缘透明距离-2,所以为10}}}},
});

游戏开发的HelloWorld,快速入门,新手上路,使用CocosCreator+JS,flyBird(飞翔小鸟)相关推荐

  1. 天下布魔新手的6点游戏建议 教你快速入门的攻略

    天下布魔新手刚下载进入到游戏中难免会懵,因为不知道怎么上手去玩.今天小编就以过来人的视觉,分享一下我当初的入门经验以及所走的弯路.希望各位新手玩家少走弯路,快速上手.并且我总结出了6大点新手建议,本文 ...

  2. HTML5+app开发学习之快速入门篇

    HTML5+app开发学习之快速入门篇 5+app开发概念理解相关 开发环境与支持 快速入门实战 5+app开发概念理解相关 见博文:学习跨平台移动应用开发必须理解的一些概念 开发环境与支持 开发环境 ...

  3. 视频教程-做游戏学Python-Python语言快速入门-Python

    做游戏学Python-Python语言快速入门 20年软件项目开发管理经验 工信部人才交流中心特聘专家讲师 日本U-CAN在线教育特聘主任讲师 国家十二·五规划软件工程教材作者(书:清华大学出版社出版 ...

  4. ecshop二次开发的简单快速入门教程

    ecshop二次开发的简单快速入门教程,具体请下载文档 ecshop_dwt_lbi_详解.rar (106 KB) 下载次数: 9 转载于:https://my.oschina.net/u/3360 ...

  5. python新手快速入门教程-Python 开发 14 天快速入门

    专栏亮点 零基础学习,循序渐进:专栏将编程语言的学习路线提炼为基础.中级.高级三层,内容由易到难,循序渐进,简练而生动地为读者呈现知识点. 内容全面,提炼要义:从核心概念到高级知识点,包括基本数据结构 ...

  6. python快速入门答案-Python 开发 14 天快速入门

    专栏亮点 零基础学习,循序渐进:专栏将编程语言的学习路线提炼为基础.中级.高级三层,内容由易到难,循序渐进,简练而生动地为读者呈现知识点. 内容全面,提炼要义:从核心概念到高级知识点,包括基本数据结构 ...

  7. 3D游戏开发套件指南(入门篇)

    今天将介绍最新的3D游戏开发套件.不论是使用2D还是3D游戏开发套件,都可以在不编写任何代码的情况下,通过设置与拖放便能快捷的实现游戏创意. 指南简介 本指南将引导开发者设置一个空的场景,使用3D游戏 ...

  8. Unity游戏开发之C#快速入门

    C#是微软团队在开发.NET框架时开发的,它的构想接近于C.C++,也和JAVA十分相似,有许多强大的编程功能. 个人感受是C#吸收了众多编程语言的优点,从中可以看到C.C++.Java.Javasc ...

  9. python快速入门教程-Python 开发 14 天快速入门

    专栏亮点 零基础学习,循序渐进:专栏将编程语言的学习路线提炼为基础.中级.高级三层,内容由易到难,循序渐进,简练而生动地为读者呈现知识点. 内容全面,提炼要义:从核心概念到高级知识点,包括基本数据结构 ...

最新文章

  1. Windows 10安装Tensorflow
  2. 【Java基础】基本类型与运算
  3. 【并发编程】线程锁--Synchronized、ReentrantLock(可重入锁)
  4. 论文笔记:GVCNN: Group-View Convolutional Neural Networks for 3D Shape Recognition
  5. python—sql语句参数化
  6. 17、HTML单选按钮
  7. leetcode57. 插入区间
  8. 构建高并发高可用的电商平台架构实践 转自网络
  9. maven编译报错 错误: -source 1.5 中不支持 lambda 表达式
  10. document.frames()与document.frames[]的区别
  11. [No0000EB]C# 数组(Array)
  12. java模板引擎哪个好_Java 常用模板引擎推荐
  13. 洲际酒店集团发布全新奢华精选品牌Vignette Collection
  14. 数据和安全②HTTPS单向和双向认证
  15. System.Diagnostics.Stopwatch
  16. 无线列表html,无线web 开发经验(2)—— HTML
  17. k8s之搭建单机集群
  18. 倉頡造字(歌詞+注釋)
  19. css中outline
  20. mac idea 常用快捷键总结

热门文章

  1. 新版ECharts实现“暂无数据”的完美解决方案
  2. Tuxera NTFS21Mac苹果电脑读取硬盘磁盘软件
  3. Chapter 22 UDP and TCP 第二十二章UDP和TCP协议作业
  4. Kali Linux 基于FreeFloat FTP Server编写漏洞渗透模块(下)
  5. 《程序员羊皮卷》荣登北京图书大厦IT图书排行榜第一名
  6. 启xin宝app的token算法破解——逆向篇(二)
  7. 电脑连上WIfi但无网络的问题解决办法
  8. 关于微信小程序(应用号)的全部看法[转]
  9. MUR560D-ASEMI快恢复二极管MUR560D
  10. 毫秒和微秒分别和秒怎么换算?