html5游戏开发的五个最佳实践
- 格式:docx
- 大小:73.39 KB
- 文档页数:8
手机html5游戏教程HTML5游戏教程是一种针对手机浏览器的开发技术,它可以使用HTML、CSS和JavaScript等前端技术来创建手机上的游戏。
下面是一份1000字的手机HTML5游戏教程。
第一部分:HTML5游戏概述(200字)HTML5是一种最新的网页标准,它提供了一系列的API和技术,让开发者可以在浏览器中创建和展示丰富的内容。
其中之一就是HTML5游戏,它使用HTML、CSS和JavaScript等前端技术来实现游戏的开发和运行。
相比于原生应用,HTML5游戏具有跨平台、无需下载安装和更新便捷等优势,因此一直受到开发者和用户的青睐。
第二部分:HTML5游戏开发环境(200字)在开始HTML5游戏开发之前,我们需要准备开发环境。
首先,确保你已经安装了最新版本的浏览器,如Chrome、Firefox或Safari等。
然后,你还需要一个文本编辑器来编写HTML、CSS和JavaScript代码,可以选择Sublime Text、Visual Studio Code或Atom等。
此外,你可能需要一些图片编辑器,如Photoshop或GIMP等,用于制作游戏的素材。
第三部分:HTML5游戏基础(200字)在HTML5游戏开发中,我们需要使用一些基础的HTML和CSS来构建游戏的界面和布局,并使用JavaScript来处理游戏的逻辑和交互。
例如,使用HTML的canvas元素来创建一个游戏画布,使用CSS来设置游戏的样式和布局。
第四部分:HTML5游戏开发进阶(200字)一旦你掌握了HTML5游戏的基础知识,你可以进一步学习一些进阶的技术来提升游戏的交互和效果。
例如,你可以使用WebGL来实现3D的游戏场景,使用CSS3动画来创建流畅的过渡效果,使用WebSocket来实现多人在线游戏等。
第五部分:HTML5游戏发布与优化(200字)当你完成了游戏的开发,你需要将其发布到手机上进行测试和分享。
HTML5技术在游戏开发中的应用研究随着移动互联网的快速发展,HTML5技术成为了一种非常流行的游戏开发技术。
HTML5技术具有跨平台、不需要下载和安装的优点,可以让更多的玩家方便地享受到游戏的乐趣。
本文将对HTML5技术在游戏开发中的应用进行研究。
一、 HTML5技术的特点HTML5技术是HTML(超文本标记语言)的第五个版本,它的主要特点是可以支持多媒体和图形、改善了语义化标签、增强了离线存储和数据交换、更加友好的API、更好的实时通信等。
在游戏开发中,HTML5技术主要有以下几个优点:1. 跨平台性。
HTML5技术可以在不同的设备上运行,包括电脑、手机、平板等,不需要开发者为不同的平台开发不同的版本。
2. 无需下载。
使用HTML5技术开发的游戏可以直接在浏览器中运行,不需要玩家下载和安装游戏,降低了使用门槛和玩家的成本。
3. 更好的性能。
HTML5技术可以使用WebGL等技术,实现3D图形的渲染和更好的动画效果。
同时,HTML5技术也支持加速器、声音、键盘和鼠标事件等交互方式,提升了游戏的性能和用户体验。
二、 HTML5技术在游戏开发中的应用1. 网页游戏网页游戏是HTML5技术最早应用的领域之一,这类游戏可以在浏览器中直接运行,不需要插件和软件的支持。
目前很多网页游戏都采用了HTML5技术,比如《开心消消乐》、《王者荣耀》等。
2. 手机游戏HTML5技术在手机游戏开发中也有着广泛的应用,可以运行在不同的手机平台上。
这类游戏不需要下载安装,玩家只需要使用手机的浏览器即可进行游戏。
目前很多手机游戏都采用了HTML5技术,比如《全民枪战》、《糖果崩塌》等。
3. 桌面游戏HTML5技术也可以被用于桌面游戏的开发。
使用HTML5技术可以快速地构建游戏界面和逻辑,同时还可以应用现有的技术,如WebGL,来提升游戏的性能。
在这个领域中,目前还没有涌现出很多成功的案例,但是HTML5技术的应用潜力还是很大的。
快速入门HTML5游戏开发HTML5游戏开发是近年来非常火热的领域,越来越多的人开始关注并参与其中。
本文将以"快速入门HTML5游戏开发"为题,分为以下几个章节,逐步介绍HTML5游戏开发的基础知识和实践经验。
第一章:HTML5游戏开发概述HTML5游戏开发是指利用HTML5技术和相关工具开发游戏。
HTML5是下一代Web标准,提供了丰富的新特性和功能,包括图形、音频、视频、动画等。
它具有跨平台、跨设备的优势,并且可以通过浏览器直接运行,无需安装任何插件。
第二章:HTML5游戏开发工具和环境在开始HTML5游戏开发之前,需要准备相关的工具和环境。
常用的HTML5游戏开发工具包括WebStorm、Sublime Text等,同时需要安装浏览器以及一些调试工具,如Chrome开发者工具等。
第三章:HTML5游戏开发基础知识在HTML5游戏开发中,需要掌握一些基础知识。
首先是HTML和CSS,它们是构建游戏页面的基础。
其次是JavaScript,它是实现游戏逻辑和交互的核心语言。
还需要了解Canvas、WebGL、SVG等用于绘制游戏图形的技术。
第四章:HTML5游戏开发框架和库为了简化开发过程,可以使用一些HTML5游戏开发框架和库。
知名的框架包括Phaser、CreateJS、Cocos2d-js等,它们提供了丰富的API和工具,帮助开发者快速搭建游戏场景、处理输入输出、管理资源等。
第五章:HTML5游戏开发实践在实践中,我们可以通过开发一个简单的HTML5游戏来加深对HTML5游戏开发的理解。
首先确定游戏的主题和目标,然后设计游戏关卡、角色和技能等。
接着使用框架或库来编写游戏代码,实现游戏的逻辑和交互。
最后进行测试和优化,确保游戏在各种设备上正常运行。
第六章:HTML5游戏发布与推广当游戏开发完成后,需要进行发布和推广。
可以将游戏发布到网站、应用商店等平台,并且使用社交媒体、广告等方式进行推广。
基于Html5技术的博物馆主题游戏设计与开发基于HTML5技术的博物馆主题游戏设计与开发一、引言随着科技的发展和互联网的普及,游戏行业也在不断创新与发展。
HTML5作为一种新一代的网页标准,具有跨平台、跨设备的优势,越来越被开发者们所重视。
本文将讨论基于HTML5技术的博物馆主题游戏的设计与开发。
二、背景博物馆是传承与展示文化遗产的重要场所,也是人们追寻历史与艺术的重要途径之一。
然而,很多人对博物馆游览缺乏兴趣,游览方式单一,学习过程乏味。
如何通过游戏的方式吸引更多的人参与博物馆的学习与体验,是摆在我们面前的问题。
三、HTML5技术的优势与传统的游戏开发方式相比,基于HTML5技术的博物馆主题游戏具有以下优势:1. 跨平台:HTML5游戏可以在各种操作系统上运行,包括Windows、Mac、iOS、Android等。
这意味着无论是在PC上还是在移动设备上,用户都可以随时随地畅玩游戏。
2. 无需安装:传统的游戏需要用户下载和安装,而HTML5游戏可以直接通过浏览器访问,无需额外的安装步骤,提供了更便捷的游戏体验。
3. 更新及时:HTML5游戏可以通过网络实时更新,无需用户手动下载和安装更新包,游戏内容及时更新,保持新鲜感。
4. 网络共享:HTML5游戏可以通过网络实现多人游戏功能,用户可以与朋友进行游戏互动,增加了游戏的趣味性和社交性。
四、设计原则在设计与开发基于HTML5技术的博物馆主题游戏时,应遵循以下原则:1. 游戏内容与博物馆主题相符:游戏应紧密围绕博物馆的主题,展现博物馆的文化、历史与艺术的内涵。
游戏的背景、角色、道具等元素都应与博物馆的展品相呼应。
2. 游戏难度与知识水平相适应:游戏的难度应根据用户的知识水平进行调整,既要考验用户的智力,又要使其在游戏中学到新的知识。
适度提供提示与帮助,以提高用户的参与度。
3. 游戏互动与社交功能:增加游戏的互动性和社交功能,用户可以与其他玩家进行交流和合作,增加游戏的趣味性和可玩性。
目录•7.1 游戏开发前地技术准备•7.2 实例 7-1 :小黄人吃泡泡游戏•7.3 实例 7-2 :经典俄罗斯方块游戏游戏开发前地技术准备7.1 游戏开发前地技术准备 •7.1.1 Canvas 动画地实现•7.1.2 元素碰撞检测与自由落体•7.1.3 鼠标键盘事件•采用 Canvas 地绘图方法与 JavaScript 时间函数相结合,动画效果就可以实现了,具体步骤如下.•利用 Canvas 绘制动画。
•以 JavaScript 时间函数来控制循环。
•绘制第一帧图形(利用 API 绘图)。
•清空画板(使用方法 clearRect 或 fillRect)。
•绘制下一帧动画。
•JavaScript 提供地时间控制方法:•window.setInterval:指定某个任务每隔一段时间就执行一次,也就是无限次地定时执行•window.setTimeoutt:指定某个函数或字符串在指定地毫秒数之后执行•window.requestAnimationFrame(callback):在下一次浏览器重绘之前,调用指定地函数callback)来更新动画参考代码if(!window.requestAnimationFrame) {// 如果不支持 requestAnimationFrame, 就使用各浏览器地私有属性 webkit, mozwindow.requestAnimationFrame = (window.webkitRequestAnimationFrame ||window.mozRequestAnimationFrame ||window.msRquestAniamtionFrame ||window.oRequestAnimationFrame ||function(callback) {// 通过 setTimeout 指定 1 秒调用 60 次return setTimeout(callback, Math.floor(1000 / 60));})}•一般情况下,优先使用 requestAnimationFrame,但兼容性不太理想,可以通过以下代码实现兼容7.1.1 Canvas 动画地实现例如:实现一个小球来回往返匀速运动地动画效果参考代码<!-- 项目 Example7-1--><canvas id="myCanvas" width="640" height="600">您地浏览器不支持 Canvas, 请更换浏览器或者升级浏览器版本!</canvas><script>var canvas = document.getElementById('myCanvas');var ctx= canvas.getContext('2d');// 小球地初始位置var x = 20;// 设定小球运动地速度var V = 4;function run() {// 清空画布ctx.clearRect(0, 0, canvas.width, canvas.height);// 每次在新地地点重新绘制小球ctx.beginPath();var gradient = ctx.createRadialGradient(x , 180, 0, x, 190, 20);gradient.addColorStop(0, '#FFB6C1');gradient.addColorStop(1, '#FF1493');ctx.fillStyle = gradient;ctx.arc(x, 200, 30, 0, 2 * Math.PI);ctx.fill();x = x + V;// 沿着 x 轴方向往返移动if(x > (canvas.width - 20) || x < 20) {V = -V;}// 使用 requestAnimationFrame 方法完成递归调用window.requestAnimationFrame(run);}run();</script>•根据由自由落体原理,小球运动地轨迹可分解为计算 x 轴方向与 y 轴方向地轨迹。
HTML5游戏开发HTML5游戏开发是一种新型的游戏开发方式,它利用HTML、CSS和JavaScript等Web技术来创建游戏。
HTML5游戏开发具有很多优点,例如跨平台性、易于部署、低成本等。
在这篇文章中,我们将介绍HTML5游戏开发的一些基础知识、开发技巧和案例分析等。
一、HTML5游戏开发的基础知识1. HTML5游戏的优点HTML5游戏开发具有以下优点:- 跨平台性:HTML5游戏可以在不同的设备上运行,例如PC、移动设备和游戏机等。
- 易于部署:HTML5游戏不需要安装任何插件,只需要一个浏览器即可运行。
- 低成本:HTML5游戏的开发成本相对较低,因为开发人员可以使用HTML、CSS和JavaScript等常见的Web技术。
- 社交性:HTML5游戏可以直接在社交网络上运行,例如Facebook等。
- 支持在线平台:HTML5游戏可以通过在线平台进行发布、分发和营销等。
2. HTML5游戏的组成部分HTML5游戏由以下几个组成部分组成:- HTML代码:HTML代码用于定义游戏的结构和内容。
- CSS样式表:CSS样式表用于定义游戏的样式和布局。
- JavaScript代码:JavaScript代码用于实现游戏的逻辑和功能。
- 媒体文件:媒体文件包括图片、声音和视频等,用于增强游戏的视觉和听觉效果。
二、HTML5游戏开发的技巧1. 使用Canvas绘图Canvas是HTML5的一个新特性,它允许开发人员使用JavaScript在网页上绘制图形。
Canvas可以用于绘制2D图形和3D图形,因此非常适合开发游戏。
2. 使用WebGL渲染WebGL是一种基于OpenGL的新技术,它允许开发人员使用JavaScript在网页上渲染3D图形。
WebGL具有很高的性能和效率,因此非常适合开发复杂的游戏。
3. 使用HTML5音频和视频HTML5游戏可以使用HTML5视频和音频来增强游戏的效果和体验。
物理与电子工程学院专业实训报告学生姓名: * * * 学号: 20130341100 专业:电子信息科学与技术班级:13级电科本1班指导教师:* * *2017年9月15日专业实训报告实训单位:物理与电子工程学院地点:实验楼信号与系统实验室实训时间:2017.9.5—2017.9.11指导教师:* * *1、实训目的及要求:(根据指导教师在教学过程中给出的具体要求填写)通过本次实训,旨在以亲身参与各类项目的实际编写工作,来了解新兴的HTML5语言的发展历程,并了解和掌握这一新技术在IT行业中的具体应用范围和使用方法。
在进行对H5语言进行初步了解后,通过实训课程的安排,逐步学习基础的H5语言的指令代码,运用所学习的指令代码进行更深入的效果设计,如定位、浮动、3D动画设计、轮播图等初级的H5设计,最后通过运用所有学习的指令操作完成总体的项目设计,从而对H5语言展开比较全面的了解和具备应用能力。
要求实训期间认真学习H5的各种指令操作,认真完成作业并书写日报,不得迟到、早退、旷课;若有问题需及时与校负责老师和项目工程师沟通联系。
2、实训的流程及内容(包括前期准备及实训过程)实训开始前,由承担实训的主要负责人和实训老师,即蓝鸥公司老师杨成龙对这次实训做了总体概述,并说明了本次实训所需要的sublime软件、谷歌浏览器;展示了预期需要完成的设计效果,并说明了实训期间的各项要求。
实训的具体流程为:第一天,总体介绍实训,主要介绍了H5语言的发展历程,说明了本次实训的任务,介绍了所使用的sublime软件的操作方法和相关插件的安装方法。
第二天,主要学习了在sublime软件中的固定代码格式,主要有头文件名、网页标题、<style></style>格式,并学习了一些基础的设置,如添加颜色的代码操作。
第三天,学习了浮动指令、添加图片的操作。
第四天,学习了JC语言,CSS内联样式的代码书写。
第五天,学习了CSS外联样式的代码书写,并学习3D动画的代码书写,学习了轮播动画的设计,并对所学的各种代码操作加以总结复习。
基于HTML5游戏开发引擎的休闲游戏设计与开发随着移动互联网的快速发展,休闲游戏在手机应用市场中占据了重要地位。
而基于HTML5游戏开发引擎的休闲游戏设计与开发,成为了当前游戏开发领域的热门话题。
本文将从HTML5游戏开发引擎的选择、休闲游戏设计原则、开发流程以及优化技巧等方面进行探讨,帮助开发者更好地理解和应用HTML5技术进行休闲游戏的设计与开发。
1. HTML5游戏开发引擎选择在进行基于HTML5的休闲游戏设计与开发之前,首先需要选择适合的HTML5游戏开发引擎。
目前市面上有许多成熟的HTML5游戏引擎可供选择,如Phaser、CreateJS、Egret等。
不同的引擎具有各自特点和适用场景,开发者可以根据项目需求和个人喜好进行选择。
2. 休闲游戏设计原则在进行休闲游戏设计时,需要遵循一些设计原则,以确保游戏能够吸引玩家并具有良好的用户体验。
一些常见的休闲游戏设计原则包括简单易懂的操作方式、清晰明了的界面设计、有趣的游戏玩法、适当的难度设置等。
通过遵循这些原则,可以提高游戏的吸引力和可玩性。
3. 休闲游戏开发流程在进行基于HTML5的休闲游戏开发时,需要经历一系列的开发流程。
首先是项目规划和需求分析阶段,确定游戏类型、核心玩法等要素。
接着是美术设计和界面UI制作,包括角色设计、场景绘制等。
然后是程序编码和功能实现,利用HTML5技术实现游戏逻辑和交互效果。
最后是测试和优化阶段,确保游戏在不同设备上运行流畅,并对性能进行优化。
4. 优化技巧在进行HTML5休闲游戏设计与开发时,需要注意一些优化技巧,以提升游戏性能和用户体验。
一些常见的优化技巧包括减少资源加载大小、合理使用缓存机制、优化代码逻辑、适配不同屏幕尺寸等。
通过合理运用这些优化技巧,可以使游戏在各种设备上都能够顺畅运行,并提升用户满意度。
结语基于HTML5游戏开发引擎的休闲游戏设计与开发是一个充满挑战但又充满乐趣的过程。
通过选择合适的引擎、遵循设计原则、严谨执行开发流程以及灵活运用优化技巧,开发者可以打造出精致而又吸引人的休闲游戏作品。
HTML5技术的常见应用场景及实现方法HTML5技术是一种基于HTML的标准,可以使开发人员创建复杂的web应用程序和游戏。
它提供了各种功能,例如绘图、音频和视频播放、本地存储等。
在本文中,我们将介绍HTML5技术的一些常见应用场景及实现方法。
一、视频和音频HTML5技术提供了一种新的方式来处理视频和音频。
传统的方法是使用Flash或Java Applet,但这些插件存在安全和稳定性问题。
使用HTML5技术,可以直接嵌入视频和音频文件,而不需要使用插件。
要在网页中嵌入视频需要使用video标签,如下所示:<video src="movie.mp4" controls> </video>上述代码将显示一个视频,其中的控件包括播放、暂停、音量和全屏按钮。
网页开发者还可以通过CSS样式表自定义这些控件。
要在网页中嵌入音频需要使用audio标签,如下所示:<audio src="music.mp3" controls> </audio>这段代码将显示一个音频播放器,其中的控件包括播放、暂停、音量和全屏按钮。
类似于视频标签,网页开发者同样可以通过CSS样式表自定义这些控件。
二、本地存储HTML5技术提供了一种新的方式来处理本地存储。
HTML5的本地存储API可以将数据存储在本地,这些数据可以通过JavaScript访问。
在实现本地存储之前,需要了解两种本地存储技术:localStorage和sessionStorage。
localStorage技术可以将数据存储在本地,这些数据不会随着浏览器的关闭而丢失。
代码示例:localStorage.setItem("name", "John");alert(localStorage.getItem("name"));上述代码将在本地存储name为John的数据,并在弹出消息框中显示该数据。
HTML5是伟大的,因为它多才多艺的 - 它没有具体针对单一的平台.更重要的是,HTML5是无所不在的. 就我所知的,它在你的PC上,你的手机上,你的平板设备上,甚至在你的厨房电器上.
就凭HTML5-多才多艺和无所不在这两个特点 -- 不辩自明, 为什么众多的开发者们备受鼓舞. 然,众所周知,"一旦开发者们被激发了灵感,他们常常会编写游戏."(好吧,可能只是我做了.)
幸运的是,有关HTML5游戏开发的文章比比皆是. 然而, 在你打算使用HTML5编写游戏之前, 我不得不给你一些建议.
你能从本文中学习到什么? 我將提及HTML5游戏开发框架, 怎样通过支持智能手机和手持设备使受众更广泛, 怎样管理游戏状态, 怎样解决性能问题, 怎样支持大多数浏览器平台.
因此,直奔主题,这里有5个创建HTML5游戏的最佳实践,实战!("实战"增加了戏剧效果) 最佳实践 #1:使用框架 编写简单游戏在HTML5中是很容易的,但是当你押宝在HTML5上,你就需要做更多的准备,确保游戏顺利运行.
例如,当你使用了很多的图片,声音效果,和其它的资源,它们会花费一些时间等待浏览器从服务器下载. 如果在编写游戏时, 你不把它放在心上, 你会焦头烂额. 因为图片和声音文件是异步加载的,你的JavaScript代码会在资源全部加载完成前执行.这常常导致"popping"(图片不可用),声音效果在需要时不播放. 好的修正方法是创建一个预加载器,延后脚本代码的执行,直到所有的资源都下载完毕为止. 另一个问题是,你很可能想在不同的机器和/或不同的浏览器,以不同的速度运行你的游戏. 对此, 当你没有更多做为的时候,你仍要确保动画和移动速帧独立于游戏运行平台.
实际上, 每个游戏都很多功能性的样板代码. 幸运的是, 你不必自己从头编写. 有很多框架让你仅关注游戏逻辑, 而不是去担心这些琐碎(和大)的事, 确保你的游戏顺利运行.
使用框架唯一需要注意的是, 你有太多选择. 像ImpactJS框架, 皆在帮助开发游戏的方方面面, 而像EaselJS框架主要关注图形处理. 最后还是由你来挑选你认为最舒服的框架. 这些可能让人摸不着头脑, 但在JavaScript世界, 确定了框架往往意味着确定了编程风格.
1 2 3 4 5 6 7 8 9 10 11 12 13 ig.module( 'monster' ) .requires( 'impact.game', ) .defines(function(){ Monster = ig.Entity.extend({ eyes: 42 });
});
一个好例子是ImpactJS, 它不仅提供图形显示的抽象或播放声音效果, 也织入了自定义对
象和继承模型,如上所示. Ascend Arcade delivered three games in three months using the ImpactJS framework.
尽管有很多的HTML5游戏现在依赖于某种形式的框架, 很多开发者仍然坚持一路颠簸, 试图重新构建一切. 然而这可能是一个好的学习经验, 但如果你想在合理的时间完成, 使用框架是正确的方法. 一个好的例子是, Ascended Arcade 使用 ImpactJS框架, 在三个月中发布了三款有意思的(有些受到好评)游戏.
最佳实践 #2: 认真考虑小的和触摸屏的设备 可能HTML5的销售卖点之一是,它可以工作于桌面PC, 手持电脑甚至智能手机.(如果你还没有看过Windows Phone 7 Mango上运行的IE9, 看看这个视频).
跨平台(take that,Webster's 字典!)特性是HTML5与身俱来的, 常常只需付出少量的额外工作便可做到. 然而, 有几个你需要认真考虑的事情...
首先也是最重要的, 屏幕尺寸可能在不同设备中区别很大. 如果想让你的HTML5游戏在移动设备上运行良好,你要么确保它们支持多个分辨率,要么不超过WVGA框架大小800x480. 纵然这样,既然大多数移动设备缺乏一次渲染整个网页的能力, 采用先进的缩放和平移技术编写游戏可能会适得其反. 这可以通过viewport标记关闭.下面的代码片段將使游戏窗口占满可用的横向屏幕. 设置属性"user-scaleable"为"no"告知手机浏览器禁用平移, 否则常常会导致手指控制游戏的冲突.
1 2 3 4 content="width=device-width; user-scaleable=no; initial-scale=1.0" />
就算游戏在小屏幕设备上渲染没问题, 你也应该停下来思考一下输入问题. 大多数仅支持触
摸式的设备拥有个虚拟键盘,他们可能会占用太多屏幕空间来控制游戏角色. 如果严格的触摸式输入出了问题, 你应该创建一个受限的虚拟键盘,仅仅创建游戏需要的按钮(如方向键). 然而,最好的做法是控制你的游戏,不需要额外的屏幕元素. 一个很好的例子是Spy Chase游戏,你用一个手指控制自动车(一些你不可能在实际生活中尝试的东西).
最佳实践 #3:自动保存玩家进度 像site pinning特性, 试图给web浏览器web应用程序和常规的桌面应用同样的地位. 然而, 作为应用程序运行的网站想法太新了, 网页要维持客户端状态. 关闭Microsoft Word前,你可能会三思后行, 但是可能不会对于一个开放的网页谨慎行事.大部分时间, 它不是问题 --- 大多数网页要嘛是无状态的, 要嘛是在服务器上维护记录你的信息.
然而, 浏览器游戏, 是非常不同的小怪兽. 既然JavaScript代码运行在客户端, HTML5游戏状态通常都保持在瞬时内存中(又称RAM).关闭游戏器窗口,你辛苦赚取的积分就付之东流了. 现在, 你可能会认为, 一个明智的用户会足够谨慎, 他们连续玩了8小时, 不关闭游戏. 但事故常有发生, 特别是当打开了多个选项卡或突然断电.
一言蔽之: 当编写HTML5游戏的时候, 绝对的最佳实践是定期保持玩家进度, 允许玩家恢复上一次关闭网页时的状态.
现在,你应在哪保存玩家的进度呢?过去,显而易见的地方是服务器端或浏览器cookie. 两个解决方案都不是特别有吸引力. 服务器端方案, HTTP请求不得不每次构造需要存储或取回的信息. 使用cookie的方案, 你的空间就非常有限了, cookie的可用空间大大依赖于浏览器配置.
更好的可行方案是使用HTML5 DOM storage. DOM storage 通过一个接口, 让你为每个网站保存几兆的数据, 它类似于一个key-value存储(或者一个JavaScript expando对象). 这非常方便,但在HTML5游戏上下文中, 你也可能需要记住复杂的数据结构 --- 一些DOM storage非原生支持的结构.
幸运的是,现代的JavaScript引擎都有内建的机制, 將对象序列化成紧凑的结构,如JSON. 使用这种方案, DOM storage也可以记住复杂信息.接下来的两个助手函数, 使用HTML5 DOM storage和ECMAScript5的内建JSON特性, 解决了游戏状态的存储和取回.
ECMAScript5:
1 2 3 4 5 6 7 8 function saveState(state) { window.localStorage.setItem("gameState", JSON.stringify(state)); } function restoreState() { var state = window.localStorage.getItem("gameState"); if (state) { return JSON.parse(state); 9 10 11 12
} else { return null; } }
最佳实践 #4: 使用监控器
开发游戏的一个最大挑战是加入越来越多的游戏特性的同时能保持高帧率. 好消息是, 浏览器比过去几年快了很多,HTML5游戏运行在恒定的60fps已经成为现实. 这实属不易. 对于IE9,意味着要编写一个全新的JavaScript引擎, 使用多CPU内核和基于Direct2D的完全的硬件加速渲染管道.
IE9的内置监控器能帮助你定位性能漏洞. 对于简单游戏,你不需要担心性能问题.但既然HTML5是平台无关的,你很可能会针对大量的设备和浏览器开发, 有些不像你想像的那么快速. 即使你只针对高性能电脑, 性能仍然会成为一个问题.
如果你想游戏运行在60fps, 单个帧渲染不能超过16毫秒. 这可能看起来像是个艰巨的任务, 但这是可以做到的. 很幸运,有一些工具可以帮助你. 在IE9中(或者10),单击F12,打开开发者工具,选择"Profiler"选项卡并单击 "Start profiling".
现在导航到你感觉性能应被改善的地方,给监控器大概30秒的时间收集数据,然后单击"Stop profiling." 將给你展现一个关于每个游戏函数累计执行时间的概览. 大多数时候, 你会发现, 少数几个函数占用了大部分执行时间.优化这些函数將给你超值回报, 分析这些代码, 拖后腿的子程序將原型毕露.
不要盲目的相信直觉, 在当今的JavaScript引擎中, 看起来慢可能实际上运行得很快. 最佳优化方案是时常监控和判断代码的改变是否对性能有负面影响.
社会化游戏: Warimals 基于HTML5而允许你身边的Facebook好友一起玩游戏. 最佳实践 #5 创意! HTML5不光在技术上是有趣的, 浏览器本身也是一个完美的游戏平台. 感谢浏览器... 它存在于很多不同的设备中,他们常常(总是)在线的,它们是人们彼此交流的工具, 通过email,聊天室和社交网络.做为一个浏览器的游戏开发者, 你可以创建游戏, 让世界各地的人聚集在一起, 带给他们快乐.