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 相关文章推荐
js removeChild 障眼法 可能出现的错误
Oct 06 Javascript
基于jquery的blockui插件显示弹出层
Apr 14 Javascript
jQuery实现form表单reset按钮重置清空表单功能
Dec 18 Javascript
jQuery实现响应浏览器缩放大小并改变背景颜色
Oct 31 Javascript
JS动态插入并立即执行回调函数的方法
Apr 21 Javascript
js操作DOM--添加、删除节点的简单实例
Jul 08 Javascript
dul无法加载bootstrap实现unload table/user恢复
Sep 29 Javascript
Nginx 配置多站点vhost 的方法
Jan 07 Javascript
vue-cli扩展多模块打包的示例代码
Apr 09 Javascript
angular4 获取wifi列表中文显示乱码问题的解决
Oct 20 Javascript
React 实现车牌键盘的示例代码
Dec 20 Javascript
Vue项目中如何封装axios(统一管理http请求)
May 02 Vue.js
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+javascript的日历控件
2009/11/19 PHP
php表单提交问题的解决方法
2011/04/12 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
php实现对短信验证码发送次数的限制实例讲解
2021/03/04 PHP
dess中一个简单的多路委托的实现
2010/07/20 Javascript
我的javascript 函数链之演变
2011/04/07 Javascript
JS中数组Array的用法示例介绍
2014/02/20 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
sails框架的学习指南
2014/12/22 Javascript
javascript常用功能汇总
2015/07/05 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
星期几的不同脚本写法(推荐)
2016/06/01 Javascript
jQuery绑定自定义事件的魔法升级版
2016/06/30 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
bootstrap快速制作后台界面
2016/12/05 Javascript
三种方式实现瀑布流布局
2017/02/10 Javascript
Angularjs单选改为多选的开发过程及问题解析
2017/02/17 Javascript
JS使用tween.js动画库实现轮播图并且有切换功能
2018/07/17 Javascript
js取0-9随机取4个数不重复的数字代码实例
2019/03/27 Javascript
js实现表格单列按字母排序
2020/08/12 Javascript
vue 扩展现有组件的操作
2020/08/14 Javascript
Python使用win32 COM实现Excel的写入与保存功能示例
2018/05/03 Python
Tensorflow 合并通道及加载子模型的方法
2018/07/26 Python
Django Rest framework三种分页方式详解
2019/07/26 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
2019/12/26 Python
python GUI库图形界面开发之PyQt5表单布局控件QFormLayout详细使用方法与实例
2020/03/06 Python
银行会计财务工作个人的自我评价
2013/10/29 职场文书
采购主管的岗位职责
2013/12/17 职场文书
求职推荐信范文
2015/03/27 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
2019年最新七夕唯美祝福语(60条)
2019/07/22 职场文书
浅谈什么是SpringBoot异常处理自动配置的原理
2021/06/21 Java/Android
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python