• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com专业计算机教程网站
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure
您的位置:首页 > 网页设计 >html5 > HTML5面向对象的游戏开发简单实例分享

HTML5面向对象的游戏开发简单实例分享

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-03

本文主要包含HTML5,面向对象,游戏开发等相关知识,匿名希望在学习及工作中可以帮助到您
在阅读一本HTML5游戏开发相关书籍时发现一个很好的例子,通过这个例子可以对面向对象的开发进行更深入的理解。这个对象要实现的是:将一个CSS sprite中的图像绘制到canvas中。首先创建一个SpriteSheet对象,代码如下:

var SpriteSheet = new function(){
	this.map = { };
	this.load = function(spriteData,callback){
		this.image = new Image();
		this.image.onload = callback;
		this.image.src = "images/sprites.png";
	};
	this.draw = function(ctx,sprite,x,y,frame){
		var s = this.map[sprite];
		if (!frame) {
			frame = 0;
		};
		ctx.drawImage(this.image, s.sx+frame*s.w, s.sy, s.w, s.h, x, y, s.w, s.h);
	};
}

首先使用了new function(){},保证了只会有一个实例被创建。

接下来对象内部,通过this为其绑定了两个方法和一个属性。load方法起到加载image的作用,传递两个参数,第一个参数是图像信息,即要绘制的图像在sprite中的位置大小以及在画布上的位置大小。注意callback的用法,这里面的this.image.onload = callbak;当图像加载完成后执行传入的回调函数。

draw方法用来进行图像的绘制,传入canvas的上下文环境,需要绘制的图像对象信息以及图像位置。

这个对象的逻辑构造相对复杂,基本的思路就是自定义load方法,通过load方法完成图像信息的加载。这里的图像信息指的是图像在sprite中的位置、大小等。

使用该对象的方法代码如下:

function startGame(){
	SpriteSheet.load({
		ship:{sx:0, sy:0, w:18, h:35, frames:3}
	},function(){
		SpriteSheet.draw(ctx,"ship",0,0);
		SpriteSheet.draw(ctx,"ship",100,50);
		SpriteSheet.draw(ctx,"ship",150,100,1);
	});
}

这里使用load方法,首先传入所需切图部分的相关数据,接下来在回调函数中调用对象的draw方法进行图像绘制。

以上就是HTML5面向对象的游戏开发简单实例分享的详细内容,更多请关注微课江湖其它相关文章!

您可能想查找下面的文章:

  • HTML5知识点总结
  • HTML5的本地存储
  • HTML5本地存储之IndexedDB
  • Html5实现文件异步上传功能
  • Html5新标签datalist实现输入框与后台数据库数据的动态匹配
  • 详解HTML5 window.postMessage与跨域
  • HTML5拖放API实现拖放排序的实例代码
  • 解决html5中video标签无法播放mp4问题的办法
  • HTML5新特性 多线程(Worker SharedWorker)
  • Html5新增标签有哪些

相关文章

  • 2018-12-03Html5原生拖拽操作实例讲解
  • 2017-08-06HTML5之SVG 2D入门12—SVG DOM及DOM操作介绍
  • 2018-12-03HTML5 应用程序缓存(Application Cache)
  • 2017-08-06HTML5制作3D爱心动画教程 献给女友浪漫的礼物
  • 2017-08-06HTML5 对各个标签的定义与规定:body的介绍
  • 2017-08-06html5版canvas自由拼图实例
  • 2018-12-03H5文件异步上传
  • 2018-12-03CSS中Lists 标记符样式为什么有假名却没有中文序列呢?
  • 2018-12-03HTML5每日一练之视频标签的应用
  • 2018-12-03html5的新增的标签和废除的标签简要概述_html5教程技巧

文章分类

  • html/xhtml
  • html5
  • CSS
  • XML/XSLT
  • Dreamweaver教程
  • Frontpage教程
  • 心得技巧
  • bootstrap
  • vue
  • AngularJS
  • HBuilder教程
  • css3
  • 浏览器兼容
  • div/css
  • 网页编辑器
  • axure

最近更新的内容

    • Canvas实现圆形进度条并显示数字百分比
    • HTML5每日一练之Canvas标签的应用-绘制矩形
    • cookie的具体使用方法
    • html5的canvas方法使用指南
    • 详解html5 Canvas drawing的示例代码 (二)
    • H5如何使用约束验证API
    • HTML5本地存储之Web Storage应用介绍
    • HTML5每日一练之Canvas标签的应用-绘制径向渐变图形
    • React Native 之ScrollView轮播图实现方法实例
    • HTML5实战与剖析之表单——自动获取焦点属性(autofocus属性)

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有