零基础HTML5游戏制作教程 第4章 移动的控制

第4章 移动的控制

一,捕获键盘击键的原理

有很多种方法可以控制游戏中图形的移动,常用的有键盘控制、鼠标控制以及屏幕上的按钮控制等。其中键盘控制比较简单,比较适合初学者,我们先来讲这种方法。

其实键盘上的每一个按键,在我们按下去的时候,会向电脑中传送一个编号。比如A的编号是65,B是66。在这一章里,我们只需要记住4个键就可以了,她们是光标的上下左右键。向上的编号是38,向下是40,向左是37,向右是39。

所以键盘捕获的原理其实很简单,就是读取键盘传到电脑中的编号,然后根据这个编号来判断哪个键被按下了。

我们需要“onkeydown"属性来完成这个操作。格式一般可以这样:

<body onkeydown="functionkeydown(event)">

比如我们需要判断是哪个按键被按下了,我们可以用下面的代码:

<head>
<script>
function functionkeydown(dir)
{if (dir==38)
 alert("up");
 else if (dir==40)
 alert("down");
 else if (dir==37)
 alert("left")
 else if (dir==39)
 alert("right");
}
</script>
</head>
<body onkeydown="functionkeydown(event)">
</body>

二,利用键盘的光标来移动图形

既然我们已经学会了键盘击键的捕获,那么我们现在可以用它来移动屏幕上的图形啦!

基本的方法是这样的:就是通过键盘的按键来改变坐标,比如是向右的话,就让x坐标变大一些,如果是向下,就让y坐标变大一点。是不是很简单?

下面是一个完整的画一个方块,用键盘来控制它移动的例子。

<html>
<head>
<title>movement</title>
<script>
var x=0;
var y=0;
function goup()
{y-=50;}
function godown()
{y+=50;}
function goleft()
{x-=50;}
function goright()
{x+=50;}
function direction(dir)
{if (dir==38)
 goup();
 else if (dir==40)
 godown();
 else if (dir==37)
 goleft();
 else if (dir==39)
 goright();
}
function refresh()
{ctx.clearRect(0,0,cvs.width,cvs.height);
 ctx.fillRect(x,y,50,50);
}
</script>
</head>
<body onkeydown="direction(event)">
<canvas id="can" width="400" height="400">
</canvas>
<script>
var cvs=getElementById("can");
var ctx=cvs.getContext("2d");
ctx.fillStyle="red";
var setint=setInterval("refresh()",100);
</script>
</body>
</html>

好了,试一下,用手按键盘的上下左右键,看方块是不是动起来了呢?是不是有一点成绩感呢?原来做游戏一点也不复杂,对不对?

时间: 2024-10-11 11:05:23

零基础HTML5游戏制作教程 第4章 移动的控制的相关文章

零基础HTML5游戏制作教程 第6章 贪吃蛇的实现及代码

第6章 贪吃蛇的实现及代码 讲了不少东西了,老讲理论的东西没劲呀,我们不如先试着做一个小游戏吧. 作为我们的第一个游戏,当然是越简单越好.<贪吃蛇>大家应该都玩过吧?我觉得我玩过的游戏中,她应该算是最简单的一个了.好,就让我们从做<贪吃蛇>开始,享受自己做游戏的乐趣吧. 由于这个游戏是本教程的第一个实际的游戏例子,我会讲的比较详细一些.请大家重点注意编程的思路和实现的方法,这些远比代码本身要重要. 一,蛇身的制作 蛇身由一系列方格组成,初始我们设定蛇身的长度是4,以后每吃到一次食物

零基础HTML5游戏制作教程 第2章 简单图形的绘制

第二章 简单图形的绘制 HTML5支持使用Canvas和SVG等方式在网页直接绘制图形.其中SVG适合用来绘制高质量的矢量图形,不适合用来做游戏,所以我们做游戏一般使用Canvas. 由于本教程以简单为原则,所以在初学阶段请不要把注意力分散到美工.画质等细节,我们只需要掌握矩形.多边形.圆形等简单图形的绘制,并对这些图形编程,使之具有一定的运动能力和游戏效果. (如果你偷懒,你甚至可以跳过本章中多边形和圆形的绘制,只学矩形,然后直接去看下一章.) 一,矩形的绘制 命令的格式是context.fi

零基础HTML5游戏制作教程 第5章 碰撞检测

