Three.js 再探 - 写一个微信跳一跳极简版游戏


Posted in Javascript onJanuary 04, 2018

那么这个游戏到底是简单到什么程度,差不多就是到下面这个程度吧

源码地址:  github.com/luosijie/th…

Three.js 再探 - 写一个微信跳一跳极简版游戏

Three.js 再探 - 写一个微信跳一跳极简版游戏
Three.js 再探 - 写一个微信跳一跳极简版游戏

由于是第一次尝试写游戏, 也不知道套路对不对, 大家看着玩就好, 不要太认真, 不推荐在手机上预览, 坑还没有填好

下面是实现过程

游戏分析

首先分析一下一个这样的游戏需要什么元素

  • Three.js必备元素: 场景,灯光,摄像机
  • 一块又一块的方块
  • 会跳的那个 ,或者叫游戏者
  • 以上

游戏过程

  • 初始一个场景, 场景中有一个 会跳的那个 和 2个方块
  • 鼠标按下储存 能量值
  • 鼠标放开, 会跳的那个 根据 能量值 和 第2个方块的方向 跳出去
  • 会跳的那个 落到方块的上平面时, 根据 位置 判断这一跳是成功还是失败
  • 成功后进入下一步,失败就根据 位置 执行不同的摔倒方式

关于游戏的碰撞, 我们要考虑这几种情况

1.掉落在两个方块中央

Three.js 再探 - 写一个微信跳一跳极简版游戏  

2. 掉落在起跳方块左边上沿

Three.js 再探 - 写一个微信跳一跳极简版游戏  

3. 掉落在左边下一个方块下沿

Three.js 再探 - 写一个微信跳一跳极简版游戏  

4. 掉落在左边下一个方块上沿

Three.js 再探 - 写一个微信跳一跳极简版游戏 

5. 掉落在起跳方块右边上沿

Three.js 再探 - 写一个微信跳一跳极简版游戏 

6. 掉落在右边下一个方块下沿

Three.js 再探 - 写一个微信跳一跳极简版游戏 

7. 掉落在右边下一个方块上沿

Three.js 再探 - 写一个微信跳一跳极简版游戏 

代码

感兴趣的麻烦移步github

主体结构

var Game = function () {
 ...
}
Game.prototype = {
 init: // 初始化
 restart: // 重新开始
 addSuccessFn: // 成功进入下一步,执行外部函数, 用于更新分数
 addFailedFn: // 游戏失败, 执行外部函数, 用于显示失败弹窗
 _createJumper: // 创建 会跳的那个
 _createCube: // 创建方块
 _setLight: // Three.js设置光照
 _setCamera: // Three.js设置相机
 _setRenderer: // Three.js设置渲染器
 _render: // Three.js 执行渲染
 _createHelpers: // Three.js场景辅助工具
 _checkUserAgent: // 检测是否是移动端
 _handleWindowResize: // 窗口缩放绑定函数
 _handleMousedown: // 鼠标按下绑定函数
 _handleMouseup: // 鼠标松开绑定函数
 _fallingRotate: // 会跳的那个 摔落动画
 _falling: // 会跳的那个 摔落
 _checkInCube: // 判断落点位置
 _updateCameraPos: // 更新相机坐标参数
 _updateCamera: // 更新相机
 _setSize: // 设置画布尺寸
}

调用

var game = new Game(success,failed)
game.init()
game.addSuccessFn(success)
game.addFailedFn(failed)
...
// 游戏重新开始,执行函数
function restart () {
 ...
}
// 游戏失败执行函数
function failed(){
 ...
}
// 游戏成功,更新分数
function success (score) {
 ...
}

总结

以上所述是小编给大家介绍的Three.js 再探 - 写一个微信跳一跳极简版游戏,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
基于jquery的一个图片hover的插件
Apr 24 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
JS 弹出层 定位至屏幕居中示例
May 21 Javascript
jquery实现仿新浪微博评论滚动效果
Aug 06 Javascript
浅析Javascript中bind()方法的使用与实现
Apr 29 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
轻松掌握JavaScript状态模式
Sep 07 Javascript
利用node.js写一个爬取知乎妹纸图的小爬虫
May 03 Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 Javascript
React组件重构之嵌套+继承及高阶组件详解
Jul 19 Javascript
vue-image-crop基于Vue的移动端图片裁剪组件示例
Aug 28 Javascript
echarts实现词云自定义形状的示例代码
Feb 20 Javascript
JS实现带导航城市列表以及输入搜索功能
Jan 04 #Javascript
微信小程序实现的贪吃蛇游戏【附源码下载】
Jan 03 #Javascript
详解Angular2学习笔记之Html属性绑定
Jan 03 #Javascript
Angular2学习笔记之数据绑定的示例代码
Jan 03 #Javascript
vue、react等单页面项目应该这样子部署到服务器
Jan 03 #Javascript
AngularJS实现的2048小游戏功能【附源码下载】
Jan 03 #Javascript
浅谈node模块与npm包管理工具
Jan 03 #Javascript
You might like
dedecms模板标签代码官方参考
2007/03/17 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
PHP中的Trait 特性及作用
2016/04/03 PHP
老生常谈PHP数组函数array_merge(必看篇)
2017/05/25 PHP
javascript笔试题目附答案@20081025_jb51.net
2008/10/26 Javascript
基于jquery实现状态限定编辑的代码
2012/02/11 Javascript
Firefox/Chrome/Safari的中可直接使用$/$$函数进行调试
2012/02/13 Javascript
关于onchange事件在IE和FF下的表现及解决方法
2014/03/08 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
使用vue2.0创建的项目的步骤方法
2018/09/25 Javascript
webpack 开发和生产并行设置的方法
2018/11/08 Javascript
深入了解JavaScript词法作用域
2020/07/29 Javascript
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
python操作oracle的完整教程分享
2018/01/30 Python
numpy中的delete删除数组整行和整列的实例
2018/05/09 Python
python之文件读取一行一行的方法
2018/07/12 Python
Python常见MongoDB数据库操作实例总结
2018/07/24 Python
Python 获取指定文件夹下的目录和文件的实现
2019/08/30 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
基于Tensorflow一维卷积用法详解
2020/05/22 Python
使用Python构造hive insert语句说明
2020/06/06 Python
python中什么是面向对象
2020/06/11 Python
Python爬取微信小程序通用方法代码实例详解
2020/09/29 Python
欧洲高端品牌直销店:Fashionesta
2016/08/31 全球购物
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
英国内衣连锁店:Boux Avenue
2018/01/24 全球购物
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
驾驶员岗位职责
2014/01/29 职场文书
寄语十八大感言
2014/02/07 职场文书
安全隐患整改报告
2014/11/06 职场文书
消防隐患整改通知书
2015/04/22 职场文书
公司处罚决定书
2015/06/24 职场文书
jQuery实现广告显示和隐藏动画
2021/07/04 jQuery