广告
返回顶部
首页 > 资讯 > 前端开发 > html >怎么用html5实现愤怒的小鸟
  • 924
分享到

怎么用html5实现愤怒的小鸟

2024-04-02 19:04:59 924人浏览 安东尼
摘要

这篇文章主要介绍“怎么用HTML5实现愤怒的小鸟”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用html5实现愤怒的小鸟”文章能帮助大家解决问题。   简单而

这篇文章主要介绍“怎么用HTML5实现愤怒的小鸟”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用html5实现愤怒的小鸟”文章能帮助大家解决问题。

  简单而是用的小游戏框架,为你创建好了canvas,而且用了double buffer的canves

  主要的类图如下:

  框架定义了GameObject基类,游戏中每一个可以活动的部件均可以继承它,还定义了VisualGameObject类,它继承自GameObject类,添加了draw方法,游戏中可见的部件可以从它继承,实现自己的draw方法,draw方法带有参数,就是canvas的context。所有GameObject由GameObjectManager管理,所有自定义的GameObject子类的对象都需要添加到GameObjectManager,它有一个draw方法会被定时调用,如果每1/30秒调用一次,那么你的游戏从设计上来说就是30FPS的。这个方法会把它管理的所有GameObject都调用一遍draw方法(如果有的话),实现所有GameObject的定时重绘,这个就是大家常看到的游戏设计里的主循环。它的功能好比windows编程里的消息循环一样。

  有了这个framework,你要做的就是继承VisualGameObject,实现draw方法绘制知己,实例化并添加到GameObjectManager中即可。

  2.Sprite sheet和Animition

  Sprite sheet就是精灵表。

  主要原理简述如下:

  定义SpriteSheet类,它负责从一张大图中剪切出我们需要的一个个小图。把所有你游戏重要到的图片做成一张大图,提高性能,多个小图意味着客户端需要发起多次WEB request,每个Http request含有head,tcp,ip等都含有head,减少请求次数意味着较少数据流量,这个好处你懂的。貌似html5中的websocket就是用的这个原理,来提高系统吞吐量的,将http连接upgrade成webSocket,之后所有的双向通信都直接传数据,最少只需要两个字节的表头。

  Animation类负责将各个剪切出来的小图拼接成动画,每一个小图是一帧,每一帧定义一个duration,每一帧显示的duration完了,就显示下一帧,然后循环,看起来就是连续的动画了,其实是欺骗了你的眼睛。

  3.box2D

  随着AngryBird的火爆,这个库也进入了广大开发者的视野,现在介绍这个库的文章太多了,我就不啰嗦了,只写几个关键点:

  box2D源代码使用c++开发,可以从下载到最新版本和文档,它port到了各种平台,如java,C#,flash,javascript。我是用的是box2Dweb,这个javascript库是从actionacript库port过来的,可以从下载。

  Seth Ladd写过几篇很经典的入门级文章:

  这个库的适用范围是几米到几十米之间,也就是牛顿定律的使用范围(不含天体运动),对于微观离子的运动,用这个库是不合适的,太大的范围也不精确。

  速度太快是可以穿越的。这个是我测试过的,如果给小鸟太大的力,使其速度过快,它能够穿越木头。原因是box2D的库每1/60秒(可配置)是一个step,它会计算每个step结束时各个刚体(Rigid body)应该在什么位置,如果发现有重叠的,就认定在这个step中会有碰撞发生,会触发碰撞事件,并且修正刚体的位置,使其不重叠,但是如果某一个刚体速度太快,在这个step结束的时候已经成功穿越的另一个刚体,则碰撞就无法被检测到,实现了穿越。

  4.Audio

  在html5里,audio实现起来非常简单

  this.getAudio=function(id){

  if(this.audiOS[id]==undefined) {

  this.audios[id]=new Audio();

  this.audios[id].src=""+id;

  this.audios[id].load();

  }

  return this.audios[id];

  };

  var audio=this.getAudio("title_theme.mp3");

  audio.loop=true;

  audio.play();

  作为一个windows平台程序员,发现web在处理事件时与windows桌面应用有不同之处。桌面程序在处理鼠标或键盘事件时,注册一个事件处理方法就可以了,当事件发生时,这个事件处理方法就会被调用执行。但是web有点不一样,加入你的游戏时30FPS的,1/30秒你的程序才获得一次执行机会,但是在这短短的1/30秒时间内,可能已经发生了好几次鼠标键盘事件,所有需要在事件发生时记录下事件类型及状态,当程序获得执行机会时,读取刚才这些记录,处理事件,删除记录。

关于“怎么用html5实现愤怒的小鸟”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网html频道,小编每天都会为大家更新不同的知识点。

--结束END--

本文标题: 怎么用html5实现愤怒的小鸟

