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

暴强:用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

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

聚焦全球移动市场:创新以色列 科技巨头的倾慕之地 Android版Chrome 27浏览器正式上架 机器人——数据中心的新“网管” George Chu:在雅虎打造真正的工程师文化 2013,303+家中国云计算企业的“生态系统”之梦! 高访问量Web应用跨云端迁移的原因:权限和易用性 Web应用开发者福音 Chrome 28新增丰富通知中心功能 帷千兰旭:推广渠道鱼龙混杂,开发者请小心 关于IE 10 你应该知道的6件事 Spring Framework 4.0M1发布,支持JDK 8、Java EE 7 “渣打科营编程马拉松赛”正式启动 官网同时上线 Android应该支持OpenCL的十大理由 传谷歌考虑和Facebook竞购众包地图Waze 谷歌工程师再次公布Windows漏洞 并称微软很难合作 Glassdoor评前景最令员工乐观的十大科技公司 华为上榜 下一代Android深度前瞻 第18级API功能揭秘 Web开发者不容错过的20段CSS代码 8大核心要点:我们能用HTML5 Canvas做什么? 移动周报:直接拿来用!最火的Android开源项目 前MySQL CEO:云将重新定义开发者的每一件事 CIO必知六件事,至少必须想到的! PPT集萃(四):来自五位中外专家分享的虚拟化和云存储实践 Jolla和Sailfish OS,那些你应该知道的事儿 不仅保值还能升值:过时的苹果电脑创下67.1万美元售价 三十天完成跨平台办公套件Joeffice的开发 jQuery 1.10.0和2.0.1同时发布 软件初创公司招投的九个必备技巧 BYOD浪潮即将来袭 六大年轻杀手重塑企业软件 灵活运用AppFlood:提高APP eCPM的10个技巧 事半功倍:你应该知道的HTML5五大特性 创建API监视器的五大技巧 高分“悬赏”解决我的这个问题500-1000分:) HUB 的普通口到路由器的普通口的网线是用交叉线还是用正常线? xp算出号码后怎么重装?格掉原来的c盘么? 怪了,我用这文件来切换用户的怎么不能用啊?? 看完这篇文章,真是为中国篮球感到悲哀! 关于win.net server 3700的两个问题,高手请进 如何在一个事务中同时进行EJB和jdbc的提交? 菜鸟问题,送分啦! 请问利用Office2k怎样在Excel中输出东西呢? 高分相送!哪里有<标准C语言实用大全>和<C高级程序设计>的电子书籍下载? 各位的开发周期一般有多久?? 如何在页面间传递数值呢,看如下程序 新手小问题!关于便条小程序。。务必帮帮忙啊!!!详情请进。。。 怀念朱总理!! 关于内存泄漏的问题!! 要用XSL原样输出一个元素里面包含的所有内容怎么办? IHTMLDocument 怎样得到一个tag的属性值 简单问题 没有激情以后还能干什么? 如何实现基于对话框的程序不在任务条里显示? 十六大闭幕 用Delphi、Mysql的大侠帮忙看看吗?---急急急急 别人的东西,学习c的朋友看看吧。 高手请指点! 表示严重不满:jbuilder下居然不能用鼠标的滚轮~ 如何将HTML文本直接显示在CppWebBrowser中?(不使用临时表) PB中有没有类似VC中ListMember功能的东东呢? 怪啊怪啊,ListView的问题 如何取得任务栏的高度? 哪里有《Effective STL》下载? 哪里有《Effective STL》下载? Load Servlet ? word 和 数据库 谁能帮我看一下程序? 帮我看看这几个宏什么意思? 程序员!女人对你重要么???? 这是我第四天的C#学习笔记,敬请高手指教 谁先回来马上给分(简单问题) 机器的usb问题!! 兄弟们,小弟刚接触JSP,帮忙解决一个问题。 请教PHP.INI配置里的SESSION! 刚开始接触.net 求购程序,请进. 求购程序 求购程序 推荐一些适合初学者看的书吧 一家位于Montreal, Canada的公司,求购一个程序 如何保存UNICODE的字符串到硬盘上 如何将HTML文本直接显示在CppWebBrowser中?(不使用临时表) 如何保存UNICODE的字符串到硬盘上 redhat第4第5两个iso文件是做什么的 加一笔,变成另一个字,并组词.去 幻 史 形容一个人很老道有经验的词语是叫"成俯"的词语 但是字不对! 在字典上也难查到!谁知道正确的写法! 知道的说下 谢谢! “彖”字怎么读? My father left home by car yesterday.(同义句)请用driver to回答 形容经验的词语弥足珍贵有这辞么 “木”字加“彖”字念什么 因加一笔并组词. 英语翻译Three or four times a week I spend my lunch break strolling beside the Maribyrnong,Melbourne’s other great,but mainly overlooked river.Overlooked it may be, but there are attractive stretches aplenty along the course of the Maribyrnong. pants 到底是单数/复数,可数/不可数? 去加一笔在组词 英语翻译1 How well have judges protected rights in the UK and USA?2 The electoral systems used for national elections in the UK and USA no longer work well and should be reformed. My pants are blue(对blue提问) ( )colour are( )pants? .信息智能处理的方式是什么? 中学,大学,社会为排比句如题.仿写句子,采用修辞手法四个比喻在语意上构成一个系列.急..请快. 英语翻译请告诉我书的价格,以及国际快递的价格,还有你的账号,以便我能及时地将钱寄给你. 解决一下智商球2第22关怎么过? 为什么传递函数描述只适用于线性定常系统, I pay two yuan for book,还是把I改为I'm? 我决定要好好学习英语,如果有机会,我一定去美国. 英语怎么说,求大神翻译,要口语化,不要翻译我决定要好好学习英语,如果有机会,我一定去美国. 英语怎么说,求大神翻译,要口语化,不要翻 线性定常离散系统脉冲传递函数的定义已知系统得开环传递函数为绘制相应的频率特性曲线.、绘制开环传递函数的对数频率特性曲线 I'll pay 200 yuan for the MP3 player.(同义句转换):I'll ( ) 200 yuan ( ) the MP3 player. 英语翻译有没有哪位photoshop的高手能够把我ps近图片后排靠左的位子.Are there any photoshop experts who has ability to knockout me into the left seat near the back of the picture. 仿句“小学是一个句子,中学是一篇文章,大学是一本书,社会是一座品类齐全的图书馆” 写出几个描写人能言善辩的成语 失重状态下,一个盒子与盒子里面的物体之间的关系?失重状态下,一个盒子与盒子里面的物体之间的关系.或者说飞行器与宇航员在环绕地球做圆周运动时,公式中的M是否只是飞行器的质量?如若 The red coat is mine 对red 提问 能言善辩,还有没有像这样能()善()的成语啊 有没有什么东西可以隔绝地心引力 木星土星等气体行星构造是什么?我想象不出来,落进去就成无底洞了么?温度、压强会如何变化?请给出一个形象化、科幻化的表达,我会送积分. 按顺序写出表示过程的词语()()()结果 什么东西能抵抗地心引力? 一个传递函数,在通频带内的增益是20db,那么他的放大倍数是多少?怎么换算的?谢谢 表示教训经验的诗句快!要两句 什么东西可以挑战地心引力?有没有什么东西可以绝对不受重力? 二阶系统的极点分别为-0.5和-4,增益为5,求其传递函数 求初中英语学霸~ 一数学题目,急求答案,还要又过程,急!一游泳者在河中逆流而上,游至桥A下面时,水壶被水冲走,他继续向前游了20分钟,才发现水壶遗失,于是立即返回追寻水壶,在桥A 下游距桥2千米处追到了水壶 “我是一名高中毕业,即将进入大学的学生” 类似的句子怎么写能比较出彩马上要高考了 英语不是特别好 不过高考批英语作文也不会太仔细看 就是看看首尾 这是开头 如果能加分就更好了还 初中英语学霸速度来 八大行星中有明亮光环的是? 如何使自己变得大胆自信一些呢?很困惑?拜托各位了 3Q eat more vegetables and we will healthier and healthier.请问为什么用eat而不用eating,在什么情况下用eating. 同学取得好成绩,你用社么诗来鼓励他继续努力 怎样才能使自己自信起来拜托各位了 3Q 比喻句谁能给我10句告诉我吧 I met a friend of my father‘s yesterday afternoon?该一般疑问句? 怎么样才能使自己自信起来拜托各位了 3Q 十句比喻句短一点 yesterday,my father was very glad to( ) his old friend (meet)yesterday,my father was very glad to( )his old friend (meet)括号内填后面的适当形式为什么填这个 比喻刚刚走上社会,缺乏处世做事的经验 英语翻译By the end of the course shown on this CAS will you have spent 3 years or more in theUK studying on a course below degree level (below NQF level 6)? 米山读什么 16课说勤奋是按什么顺序写的 求比喻句10句 山字下面一个良字读什么,崀 lǎng ◎ 〔嵻~〕见“嵻”。 数学测试题试卷有20道题,答对一题得5分,答错或不答得-5分.周密得了40分,她做对了多少题? 『翻译』:This is where the end of cancer begins my father didt at home这句话哪错了 海底很深很深的地方会不会感到恐怖,里面有海怪吗? 谁能给我10句比喻句长一点的!
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