说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

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

HTML文档下载 WORD文档下载 PDF文档下载
红白机上的经典“小蜜蜂”游戏在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 DeviceMotionEventif (window.DeviceMotionEvent != undefined) {//ondevicemotion is fired when iOS device detects motion  window.ondevicemotion = function(e) {//ax is the movement on the x axis.//This motion is used to move the ship in the game  ax = event.accelerationIncludingGravity.x * 5;  ay = event.accelerationIncludingGravity.y * 5; //Status 0 is start, 1 is left, 2 is right, 3 is stayif(status == 0){ //initial condition  status = 3; //stay  socket.emit('spaceChange', {'ax': 3});  statusmsg = 'Waiting for movement';}if(ax > 14 && status != 2){ //move right on device  status = 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 steady  status = 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 connectionio.sockets.on('connection', function (socket) {  //Set room for user when connection is made socket.on('setChannel', function (data) { socket.join(data.channelName); });  //When iOS device moves send data to browser //Multiple browsers can be listening to same device socket.on('spaceChange', function (data) { socket.broadcast.to(data.channelName)                   .emit("spaceChanges",data); }); });

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

//iOS detection and corresponding actionvar lastkey = 37;var dataStart=0;  socket.on('connect', function() {   //if sockets gets disconnected then mention room again   socket.emit('setChannel',               {'channelName': '<?php echo $randRoom; ?>'});  });   socket.on('spaceChanges', function (data) {     if(dataStart == 0){        //First movement data arrived        document.getElementById('status').innerHTML                   = 'Receiving data from your iOS device';        dataStart = 1;     }    ax = data.ax;    var posob=new Object();    if(ax == 2){        //move right        lastkey = 39;        posob.keyCode = lastkey;        posob.type = 'keydown';        document.getElementById('status').innerHTML                    = 'iOS device tilted right';    }    if(ax == 1){        //move left        lastkey = 37;        posob.keyCode = lastkey;        posob.type = 'keydown';        document.getElementById('status').innerHTML                    = 'iOS device tilted left';    }    if(ax == 3){        //hold ship in place        posob.keyCode = lastkey;    posob.type = 'keyup';        document.getElementById('status').innerHTML                    = 'iOS device held steady';    }    //Send action received above    keypressaction(posob);  });    //Fire automatically once first data startswindow.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); 

文章来源:Webdigi Blog

(编译/杨依帆 责编/张宁)

研究员带来5D光存储技术:容量达360TB,寿命高于百万年 LSI闪存加速或助力互联网IDC自我设计与建设 怎样让用户从100涨到200万?硅谷创业教父如是说 大作修炼之道:就算是手游,也要搞点剧情吧! Java EE 8愿望清单:缺少这些,Java EE将不会完美 Surface Watch?传微软正测试搭载Win 8的智能手表 又一美国造?联想在美设厂制造产品 软件定义未来 2013 SDCC中国软件开发者大会全面开启 可以直接拿来用的15个jQuery代码片段 程序员最害怕的5件事 你中招了吗? 机器智商已达四岁:亲,是时候考虑你的饭碗了 读60行代码完成的NoSQL数据库,看数据库打造面临的挑战 聚焦全球移动市场:韩国,开放之后是春天? Github 终于开始认真考虑开源项目许可证了 雅虎发布今年第二季度财报 总营收为11.35亿美元 既然无法避免被GAE锁定,何不考虑其中的机遇并自力更生 19亿美金背后的分析:91为什么要卖?百度为什么要买? 直接拿来用!最火的iOS开源项目(三) 让代码飞一会儿,超级有用的CSS编码工具集 创业者如何在Demo演讲上打动投资人? 微软小打小闹的移动版Outlook Web App,会不会被用户抛弃? 哪门编程语言影响力最大? 微软启动“Companion Web”计划 可互连多屏幕设备 让你望而却步的密码管理服务已获得100万美元的种子基金 SDCC 2013开始公开征集讲师和演讲主题 不用图片和JS,照样创建绚丽的动态CSS3菜单 是福还是祸?开发者饱经风雨的内心独白 设计师/开发者看过来,七月35款新工具速递! Hadoop进军机器学习:Cloudera收购Myrrix共创“Big Learning” 张民杰:三人团队的OpenStack机会 White Elephant:开发者必备的Hadoop利器 pb中有没有与或操作符?就象VB中的Xor这类操作符? 如何从一个单一的JSP程序员迈进J2EE的世界--请高手指点迷津 第一次来csdn,请各位多多关照。随便问一个巨傻的关于BDE的问题。 离职,却被原来公司经理阴了一下 求AutoResize控件(分不够可加) 谁做过远程代理的程序(急,100分求助,不够再给) mm不让我去接她 树形菜单的问题 如何限制对SQLSERVER的请求访问数? 各位,跪谢了!不能见死不救啊! session 问题 我的服务器 无法更改 session值了 有没有好的远程服务器监控软件 主细表类型的报表问题,希望有人帮我!先谢谢了!(急) 大家救救我得机子吧~~ 极度深奥的问题!!有没有谁知道“xp_logattach ”这个存储过程的实际作用与用法。 ADO 错误代码 (能否置顶啊..斑主) ini文件的保存 智能卡读写设备(成熟技术)== 想借鉴请进 提问?关于用DreamweaverMX处理网页参数问题? ping命令的奇怪问题,你遇到过没? 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 初学者,请教小问题~~~ 用opengl写的一个屏保,有些问题想和大家讨论 帮我看看 有谁知道windows一共出了多少版本(包括不同语言,不同版本) 想暴力解决点问题,大家给点意见! 熟悉J2EE和Web,但是英语四级没过,郁闷呀!散分讨论 怎样使用一个窗体总是显示在最后面和怎样在windows桌面上写上文字。 如果全世界只有一个男人... .net组件有没有对象池的功能? 编程男友和淘气女友!绝配!!!! 企业管理器很慢? 关于窗体的问题 我明年打算考中程,到底难吗? 网络编程 为什么我的mdb数据库不能设置对象指针可以移动啊? 急啊!!!有没有做过论坛发帖机啊能否帮我一下就是怎样提交CSDN论坛的注册信息然后得到左边的树列表和右边的列表 本人做系统时有一个操作员列表,为使每个操作员的密码保密,想在数据表据中将密码用*号代替,怎么办? 怎么檢測一個線程是否已經創建? 解密软件,哪里找 美萍VOD是怎么实现不用网络共享而完成点播的呢? com入门问题2 jb8+Weblogic配置后,在jb8中不能编译jsp文件,但java文件可以编译 哪里有好的控件下载,介绍几个好的网站!!! 一个很久没有解决的问题,请各位指教。 高分求救程序 我装RASPPP软件的时候,他要我的数字签名怎么办? javaBean 是否能在应用程序里面调用??怎么调用?? 企业管理器很慢? 100分求解,急!请大家帮忙 关于记叙文的答题计巧就是答题套路 记叙文答题方法! 初中语文记叙文的做题方法.各位帮帮忙啦~ 记叙文答题要领 white and the year is gone是什么季节 Winter is white.改同义句 It often ___ in winterRT 小重山的思想内容是什么? 武汉师范大学出的Step by Step 哪里有下? 就现在各国经济政治文化来看,学哪种小语种比较好呢? win back用法,是sth在其中还是在back后 window.back() 怎么能让IE使用火狐可以 但是IE不可以.那个history 也不行. 浙江省政协公开征集2014年重点履职日空自航空展开幕 蓝色冲击波进行飞行金正恩视察在建滑雪场 称建设者功绩将究竟谁在改变钓鱼岛“现状”?“世纪审判”遭闹场 穆尔西高喊“我是穆尔西拒穿囚服出庭、高呼口号 庭审被日本千叶首发PM2.5提醒 称污染可埃及政治仍恶性循环 军政府或催生新“印度雄心勃勃探火星 英媒议论“与中国叙利亚人权网站称10月共21名媒体工芝加哥农产品期价4日涨跌不一巨幅卫星影像图如何问责 一名公职人员?“工资不够科研经费凑”是自欺欺人生命第一的分量与坚守脚手架倒塌致1死2重伤在反垄断中构建 公平竞争格局震中区域挨村挨户搜寻伤者慰问电把改进作风各项举措落实到最基层 解决东升培训突然关门 百万学费疑被卷走梅林关未现“黑色星期一”如果你在看我岁月回眸笔记青春善恶修罗我家小猫很神奇圣仙重生陨神时代木偶传说诸天崩碎血影迷踪之人肉饭庄末世太阳神盘命阳平关旅游安家大院旅游吉鸿昌旧居旅游庄乐峰旧居旅游李吉甫旧居旅游张勋宅旅游甘巴卡布热山旅游麦积山植物园旅游极地体验馆旅游密印寺旅游先农坛旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