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

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

前言

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

相关文章

VSCode开发中有哪些好用的插件和快捷键

《VSCode开发中有哪些好用的插件和快捷键》作为全球最受欢迎的编程工具,VSCode的快捷键体系是提升开发效率的核心密码,:本文主要介绍VSCode开发中有哪些好用的插件和快捷键的相关资料,文中... 目录前言1、vscode插件1.1 Live-server1.2 Auto Rename Tag1.3

Agent开发核心技术解析以及现代Agent架构设计

《Agent开发核心技术解析以及现代Agent架构设计》在人工智能领域,Agent并非一个全新的概念,但在大模型时代,它被赋予了全新的生命力,简单来说,Agent是一个能够自主感知环境、理解任务、制定... 目录一、回归本源:到底什么是Agent?二、核心链路拆解:Agent的"大脑"与"四肢"1. 规划模

Python+wxPython开发一个文件属性比对工具

《Python+wxPython开发一个文件属性比对工具》在日常的文件管理工作中,我们经常会遇到同一个文件存在多个版本,或者需要验证备份文件与源文件是否一致,下面我们就来看看如何使用wxPython模... 目录引言项目背景与需求应用场景核心需求运行结果技术选型程序设计界面布局核心功能模块关键代码解析文件大

C++多线程开发环境配置方法

《C++多线程开发环境配置方法》文章详细介绍了如何在Windows上安装MinGW-w64和VSCode,并配置环境变量和编译任务,使用VSCode创建一个C++多线程测试项目,并通过配置tasks.... 目录下载安装 MinGW-w64下载安装VS code创建测试项目配置编译任务创建 tasks.js

GO语言zap日志库理解和使用方法示例

《GO语言zap日志库理解和使用方法示例》Zap是一个高性能、结构化日志库,专为Go语言设计,它由Uber开源,并且在Go社区中非常受欢迎,:本文主要介绍GO语言zap日志库理解和使用方法的相关资... 目录1. zap日志库介绍2.安装zap库3.配置日志记录器3.1 Logger3.2 Sugared

Mysql 驱动程序的程序小结

《Mysql驱动程序的程序小结》MySQL驱动程序是连接应用程序与MySQL数据库的重要组件,根据不同的编程语言和应用场景,MySQL提供了多种驱动程序,下面就来详细的了解一下驱动程序,感兴趣的可以... 目录一、mysql 驱动程序的概念二、常见的 MySQL 驱动程序1. MySQL Connector

深入理解Redis线程模型的原理及使用

《深入理解Redis线程模型的原理及使用》Redis的线程模型整体还是多线程的,只是后台执行指令的核心线程是单线程的,整个线程模型可以理解为还是以单线程为主,基于这种单线程为主的线程模型,不同客户端的... 目录1 Redis是单线程www.chinasem.cn还是多线程2 Redis如何保证指令原子性2.

深入理解MySQL流模式

《深入理解MySQL流模式》MySQL的Binlog流模式是一种实时读取二进制日志的技术,允许下游系统几乎无延迟地获取数据库变更事件,适用于需要极低延迟复制的场景,感兴趣的可以了解一下... 目录核心概念一句话总结1. 背景知识:什么是 Binlog?2. 传统方式 vs. 流模式传统文件方式 (非流式)流

深入理解Go之==的使用

《深入理解Go之==的使用》本文主要介绍了深入理解Go之==的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录概述类型基本类型复合类型引用类型接口类型使用type定义的类型不可比较性谈谈map总结概述相信==判等操作,大

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D