如何逐步开始实现您的第一个HTML5 2D视频游戏

软件开发的优势在于:在合理的范围内让任何您能想象到的事物在屏幕上变成现实。不像其他领域受一些物理条件的束缚,软件开发人长期以来一直使用图形化 API 和 UI 工具包来实现富有创造性和引人注目的应用程序。最富有创造性的软件开发大概是游戏编程;比起让游戏景愿变成现实,优秀的创意就可使您通过少许努力便可获得更多的收益。

平台">视频游戏(Platformvideo games)

Donkey Kong、Mario Bros.、Sonic the Hedgehog 和 Braid 是众所周知的畅销游戏,它们都是平台游戏。平台游戏曾一度占据视频游戏销售的三分之一。今天,它们的市场份额大幅下降,但仍有许多成功的平台游戏。

然而,有益的并不意味着容易的;事实上,恰恰相反。实现游戏(特别是视频游戏)需要对编程有着非凡的理解,能够很好地把握抓图和动画,还需要掌握大量数学知识、艺术和创造力的结合使用。而这仅仅只是一个开头,成功的游戏开发人员需要花费大量时间来雕琢其游戏,改良游戏玩法和图像,除此之外,还要实现很多与游戏玩法无关的方面,比如记分牌、指令、生命和级别之间的动画以及残局序列 (endgame sequences)。

本系列旨在向您显示如何实现一个 HTML5 视频游戏,这样您就可以开始创建自己的游戏了。

游戏:Snail Bait

在本系列中,我首先会向您展示如何使用 HTML5 Canvas API 实现一个平台视频游戏。该游戏是 Snail Bait,如图 1 所示。确保您的浏览器中有 Canvas 硬件加速器(最近刚刚在大多数浏览器上实现,包括 Chrome V18 以上的版本);否则,Snail Bait 性能会大幅降低。

图 1. Chorme 上运行的 Snail Bait
 
Snail Bait 是一款经典的平台游戏,游戏的主人公,我通常将其简称为跑步小人,在水平移动的浮动平台奔跑跳跃。跑步小人的最终目标是到达一个有规律地跳动的平台,并在该级别结束时获得一枚黄金纽扣。图 1 中显示了跑步小人、有规律地跳动的平台和黄金纽扣。

玩家使用键盘控制跑步小人:d 向左移动,k 向右移动,j 或 f 跳起,p 暂停游戏。

游戏开始时,您有 3 条生命。游戏画布左上方会显示代表剩余生命数的跑步小人图标,正如您在 图 1 中所看到的那样。在跑步小人达到该级别终点的过程中,她必须避开一些坏家伙(蜜蜂、蝙蝠和蜗牛),同时试着抓住贵重物品,比如硬币、红宝石和蓝宝石。如果跑步小人碰到坏家伙,就会流血并失去一条生命,并且您必须回到该级别的起点。当跑步小人碰到 “好人” 时,您的积分将会增加,并会听到一个令人愉悦的声音。

Snail Bait 中使用的 HTML5 技术Canvas (2D API) :

基于脚本的动画的定时控制
Audio
CSS3(转换和媒体查询)

时间: 2024-11-27 14:21:14

如何逐步开始实现您的第一个HTML5 2D视频游戏的相关文章

一个html5播放视频的video控件只支持android的默认格式mp4和3gp_javascript技巧

复制代码 代码如下: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> </head> <body>

html5-求 大神帮忙做一个HTML5页面?急!!!

问题描述 求 大神帮忙做一个HTML5页面?急!!! 解决方案 用一个div括起要点击按钮后再显示的内容,点击内容后设置div容器display为block显示 <input type="button" value="察看" onclick="viewDetail(this,'div1')"/> <div id="div1" style="display:none"> 详细内容...

利用java socket 写的一个联机的五子棋游戏,服务器端和客户端的问题,大神求教啊。。

