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

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

前言

在上一期我做了一个游戏开发之旅的教程(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

相关文章

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Windows系统宽带限制如何解除?

《Windows系统宽带限制如何解除?》有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文就跟大家一起来看看Windows系统解除网络限制的操作方法吧... 有不少用户反映电脑网速慢得情况,可能是宽带速度被限制的原因,只需解除限制即可,具体该如何操作呢?本文

电脑找不到mfc90u.dll文件怎么办? 系统报错mfc90u.dll丢失修复的5种方案

《电脑找不到mfc90u.dll文件怎么办?系统报错mfc90u.dll丢失修复的5种方案》在我们日常使用电脑的过程中,可能会遇到一些软件或系统错误,其中之一就是mfc90u.dll丢失,那么,mf... 在大部分情况下出现我们运行或安装软件,游戏出现提示丢失某些DLL文件或OCX文件的原因可能是原始安装包

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

解决Maven项目idea找不到本地仓库jar包问题以及使用mvn install:install-file

《解决Maven项目idea找不到本地仓库jar包问题以及使用mvninstall:install-file》:本文主要介绍解决Maven项目idea找不到本地仓库jar包问题以及使用mvnin... 目录Maven项目idea找不到本地仓库jar包以及使用mvn install:install-file基

将Java程序打包成EXE文件的实现方式

《将Java程序打包成EXE文件的实现方式》:本文主要介绍将Java程序打包成EXE文件的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录如何将Java程序编程打包成EXE文件1.准备Java程序2.生成JAR包3.选择并安装打包工具4.配置Launch4

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

SQL server配置管理器找不到如何打开它

《SQLserver配置管理器找不到如何打开它》最近遇到了SQLserver配置管理器打不开的问题,尝试在开始菜单栏搜SQLServerManager无果,于是将自己找到的方法总结分享给大家,对SQ... 目录方法一:桌面图标进入方法二:运行窗口进入方法三:查找文件路径方法四:检查 SQL Server 安

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t