会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 建站经验 > html5游戏开发的五个最佳实践

html5游戏开发的五个最佳实践

时间:2012-03-29 18:41:16   作者:   来源:   点击:

HTML5是伟大的,因为它多才多艺的 - 它没有具体针对单一的平台.更重要的是,HTML5是无所不在的. 就我所知的,它在你的PC上,你的手机上,你的平板设备上,甚至在你的厨房电器上.

就凭HTML5-多才多艺和无所不在这两个特点 -- 不辩自明, 为什么众多的开发者们备受鼓舞. 然,众所周知,"一旦开发者们被激发了灵感,他们常常会编写游戏."(好吧,可能只是我做了.)

幸运的是,有关HTML5游戏开发的文章比比皆是. 然而, 在你打算使用HTML5编写游戏之前, 我不得不给你一些建议.

你能从本文中学习到什么? 我將提及HTML5游戏开发框架, 怎样通过支持智能手机和手持设备使受众更广泛, 怎样管理游戏状态, 怎样解决性能问题, 怎样支持大多数浏览器平台.

因此,直奔主题,这里有5个创建HTML5游戏的最佳实践,实战!("实战"增加了戏剧效果)

最佳实践 #1:使用框架

编写简单游戏在HTML5中是很容易的,但是当你押宝在HTML5上,你就需要做更多的准备,确保游戏顺利运行.

例如,当你使用了很多的图片,声音效果,和其它的资源,它们会花费一些时间等待浏览器从服务器下载. 如果在编写游戏时, 你不把它放在心上, 你会焦头烂额. 因为图片和声音文件是异步加载的,你的JavaScript代码会在资源全部加载完成前执行.这常常导致"popping"(图片不可用),声音效果在需要时不播放. 好的修正方法是创建一个预加载器,延后脚本代码的执行,直到所有的资源都下载完毕为止.

另一个问题是,你很可能想在不同的机器和/或不同的浏览器,以不同的速度运行你的游戏. 对此, 当你没有更多做为的时候,你仍要确保动画和移动速帧独立于游戏运行平台.

实际上, 每个游戏都很多功能性的样板代码. 幸运的是, 你不必自己从头编写. 有很多框架让你仅关注游戏逻辑, 而不是去担心这些琐碎(和大)的事, 确保你的游戏顺利运行.

使用框架唯一需要注意的是, 你有太多选择. 像ImpactJS框架, 皆在帮助开发游戏的方方面面, 而像EaselJS框架主要关注图形处理. 最后还是由你来挑选你认为最舒服的框架. 这些可能让人摸不着头脑, 但在JavaScript世界, 确定了框架往往意味着确定了编程风格.

01ig.module(

02 'monster'

03)

04.requires(

05 'impact',

06)

07fines(function(){

08

09Monster = ig.Entity.extend({

10 eyes: 42

11});

12

13});

一个好例子是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 content="width=device-width; user-scaleable=no; initial-scale=1.0"

4/>

就算游戏在小屏幕设备上渲染没问题, 你也应该停下来思考一下输入问题. 大多数仅支持触摸式的设备拥有个虚拟键盘,他们可能会占用太多屏幕空间来控制游戏角色. 如果严格的触摸式输入出了问题, 你应该创建一个受限的虚拟键盘,仅仅创建游戏需要的按钮(如方向键). 然而,最好的做法是控制你的游戏,不需要额外的屏幕元素. 一个很好的例子是Spy Chase游戏,你用一个手指控制自动车(一些你不可能在实际生活中尝试的东西).

分享到:

网友评论

热门建站经验