第5章 碰撞检测 几乎所有的游戏都需要碰撞检测.比如<贪吃蛇>,你需要检测蛇的前端是不是已经碰到了它的尾巴:比如<俄罗斯方块>,你需要检查方块是不是已经碰到了底部:比如<英雄联盟>,你需要判断adc的子弹或魔法是不是已经碰到了对方. 其实要做好碰撞检测是很难的,尤其是对于3d游戏或者图形复杂的2d游戏来说. 当然,对于简单图形来说,碰撞检测还是比较容易的,本章将分别介绍圆形的碰撞检测,矩形的碰撞检测,以及逻辑碰撞检测. 一,圆形碰撞检测 圆形间碰撞检测的原理是最简单的,

零基础HTML5游戏入门教程 第1章

第一章 绪论 HTML一直是网络编程的基石,其他任何编程语言,不论是PHP.Phython.CSS还是 JavaScript,都必须以HTML为基础. 上一代的标准,HTML4.01在1999年制定之后,统治互联网长达15年,越来越跟不上飞速发展的网络的步伐,尤其是在无线互联日益普及的今天.终于,在多年的争论和妥协之后,万维网联盟(W3C)在1个月前发布了HTML新标准.让我们一起来迎接我们的新王者HTML5. HTML5对网络的提升是多方面的,本教程只关注游戏方面.其实HTML5是一个相当不错

零基础unity3d游戏开发系列目录

零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(一) 零基础Unity3D游戏开发系列 第一章:游戏开发与游戏引擎(二) 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)界面... 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目I 零基础unity3d游戏开发系列 第二章:unity3d概览(一)创建与打开项目II 零基础Unity3D游戏开发系列 第二章:Unity3D概览(一)创建与打开项目III 零基础Unity3D游戏开发

下载云计算Docker从零基础到专家实战教程【第一季】

云计算.大数据,移动技术的快速发展,加之企业业务需求的不断变化,导致企业架构要随时更改以适合业务需求,跟上技术更新的步伐.毫无疑问,这些重担都将压在企业开发人员身上:团队之间如何高效协调,快速交付产品,快速部署应用,以及满足企业业务需求,是开发人员亟需解决的问题.Docker技术恰好可以帮助开发人员解决这些问题. 云计算Docker从零基础到专家实战教程[第一季],刚刚入手,转一注册文件,视频的确不错,可以先下载看看:http://pan.baidu.com/s/1hsO74Gk 密码:g58j

Unity网络多玩家游戏开发教程第1章Unity自带网络功能

Unity网络多玩家游戏开发教程第1章Unity自带网络功能 Unity拥有大量的第三方插件,专门提供了对网络功能的支持.但是,大部分开发者第一次接触到的还是Unity自带的网络功能,也就是大家经常说到的Unity Networking API.这些API是借助于组件NetworkView发挥作用的,而它可以简化开发者大量的网络功能编码任务.本文选自<Unity网络多玩家游戏开发教程(大学霸内部资料)> NetworkView组件 在Unity中,NetworkView组件用于处理游戏在网络上

游戏开发怎么样学能入门零基础学游戏编程

游戏编程入门级教程,讲解通俗易懂.用具体实例讲解的方式让你用最短的时间掌握游戏编程基础知识.本程序使用中文开发平台搭建之星,搭建之星采用可视化构件,不需有英文基础,开发速度极快,操作非常简单.不论你使用何种编程语言开发,本课程里的例子都是一个很好的学习例子,参考其编程思路,对快速掌握开发技术非常有益.部分内容如下:生成我方战机编程生成敌方战机编程炮弹发射编程为游戏配音游戏空间的时光控制看完就会,自动动手制作游戏.游戏编程教程资料 原文地址:http://blog.51cto.com/131720

Python 零基础 快速入门 趣味教程 (咪博士 海龟绘图 turtle) 2. 变量

大家在中学就已经学过变量的概念了.例如:我们令 x = 100,则可以推出 x*2 = 200 试试下面这段 Python 代码 1 import turtle 2 3 turtle.shape("turtle") 4 x = 100 5 turtle.forward(x) 6 turtle.left(45) 7 turtle.forward(2*x) 8 9 turtle.exitonclick() 运行上面的代码,小海龟将画出下面的图案 x = 100 声明了变量 x,并将它赋值为