暴强:用iOS设备控制的HTML5“小蜜蜂”游戏

摘要:红白机上的经典“小蜜蜂”游戏在HTML5技术下得到了革新:英国伦敦的Webdigi公司运用HTML5结合Node.js进行开发,扫描二维码使得游戏在PC浏览器中显示,玩家通过左右摇晃iPhone/iPad控制飞船,向小蜜蜂发起攻击。

近日,英国伦敦一家专注于Web App开发的公司Webdigi针对经典FC游戏“小蜜蜂”进行了一次有趣的翻新:用HTML5结合Node.js技术彻底改变该游戏的传统玩法。


玩家可以在PC浏览器上访问: http://www.webdigi.co.uk/fun/space/,然后用iPhone或iPad扫描其中的二维码(或在手机浏览器中访问: http://webdigi.co.uk/821638),响应后玩家能够左右摇晃iPhone/iPad控制飞船打小蜜蜂了,当然,你也可以在PC浏览器中玩该游戏,方向键(左、右)控制飞船的移动,空格键发射子弹。这也是智能手机与PC双屏互动的一种新玩儿法。


用户iOS设备控制端核心代码如下:

//Detect if the browser supports DeviceMotionEvent
if (window.DeviceMotionEvent != undefined) {
//ondevicemotion is fired when iOS device detects motionwindow.ondevicemotion = function(e) {
//ax is the movement on the x axis.
//This motion is used to move the ship in the gameax = event.accelerationIncludingGravity.x * 5;ay = event.accelerationIncludingGravity.y * 5;//Status 0 is start, 1 is left, 2 is right, 3 is stay
if(status == 0){ //initial conditionstatus = 3; //staysocket.emit('spaceChange', {'ax': 3});statusmsg = 'Waiting for movement';
}
if(ax > 14 && status != 2){ //move right on devicestatus = 2;socket.emit('spaceChange', {'ax': 2});statusmsg = 'Moving ship right';
}
if(ax < -14 && status != 1){ //move left on device   status = 1;   socket.emit('spaceChange', {'ax': 1});                  statusmsg = 'Moving ship left'; 
} 
if(ax > -14 && ax < 14 && status != 3){ //device held steadystatus = 3;socket.emit('spaceChange', {'ax': 3});statusmsg = 'Ship held steady';
}

对于Web开发者而言,使用Node.js的好处在于,能在客户端和服务器端使用同一种语言(Javascript)创建一款完整的Web App,从而减少切换环境带来的麻烦。Socket.IO是一个针对实时Web App的Javascript库。通过Socket.IO库,Node.js便能够轻松实现WebSocket(WebSocket protocol是HTML5一种新的协议,它实现了浏览器与服务器的全双工通信)。

服务器端Socket.IO代码如下:

//Start on connection
io.sockets.on('connection', function (socket) {//Set room for user when connection is madesocket.on('setChannel', function (data) {socket.join(data.channelName);});//When iOS device moves send data to browser//Multiple browsers can be listening to same devicesocket.on('spaceChange', function (data) {socket.broadcast.to(data.channelName).emit("spaceChanges",data);});});

用户PC浏览器端数据处理的代码如下:

//iOS detection and corresponding action
var lastkey = 37;
var dataStart=0;socket.on('connect', function() {//if sockets gets disconnected then mention room againsocket.emit('setChannel', {'channelName': '<?php echo $randRoom; ?>'});});socket.on('spaceChanges', function (data) {if(dataStart == 0){//First movement data arriveddocument.getElementById('status').innerHTML = 'Receiving data from your iOS device';dataStart = 1;}ax = data.ax;var posob=new Object();if(ax == 2){//move rightlastkey = 39;posob.keyCode = lastkey;posob.type = 'keydown';document.getElementById('status').innerHTML = 'iOS device tilted right';}if(ax == 1){//move leftlastkey = 37;posob.keyCode = lastkey;posob.type = 'keydown';document.getElementById('status').innerHTML = 'iOS device tilted left';}if(ax == 3){//hold ship in placeposob.keyCode = lastkey;posob.type = 'keyup';document.getElementById('status').innerHTML = 'iOS device held steady';}//Send action received abovekeypressaction(posob);});   //Fire automatically once first data starts
window.setInterval(function(){if(dataStart == 1){var posob=new Object();posob.keyCode = 32;posob.type = 'keydown';keypressaction(posob);posob.keyCode = 32;posob.type = 'keyup';keypressaction(posob);}
//Timer is correctly a shot ever 200ms.
//Decrease 200 to lower for even faster firing!
}, 200); 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1380934.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

【Android】Android外接音源设备之小蜜蜂坑

在开发直播APP时&#xff0c;有用到小蜜蜂外接音源&#xff0c;总是会存在声音噪音很大或者很多手机声音很小的问题&#xff1a; 适配的几个手机都测试了&#xff0c;总是得不到解决方案&#xff0c;因为在外接小蜜蜂MIC时&#xff0c;会用到转接线 最开始考虑的是否转接线存在…

Meefeng蜜蜂系统——手机应用营销工具

最新媒体是什么&#xff1f; Meefeng是什么&#xff1f; Meefeng三大商业价值是什么&#xff1f; Meefeng优势是什么&#xff1f; Meefeng实现价值全过程是什么&#xff1f; Meefeng案例有什么、适合那些行业&#xff1f;&#xff1f;&#xff1f; Meefeng解答以上问题&a…

蜜蜂

蜜蜂的数感&#xff08;蜜蜂知道0比1要小&#xff09; 2018/6/8th Sicence上的论文&#xff0c;原文链接 像蜜蜂这样的昆虫是否能有数字“0”的概念呢&#xff1f;于是实验人员做了一个实验来测试。基本方式是训练蜜蜂知道“大于”还是“小于”规则&#xff08;跟普通Transitiv…

密蜂路线

题目&#xff1a; 一只蜜蜂在下图所示的数字蜂房上爬动,已知它只能从标号小的蜂房爬到标号大的相邻蜂房,现在问你&#xff1a;蜜蜂从蜂房M开始爬到蜂房N&#xff0c;M<N&#xff0c;有多少种爬行路线&#xff1f; Input 输入M&#xff0c;N的值。 Output 爬行有多少种路线。…

Python(八十)字符串的常用操作——字符串的劈分

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

(三十五)ArcMap创建最小边界几何

ArcMap数据管理——创建最小边界几何 目录 ArcMap数据管理——创建最小边界几何1.概念2.插图3.几何类型4.组选项(可选)5.将几何特征作为属性添加输出中 (可选)1.概念 创建包含若干面的要素类,用以表示封闭单个输入要素或成组的输入要素指定的最小边界几何。 2.插图 输出最…

Object C实现三国英雄对战

Object C实现三国英雄对战 实验要求游戏介绍英雄机制对战机制 英雄介绍蜀国英雄吴国英雄魏国英雄群雄 代码实现数据隐秘性封装继承多态 实验结果游戏源码 实验要求 输出随机选择的英雄及其关键属性&#xff0c;输出单挑中每回合的过程、结果&#xff0c;以及最终胜负结果输出程…

DTF:预测抗癌药物协同作用的深度张量分解

DTF: Deep Tensor Factorization for predicting anticancer drug synergy 摘要1 介绍2 材料与方法2.1 数据采集和预处理2.2 DTF:深张量因式分解2.2.1 符号2.2.2 张量分解算法2.2.3 CP-WOPT2.2.4 深度神经网络2.2.5 特征工程2.2.6 模型构建 2.3 模型与比较评价CP-WOPT基准分类器…

元宇宙需要“基建狂魔”

当互联网行业从先进生产力的象征&#xff0c;逐渐成为带有原罪的资本力量时&#xff0c;元宇宙作为这个行业的元叙事&#xff0c;变成了万能药&#xff0c;能解一切忧愁。 荔枝说自己是“声音元宇宙”&#xff0c;Soul 说自己是“年轻人社交元宇宙”&#xff0c;Facebook 现在…

牛逼|珍藏多年的工具让我实现了带薪摸鱼自由

文 | 豆豆 来源&#xff1a;Python 技术「ID: pythonall」 资本是噬血的&#xff0c;因此打工人最有效的抵抗资本的方法就是上班划水&#xff0c;带薪摸鱼&#xff0c;但前提是你要先搞完自己手上的工作才行&#xff0c;今天就给大家推荐几款我常用的在线工具&#xff0c;每一款…

岂有此理? 珍藏多年的工具让我实现了带薪摸鱼自由

资本是噬血的&#xff0c;因此打工人最有效的抵抗资本的方法就是上班划水&#xff0c;带薪摸鱼&#xff0c;但前提是你要先搞完自己手上的工作才行&#xff0c;今天就给大家推荐几款我常用的在线工具&#xff0c;每一款都能让你提高不少工作效率。 drawio (https://jq.qq.com/…

基于ipad协议的gewe框架进行微信群组管理(二)

友情链接 geweapi.com 点击访问即可。 获取群组详情 小提示&#xff1a; 该接口可以一次查询20个群组查询出来的信息是不带公告的 请求URL&#xff1a; http://域名地址/api/group/detail 请求方式&#xff1a; POST 请求头&#xff1a; Content-Type&#xff1a;applica…

如何打开计算机控制界面,如何打开控制面板 【使用途径】

大家都知道电脑使用起来非常方便,但遇见如何打开控制面板 的时候就非常头疼了,如果你是第一次遇到如何打开控制面板 ,怎么样才能快速解决如何打开控制面板 带来的烦恼呢?小编为大家收集了很多关于如何打开控制面板 问题的解决方法,下面请看具体的解决方法步骤: 电脑的控制…

【JAVA基础】- BIO介绍及其使用

【JAVA基础】- BIO介绍及其使用 文章目录 【JAVA基础】- BIO介绍及其使用一、BIO概述二、BIO工作机制客户端服务端 三、同步阻塞步骤四、编码实现传统BIO服务端代码客户端代码总结 五、BIO编程现实多发多收服务端代码客户端代码 六、BIO模拟客户端服务端多对一实现步骤服务端实…

39、传输层的任务和协议

从本节内容开始&#xff0c;我们学习TCP/IP模型的传输层的知识。传输层是TCP/IP模型中的重要组成部分&#xff0c;如果没有传输层的处理&#xff0c;那么源主机发送的IP数据包到达目的主机之后&#xff0c;目的主机将不知道这个数据是哪个应用程序的数据&#xff0c;就不能很好…

央行、外管局、银行业协会牵头银行区块链联盟,三驾马车齐攻国际金融市场...

文丨互链脉搏黑珍珠号 未经授权&#xff0c;不得转载! 11月20日&#xff0c;恒生电子股份有限公司官方消息&#xff0c;恒生电子区块链运营总监任珊日前表示&#xff0c;由中国银行业协会牵头&#xff0c;11家头部银行以及4家科技公司共同参与的“中国贸易金融跨行交易区块链平…

CDA数据分析师高级师资研修班在重庆仙桃大数据学院顺利开班

7月22日&#xff0c;由CDA数据分析(成都)研究院、重庆仙桃大数据学院联合筹备及招生的“CDA数据分析师高级师资研修班”在重庆仙桃大数据学院顺利开班。 本次培训由CDA数据分析(成都)研究院副院长、中科院博士、电子科技大学博士后卢宇老师主讲。分别从大数据系统架构、数据的导…

阿里巴巴区签约重庆,这些合作亮点你不得不知!

&#xff08;原文标题&#xff1a;刚刚&#xff0c;阿里巴巴区域中心落地&#xff01;马云来重庆要干这些大事情&#xff01;&#xff09; 马云携团队来重庆了&#xff0c;背后隐藏着大信息&#xff01;显然是要干大事情&#xff01; 就在刚刚&#xff0c;重庆市政府与阿里巴巴…

首批49个国家绿色数据中心名单公布

导读 工业和信息化部、国家机关事务管理局、国家能源局等三部门日前联合公告第一批国家绿色数据中心名单&#xff0c;世纪互联M6数据中心等49个数据中心榜上有名。 工 业 和 信 息 化 部 国 家 机 关 事 务 管 理 局 国  家  能  源  局 公  告 2018年…

【案例】重庆市金融工作办公室:大数据监测预警非法集资平台

近年来&#xff0c;随着国家对金融市场管控政策的不断调整以及互联网金融的快速发展&#xff0c;非法集资的犯罪手段和形势发生了很大变化。仅在2016年,全国检察机关公诉部门受理非法集资案件9500余件 作者 | 金信网银 官网 | www.datayuan.cn 微信公众号ID | datayuancn 本篇案…