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获取选中radio对应的值(一句代码)
Jun 03 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
Dec 19 Javascript
jquery实现的代替传统checkbox样式插件
Jun 19 Javascript
深入探究AngularJS框架中Scope对象的超级教程
Jan 04 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
May 30 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
Jul 24 Javascript
vue.js中$watch的用法示例
Oct 04 Javascript
基于vue2的table分页组件实现方法
Mar 20 Javascript
Angular将填入表单的数据渲染到表格的方法
Sep 22 Javascript
基于Vue实现图书管理功能
Oct 17 Javascript
vue 使用Jade模板写html,stylus写css的方法
Feb 23 Javascript
微信小程序新手教程之页面打开数量限制
Mar 03 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
php+memcache实现的网站在线人数统计代码
2014/07/04 PHP
[原创]php简单隔行变色功能实现代码
2016/07/09 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
用JavaScript实现一个代码简洁、逻辑不复杂的多级树
2014/05/23 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
jquery实现文本框textarea自适应高度
2016/03/09 Javascript
JavaScript程序中的流程控制语句用法总结
2016/05/23 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
利用jQuery来动态为属性添加或者删除属性的简单方法
2016/12/02 Javascript
详解Webpack实战之构建 Electron 应用
2017/12/25 Javascript
vue-cli创建的项目,配置多页面的实现方法
2018/03/15 Javascript
基于Vue实现拖拽功能
2020/07/29 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
Vue Components 数字键盘的实现
2019/09/18 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
[03:26]回顾2015国际邀请赛中国区预选赛
2015/06/09 DOTA
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
2019/02/08 Python
django创建简单的页面响应实例教程
2019/09/06 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
利用 Python ElementTree 生成 xml的实例
2020/03/06 Python
python 实现客户端与服务端的通信
2020/12/23 Python
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
广告学专业应届生求职信
2013/10/01 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
高三学习决心书
2014/03/11 职场文书
升国旗仪式主持词
2014/03/19 职场文书
推广普通话标语
2014/06/27 职场文书
新婚姻法离婚协议书范文
2014/11/30 职场文书
2015年大学教师工作总结
2015/05/20 职场文书
PhpSpreadsheet中文文档 | Spreadsheet操作教程实例
2021/04/01 PHP
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
教你使用一行Python代码玩遍童年的小游戏
2021/08/23 Python
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Nginx虚拟主机的搭建的实现步骤
2022/01/18 Servers
Nginx 配置 HTTPS的详细过程
2022/05/30 Servers