本文链接: https://www.lsjlt.com/news/92109.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么用html5实现愤怒的小鸟
    这篇文章主要介绍“怎么用html5实现愤怒的小鸟”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么用html5实现愤怒的小鸟”文章能帮助大家解决问题。   简单而...
    99+
    2022-10-19
  • PythonPygame实战之愤怒的小鸟游戏实现
    目录前言一、运行环境二、代码展示 三、效果展示1)第一关2)闯关成功​3)其他关卡(随机截图)4)闯关失败前言 《愤怒的小鸟》其实活得还不错,尽管我们一直在嘲笑它的IP帝国...
    99+
    2022-11-13
  • 如何使用Python实现愤怒小鸟游戏
    这篇文章给大家分享的是有关如何使用Python实现愤怒小鸟游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。开发工具Python版本:3.6.4相关模块:pygame模块;以及一些python自带的模块。环境搭建...
    99+
    2023-06-15
  • 忆童年!用Python实现愤怒的小鸟游戏
    开发工具 Python版本:3.6.4 相关模块: pygame模块; 以及一些python自带的模块。 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可。...
    99+
    2022-11-12
  • 如何使用纯CSS实现一只红色的愤怒小鸟
    这篇文章给大家分享的是有关如何使用纯CSS实现一只红色的愤怒小鸟的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。   代码解读   定义dom,容器中包含6个元素,分别代表头、...
    99+
    2022-10-19
  • 如何在python中利用pygame实现一个愤怒的小鸟游戏
    这篇文章将为大家详细讲解有关如何在python中利用pygame实现一个愤怒的小鸟游戏,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码展示import pygame,syspyg...
    99+
    2023-06-06
  • css3怎么实现小鸟
    这篇文章主要介绍了css3怎么实现小鸟的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇css3怎么实现小鸟文章都会有所收获,下面我们一起来看看吧。css3 写小鸟的核心原理是用到...
    99+
    2022-10-19
  • 怎么用Python实现小鸟和水管之间碰撞的游戏
    本文小编为大家详细介绍“怎么用Python实现小鸟和水管之间碰撞的游戏”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么用Python实现小鸟和水管之间碰撞的游戏”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。开...
    99+
    2023-06-27
  • 怎么用HTML5实现String Avoider小游戏
    这篇文章主要讲解了“怎么用HTML5实现String Avoider小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用HTML5实现String A...
    99+
    2022-10-19
  • 怎么用html5实现打飞机小游戏
    本篇内容主要讲解“怎么用html5实现打飞机小游戏”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用html5实现打飞机小游戏”吧!代码如下:// ...
    99+
    2022-10-19
  • 只用400行Java代码就能实现的飞翔的小鸟游戏
    目录一、效果图二、设计步骤1.素材准备2.预备知识及其运用3.大体流程三、源码1.游戏类2.地面类3.小鸟类4.柱子类一、效果图 二、设计步骤 1.素材准备 相关的素材我放到了g...
    99+
    2022-11-12
  • 使用golang怎么实现一个布谷鸟过滤器
    本文章向大家介绍使用golang怎么实现一个布谷鸟过滤器的基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。golang适合做什么golang可以做服务器端开发,但golang很适合做日志处理、数据打包、虚拟机处理、...
    99+
    2023-06-06
  • html5+css怎么实现中间大两头小的轮播效果
    小编给大家分享一下html5+css怎么实现中间大两头小的轮播效果,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!国际惯例,先上效果css:<style>...
    99+
    2023-06-09
  • 怎么实现一个更全面的Golang版本的布谷鸟过滤器
    这篇文章给大家分享的是有关怎么实现一个更全面的Golang版本的布谷鸟过滤器的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。布谷鸟过滤器布谷鸟过滤器在网络上已经有很多的介绍文章了,这里不再做过多的介绍,只提一下要点...
    99+
    2023-06-08
  • 怎么用HTML5实现鼠标滚轮事件放大缩小图片的功能
    本篇内容介绍了“怎么用HTML5实现鼠标滚轮事件放大缩小图片的功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有...
    99+
    2022-10-19
  • 怎么用div+css实现的小三角tip小提示
    本篇内容主要讲解“怎么用div+css实现的小三角tip小提示”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用div+css实现的小三角tip小提示”吧! ...
    99+
    2022-10-19
  • html5的touch事件怎么实现
    今天小编给大家分享一下html5的touch事件怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来...
    99+
    2022-10-19
  • html5的doctype声明怎么实现
    这篇文章主要介绍“html5的doctype声明怎么实现”,在日常操作中,相信很多人在html5的doctype声明怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ht...
    99+
    2022-10-19
  • HTML5怎么实现波的效果
    本文小编为大家详细介绍“HTML5怎么实现波的效果”,内容详细,步骤清晰,细节处理妥当,希望这篇“HTML5怎么实现波的效果”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。 一....
    99+
    2022-10-19
  • 怎么用HTML5的canvas实现图片压缩
    本篇内容主要讲解“怎么用HTML5的canvas实现图片压缩”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么用HTML5的canvas实现图片压缩”吧!代码如...
    99+
    2022-10-19
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作