如何做html5山寨版愤怒的小鸟

15

作者:管理员发布时间:2021/1/26 19:15:54评论数:0

简单而是用的小游戏框架,为你创建好了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就是精灵表。

这篇文章讲解了如何自己实现Animation,主要原理简述如下:

定义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秒时间内,可能已经发生了好几次鼠标键盘事件,所有需要在事件发生时记录下事件类型及状态,当程序获得执行机会时,读取刚才这些记录,处理事件,删除记录。

如果您觉得本文的内容对您的学习有所帮助:

关键字:jquery

java jquery愤怒的小鸟_如何做html5山寨版愤怒的小鸟相关推荐

  1. 如何做html5山寨版愤怒的小鸟

    今日终于得空,补一篇html5做的山寨版愤怒小鸟的技术贴,共入门级参考. 主要有以下几点,主要是一些链接,供大家学习 1.游戏框架 2.Sprite sheet和Animition 3.box2D 4 ...

  2. 愤怒的小鸟的html制作,如何做html5山寨版愤怒的小鸟

    简单而是用的小游戏框架,为你创建好了canvas,而且用了double buffer的canves 主要的类图如下: 框架定义了GameObject基类,游戏中每一个可以活动的部件均可以继承它,还定义 ...

  3. java jquery 框架_[Java教程]小谈Jquery框架

    [Java教程]小谈Jquery框架 0 2013-12-23 18:01:16 现在Jquery框架对于开发人员基本上是无人不知,无人不晓了,用起来十分的方便,特别是选择器十分强大,提高了我们的开发 ...

  4. java 防重_如何做一个防重设计

    前言 在业务设计中防重设计是一个关键点,以接口设计为例,防重就是防止接口被多次调用而产生脏数据,比如支付订单出现重复支付,所以说防重至关重要,在如何防重之前我们首先看一下是如何出现重复请求的. 何时出 ...

  5. Java .net 心得_我做英文站的心得-如何做好英文站 - 程序员日记 - 做人做技术【关注.NET和JAVA】...

    我做英文站的心得-基础篇 首先:选择自己目前熟悉或者最熟悉的行业产品 关键词 我比较熟悉厨卫的水龙头,水槽,橱柜等,我这样首先确定英文词分别为faucets, sinks, cabinets. 然后按 ...

  6. java开心餐厅_菜鸟操作—HTML5制作开心餐厅页面

    需求说明 开心餐厅需求说明.jpg 图片素材 game01.jpg game02.jpg game03.jpg game04.jpg 文本素材 开心餐厅,让你可以开心的烹饪美味佳肴,从一个简洁的小餐厅 ...

  7. Java 动静分离_如何做前后端动静分离

    我们的 ERP 系统就是前后端完全分离,毫无关联. 后端用的是改造的 Laravel 框架,将业务拆分.路由拆分,来分离后端复杂的权限验证,同时对外依旧是简单明确的 RESTful API. 前端采用 ...

  8. java字符存储_用java的类集框架做一个字符存储器(15)

    11.这是java的关于java的类集框架做一个字符存储器的源代码可以直接进行编译运行,希望大家能够从中获益良多. package niming; //导入ArrayList这个类 import ja ...

  9. java程序设计实验报告代写_代写file I/O作业、代写java Scanner I/O程序、代写java编程作业、代做java实验报告...

    代写file I/O作业.代写java Scanner I/O程序.代写java编程作业.代做java实验报告 日期:2018-09-05 03:40 ?Objectives oCreate a pr ...

最新文章

  1. 对于索引(a,b,c),下列哪些说法是正确的
  2. 新冠最凶变种出现!突变量德尔塔两倍,专家称感染率超原毒株500%,引发全球股市震荡...
  3. 图解粒子群优化算法(PSO)
  4. Linux无法联网怎么办?解析VMware上的CentOS7(Linux)系统无法联网的解决办法
  5. 在Gradle里访问任务(task)的几种方式
  6. Hyper-V + CentOS7 安装视频教程
  7. 前端学习(3225):字符串形式
  8. 第零课、开启ce自身保护、设置od,让调试不非法
  9. 图像标注,三倍加速:谷歌AI新方案,数据民工的福音 | Demo可玩耍
  10. C语言从链表中删除素数,Data Structures 之 链表
  11. LINUX SHELL mkdir建立多级目录
  12. 离散数学课后习题答案 左孝凌版
  13. C语言小程序:找出100以内素数
  14. 萤石云官方Demo下载并二次开发 QT5.12.10
  15. 文献阅读笔记【10】:基于小尺度分形维数的裂缝图像分割方法
  16. 《浪潮之巅》读书笔记
  17. linux mount iso文件系统,在Linux中挂载ISO文件的两种方法(mount命令与mount软件)
  18. 编写产生(0,1)上的均匀分布的伪随机数的函数
  19. 类似京东淘宝寄售转拍系统源码-拍卖系统源码-竞拍系统网站源码
  20. windows快速切换jdk版本号

热门文章

  1. 切入万亿家居市场,国美是要充当“逆袭者”还是“搅局者”?
  2. 6.5 【加密和安全】- 重合指数 无线网络
  3. Netflow及其及配置案例
  4. 【第3版emWin教程】第50章 emWin6.x的AppWizard使用控件经典回调方式
  5. 使用TASSEL学习GWAS笔记(3/6):基因型数据可视化:kingship,PCA,MDS
  6. 不删除配置的情况下修改路由器密码
  7. 怎么更改计算机管理员用户名和密码,Win10系统无法修改管理员账户密码怎么办?...
  8. 3D 定制 女仆2/ CM 3D2 制作精美动画必备软件下载
  9. 基于TI TMS320F2837x系列的单/双核32位浮点MCU控制器+ Xilinx Spartan-6低功耗FPGA核心板
  10. 09uni-app实战跨端云开发实战拍照识别垃圾分类精灵视频教程