问题描述 利用java socket 写的一个联机的五子棋游戏,服务器端和客户端的问题,大神求教啊.. 利用java socket 写的一个联机的五子棋游戏,一个服务器端的程序和两个玩家的客户端程序,可不可以都运行在同一台主机上啊? 我运行服务器端和其中一个玩家的客户端程序时,正常.但是运行第二个玩家的客户端程序时,就出现了 Java.net.BindExecption Address already in use: JVM_Blind. 的异常.怎么办? 还有我打算客户端把下的棋子的对象传给服

如何搭建一个完整的视频直播系统?

问题描述 如何搭建一个完整的视频直播系统? 朋友打算打造一个全新模式的视频直播平台,主要功能有些类似现在很多的美女直播平台.假设前期同时在线观看人数为2W人,清晰度不低于720P,拥有美颜.混音等附加功能,还有最重要的不能卡顿.如果以上假设成立,需要做哪些准备工作,技术门槛有多高,资金支出要多少? 解决方案 起码得拿出500万,这个非常烧钱. 解决方案二: 不建议"找外包公司",这绝对是个坑. 解决方案三: 这个你需要找专业的外包公司帮你们做.

技术-SWing/awt怎么把一个正在播放视频的Panel从一个Jframe移动到另外一个Jframe?

问题描述 SWing/awt怎么把一个正在播放视频的Panel从一个Jframe移动到另外一个Jframe? 我用Java做播放器,视频不是由自己解码.所以在做全屏播放时,不能中断正在播放的视频.那么我能怎么实现???(已经试过两种方法) 1.去掉窗口的装饰后,最大化窗口和Panel.(失败.视频丢失) this.dispose(); this.setUndecorated(true); // 去掉窗口的装饰 2.把Panel从第一个Jframe上remove(),再移到另外一个没有装饰 的Jf

游戏编程-如何设计一个算法求coinfilp游戏中的最佳步骤呢?

问题描述 如何设计一个算法求coinfilp游戏中的最佳步骤呢? 就是那个cocos2dx示例中的翻硬币游戏.规则如下: 1.有NxM的格子,N和M都是可变的,每个格子有一个硬币,有正反两面. 2.当点击某一个硬币时,该硬币和其相邻的四个硬币(如果存在)一起翻面.当场上所有硬币都处于正面时,游戏完成. 因为我不知道这个游戏如何玩,因此想写一个算法,自动求出任意状态下到达游戏完成的最佳步骤.但现在毫无头绪..求大神帮助

【实战HTML5与CSS3 第三篇】我第一个HTML5网页诞生了(提供源码)

原文 http://www.cnblogs.com/yexiaochai/archive/2013/05/01/3052782.html 目录 [实战HTML5与CSS3 第一篇]初探水深,美丽的导航,绚丽的图片爆炸!! [实战HTML5与CSS3 第二篇]绚丽的快速导航! [实战HTML5与CSS3 第三篇]我第一个HTML5网页诞生了(提供源码) 前言 昨天的进度有点延缓,只做了快速导航特效,都是晚上回来一点多才基本结束,其中很多问题也没有修正,就只有一个白板特效. 今天是假日的最后一天,所

用mfc 制作一个三人跳棋游戏·

问题描述 用mfc 制作一个三人跳棋游戏· 游戏是两个人与计算机进行的,游戏界面什么都能做出来,就是计算机针对两名玩家的走棋, 进行回应这方面的算法怎么写,而且在数据库中收录棋谱,让计算机实现人工智能 这方面怎么破啊,求大神指教~ 解决方案 跳棋比较简单,用广度优先算法遍历可能的走法,并且对盘面进行评估,得到最优的走法. 如果要再高级点,就设计自适应学习算法.

使用Python编写一个简单的tic-tac-toe游戏的教程_python

 这个教程,我们将展示如何用python创建一个井字游戏. 其中我们将使用函数.数组.if条件语句.while循环语句和错误捕获等. 首先我们需要创建两个函数,第一个函数用来显示游戏板:   def print_board(): for i in range(0,3): for j in range(0,3): print map[2-i][j], if j != 2: print "|", print "" 这我们使用两个for循环来遍历map,该map是一个包含