当前位置:首页 > 开发 > Web前端 > Html5 > 正文

HTML5 键盘监听原理实现的抓怪兽游戏+代码

发表于: 2014-08-11   作者:agevs   来源:转载   浏览次数:
摘要: HTML5小游戏抓怪兽,应用Canvas等超多的HTML5技巧编写而成,下面来向大家汇报实现步骤: 1、创建游戏画布: var canvas = document.createElement("canvas"); var ctx = canvas.getContext("2d"); canvas.width = 512; canvas.height

HTML5小游戏抓怪兽,应用Canvas等超多的HTML5技巧编写而成,下面来向大家汇报实现步骤:

1、创建游戏画布:

var canvas = document.createElement("canvas");
var ctx = canvas.getContext("2d");
canvas.width = 512;
canvas.height = 480;
document.body.appendChild(canvas);

 

我们需要做的第一件事是创建一个 canvas元素。我这样做的JavaScript,而不是HTML演示如何轻松完成。一旦我们拥有的元素,我们得到一个参考的情况下,设置它的尺寸,它附加到文档的身体。前端框架分享

2、包括图像:

var bgReady = false;
var bgImage = new Image();
bgImage.onload = function () {
bgReady = true;
};
bgImage.src = "images/background.png";

 

我们加载一些图像。我想,以做这个尽可能简单,所以它是只是一个图像,而不是被包裹起来的一个很好的类或东西。 使用bgReady让画布知道,当它的安全来绘制它。

3、 游戏对象:

var hero = {//英雄
	speed: 256, // 每秒256像素
	x: 0,
	y: 0
};
var monster = {//怪兽
	x: 0,
	y: 0
};
var monstersCaught = 0; //抓到了几个怪兽

 

4、 玩家输入:前端框架分享

// 处理键盘输入
var keysDown = {};
addEventListener("keydown", function (e) {
	 keysDown[e.keyCode] = true;
}, false);

addEventListener("keyup", function (e) {
	delete keysDown[e.keyCode];
}, false);

 

5、 新游戏

//当怪兽被抓住时,需执行
Var  reset = function () {
	hero.x = canvas.width / 2;
	hero.y = canvas.height / 2;
	// 使怪物出现在场景的某个地方(随机化)
	monster.x = 32 + (Math.random() * (canvas.width - 64));
	monster.y = 32 + (Math.random() * (canvas.height - 64));
};

 

6、 更新对象:

var update = function (modifier)
 {
	if (38 in keysDown) {   // 向上
		hero.y -= hero.speed * modifier;
	}
	if (40 in keysDown) { // 向下
		hero.y += hero.speed * modifier;
	}
	if (37 in keysDown) { // 向左
		hero.x -= hero.speed * modifier;
	}
	if (39 in keysDown) { // 
		hero.x += hero.speed * modifier;
	}
	// Are they touching?
	if (
		hero.x <= (monster.x + 32)
		&& monster.x <= (hero.x + 32)
		&& hero.y <= (monster.y + 32)
		&& monster.y <= (hero.y + 32)
	) {
		++monstersCaught;
		reset();
	}
};

 

7、 渲染对象:前端资源分享

var render = function () {
	if (bgReady) {
		ctx.drawImage(bgImage, 0, 0);
	}

	if (heroReady) {
		ctx.drawImage(heroImage, hero.x, hero.y);
	}

	if (monsterReady) {
		ctx.drawImage(monsterImage, monster.x, monster.y);
	}

	// Score
	ctx.fillStyle = "rgb(250, 250, 250)";
	ctx.font = "24px Helvetica";
	ctx.textAlign = "left";
	ctx.textBaseline = "top";
	ctx.fillText("Goblins caught: " + monstersCaught, 32, 32);
};

 

8、 游戏主循环:

var main = function () {
	var now = Date.now();
	var delta = now - then;
	update(delta / 1000);
	render();
	then = now;
};

 

9、 开始游戏:

reset();
var then = Date.now();
setInterval(main, 1);

 

HTML5 键盘监听原理实现的抓怪兽游戏+代码

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
原创整理不易,转载请注明出处:html5实现的盲打高手游戏代码 代码下载地址:http://www.zuidaima.c
前段时间看到一个“熊来了”的HTML5跑酷游戏,它是一个典型的正面2D跑酷游戏,这里借用它来介绍一下
简介: 本文是一个非常具有挑战性的编程,因为 100 行代码,约莫 10000 个字符左右,将实现围棋、五
使用键盘监听器来控制图片的移动: 1,创建一个窗体, 重写这个paint()方法来绘制图片和窗体,刷新 pres
-->> 矩阵键盘的实验可以说是普通的不能再普通了,相信大家无论是MCU还是FPGA都写过这个实验
第一部分:浏览器的按键事件 用js实现键盘记录,要关注浏览器的三种按键事件类型,即keydown,keypr
http://www.kbengine.org 中文 Demo搭建文档,QQ交流群:16535321,论坛 Releases sources : https:
2.5D游戏,虽然在外观上近似于3D游戏,却又不是严格意义上讲的3D游戏,故此2.5D游戏又常被称为[伪3D
2.5D游戏,虽然在外观上近似于3D游戏,却又不是严格意义上讲的3D游戏,故此2.5D游戏又常被称为[伪3D
2.5D游戏,虽然在外观上近似于3D游戏,却又不是严格意义上讲的3D游戏,故此2.5D游戏又常被称为[伪3D
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号