小学僧的游戏开发之旅——世界巡游记(因个人微信小游戏数量限制,本游戏主体即将被注销,若微信搜不到小程序了,那么就已经被注销了,谢谢理解)

本文主要是介绍小学僧的游戏开发之旅——世界巡游记(因个人微信小游戏数量限制,本游戏主体即将被注销,若微信搜不到小程序了,那么就已经被注销了,谢谢理解),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前言

在上一期我做了一个游戏开发之旅的教程(2048合成小球),本文就是上一期的延续,我将会继续使用CocosCreator完成一个小游戏案例,这次是一个普通的环形跑酷小游戏(仅提供demo阶段的开发思路)

 

==案例展示==

世界巡游记demo链接

 

  • 不停旋转的大地球的制作

  这里我采用的是一个超大的卡通地球图片进行不停的旋转,并给地球添加刚体,让它能和小人产生碰撞,那么引擎中的场景制作这里就不展示了,我主要展示代码部分


//worthSpeed需要自己调一下(博主设置是0.6)this.worth.angle = (this.worth.angle + this.worthSpeed) % 360;
  • 人物的跳跃,跑动动作

  在引擎里完成人物的动画animation的制作,然后在脚本里面判断玩家的状态来执行相应的动作

  1. 动画编辑器——跳跃动画(因跳跃动画是一次性跳跃,使用类型设置为Normal)
  2. 动画编辑器——跑动动画(跑动是跳跃完毕一直执行的动画,所以要设置为Loop类型)
  3. 动画控制与切换

不同状态下的动画控制(因我设置的跳跃动画总时长为1s,所以我这里的缓动跳跃动作拆分为0.5和0.5的两个部分。完成后执行回调就播放run动画)

 onTouchStart() {if (this.state == 1 && gameState == 1) {var anim = this.player.getComponent(cc.Animation);anim.play('jump');//此处应添加跳跃音效cc.tween(this.player).to(0.5, { position: cc.v2(0, 80) }, { easing: 'quadOut' }).to(0.5, { position: cc.v2(0, -44) }).start()var animJump = anim.getAnimationState('jump');animJump.on('finished', this.onFinished, this)//动画完成回调}this.state = 0;},onFinished() {//动画完成的回调函数// console.log("完成")var anim = this.player.getComponent(cc.Animation);anim.play('run');this.state = 1;},
  • player与其他不同类型节点的碰撞(树木和金币)
onBeginContact: function (contact, selfCollider, otherCollider){//player.js脚本判断碰撞//树碰撞if(otherCollider.node.group == 'tree'){//如果被碰撞物体分组为tree// console.log('gameover')gameState = 0;this.overNode.active = true;//死亡节点显示// console.log(this.score);cc.sys.localStorage.setItem('pCoin',this.score);//存入金币var coinScore = cc.sys.localStorage.getItem('pCoin');this.coinLabel.getComponent(cc.Label).string = coinScore///attention}//金币+1if(otherCollider.node.group == 'coin'){//如果被碰撞物体分组为coin// console.log('coin+1');otherCollider.node.active = false;//使用cc.tween完成金币收集效果。this.coin = cc.instantiate(this.coinPre);this.player_coin.addChild(this.coin);//此处应新增金币收集音效cc.tween(this.coin).to(1, { position: cc.v2(this.coinNode.x, this.coinNode.y) }, { easing: 'quadOut' }).call(()=>{//动画完成回调this.coin.destroy();this.score += 1;}).start()}},
  • 树木与金币的绕地球运动
//objectsfor (this.objects of this.objectNodeArr) {this.objects.angle = (this.objects.angle + this.worthSpeed - 0.3) % 360;let obRad = Math.PI * (this.objects.angle + 90) / 180;let obR = this.worth.width / 2 * 0.6 + this.objects.height / 2 * this.objects.scale;// console.log(this.objects.scale)this.objects.x = this.worth.x + obR * Math.cos(obRad);this.objects.y = this.worth.y + obR * Math.sin(obRad);if (this.objects.angle > 45) {//物体销毁this.objectNodeArr.shift();this.objects.destroy();this.count += 1;// console.log(this.count);if (this.count == 4) {//计数this.objectInit();// this.objectInit();this.count = 0;}}}
  • 那么以上就完成了这个小游戏demo的主要思路(主要代码部分),剩下的部分都是很简单的控制节点以及碰撞组件,预制体制作部分,就不再多做阐述了。那么本期小游戏demo分享就到这里——以后我可能会转到使用laya引擎,所以可能Cocos引擎的demo写的就比较少了,谢谢理解

 

 

这篇关于小学僧的游戏开发之旅——世界巡游记(因个人微信小游戏数量限制,本游戏主体即将被注销,若微信搜不到小程序了,那么就已经被注销了,谢谢理解)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/257706

相关文章

Android开发中gradle下载缓慢的问题级解决方法

《Android开发中gradle下载缓慢的问题级解决方法》本文介绍了解决Android开发中Gradle下载缓慢问题的几种方法,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录一、网络环境优化二、Gradle版本与配置优化三、其他优化措施针对android开发中Gradle下载缓慢的问

使用Go语言开发一个命令行文件管理工具

《使用Go语言开发一个命令行文件管理工具》这篇文章主要为大家详细介绍了如何使用Go语言开发一款命令行文件管理工具,支持批量重命名,删除,创建,移动文件,需要的小伙伴可以了解下... 目录一、工具功能一览二、核心代码解析1. 主程序结构2. 批量重命名3. 批量删除4. 创建文件/目录5. 批量移动三、如何安

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

基于Python开发PPTX压缩工具

《基于Python开发PPTX压缩工具》在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,不便于传输和存储,所以本文将使用Python开发一个PPTX压缩工具,需要的可以了解下... 目录引言全部代码环境准备代码结构代码实现运行结果引言在日常办公中,PPT文件往往因为图片过大而导致文件体积过大,

深入理解Apache Airflow 调度器(最新推荐)

《深入理解ApacheAirflow调度器(最新推荐)》ApacheAirflow调度器是数据管道管理系统的关键组件,负责编排dag中任务的执行,通过理解调度器的角色和工作方式,正确配置调度器,并... 目录什么是Airflow 调度器?Airflow 调度器工作机制配置Airflow调度器调优及优化建议最

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

一文带你理解Python中import机制与importlib的妙用

《一文带你理解Python中import机制与importlib的妙用》在Python编程的世界里,import语句是开发者最常用的工具之一,它就像一把钥匙,打开了通往各种功能和库的大门,下面就跟随小... 目录一、python import机制概述1.1 import语句的基本用法1.2 模块缓存机制1.