<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title> </head>
<body onkeydown="getCommand()">
<canvas id="tankMap" width="400px" height="300px" style="background-color: black"></canvas>
<script type="text/javascript"> //得到画布
var canvas1 = document.getElementById("tankMap");
//取得画布画笔对象
var cxt = canvas1.getContext("2d");
//定义一个Hero类
//x表示横坐标,主表示纵坐标
function Hero(x, y, direct, speed) {
this.x = x;
this.y = y;
this.speed = speed;
this.direct = direct; //向上
this.moveUp = function () {
this.y -= this.speed;
}
//向右
this.moveRight = function () {
this.x += this.speed;
}
//向下
this.moveDown = function () {
this.y += this.speed;
}
//向左移
this.moveLeft = function () {
this.x -= this.speed;
} }
//我的坦克 w表示向上,d表示向右 s表示向下 a表示向左 var hero = new Hero(, , , );
//先画出坦克
darwTank(hero); //绘制坦克对象
function darwTank(hero) {
//画出坦克
cxt.fillStyle = "#DED284";
//画出左面
cxt.fillRect(hero.x, hero.y, , );
//画出右边
cxt.fillRect(hero.x + , hero.y, , );
//中间矩形
cxt.fillRect(hero.x + , hero.y + , , );
//画出坦克的盖子
cxt.fillStyle = "#FFD972";
cxt.arc(hero.x + , hero.y + , , , , true);
cxt.fill();
//车出炮线
cxt.strokeStyle = "#FFD972";
cxt.lineWidth = 1.5;
cxt.beginPath(); cxt.moveTo(hero.x + , hero.y + );
cxt.lineTo(hero.x + , hero.y);
cxt.closePath();
cxt.stroke();
} //接收键盘命令
function getCommand() { var code = event.keyCode;
//alert(code);
switch (code) {
case :
hero.moveUp();
break;
case :
hero.moveRight();
break;
case :
hero.moveDown();
break;
case :
hero.moveLeft();
break;
}
cxt.clearRect(, , , );
darwTank(hero);
}
</script>
</body>
</html>


HTML坦克大战学习02---坦克动起来的更多相关文章

  1. 坦克大战学习笔记-TankWar

    最近学习了马士兵老师直播的单机版坦克大战,模仿的做了一个,整理一下思路记录下来,项目git地址:https://github.com/zhuchangli/TankWar/tree/master 视频 ...

  2. 【 java版坦克大战--事件处理】 坦克动起来了

    折腾了这么久,坦克总算能动了.只贴代码编辑不给上首页,花了半个小时的时间写了n多注释. 再顺便把绘图的原理发在这里: 绘图原理 Component类提供了两个和绘图有关的重要方法: ①   paint ...

  3. cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下

    上篇我们完成了地图的信息获取和碰撞检测,这篇我们整合到程序中. 在这之前我们改造一下Tank类,使它更加模块化,共容易理解: 1.改造后的Tank类声明如下: class Tank : public ...

  4. cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示

    1.先定义坦克的一些属性 class Tank : public CCSprite { public : Tank(); ~Tank(); static Tank* createTankWithTan ...

  5. HTML坦克大战学习01

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  6. C# 坦克大战学习总结

    1.学会用Resource管理资源 添加资源 在properties下的Resource.resx添加资源 使用资源 工程名.Properties.Resource.资源名 实际本质,是一个流. 2. ...

  7. Java坦克大战 (七) 之图片版

    本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学 ...

  8. HTML5-坦克大战一完成坦克上下左右移动的功能(一)

    坦克大战一完成坦克上下左右移动的功能 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...

  9. 阶段学习总结-坦克大战(2D)案例

    这是前几天学习的案例,这两天学习了NGUI和UGUI,被UI搞得很烦躁,但是今天还是将前几天学习的坦克大战总结以下.这个游戏是小时候的经典红白机游戏的复刻,见截图: 一.游戏物体 游戏中包含地图元素( ...

随机推荐

  1. 【Linux】在线求助man page与info page

    先来了解一下Linux有多少命令呢?在文本模式下,你可以直接按下两个[Tab]按键,看看总共有多少命令可以让你用? [knife@www ~]$ <==在这里不要输入任何字符,直接输入两次[ta ...

  2. Android 监听 Android中监听系统网络连接打开或者关闭的实现代码

    本篇文章对Android中监听系统网络连接打开或者关闭的实现用实例进行了介绍.需要的朋友参考下 很简单,所以直接看代码 复制代码 代码如下: package xxx; import android.c ...

  3. linux --> 删除指定目录下所有文件

    删除指定目录下所有文件 代码样例: ///////////////////////////////////////////////////// //Name: DeleteFile //Purpose ...

  4. 利用ARP和ICMP协议解释ping命令

    一.MTU 以太网和IEEE 802.3对数据帧的长度都有限制,其最大值分别是1500和1492字节,将这个限制称作最大传输单元(MTU,Maximum Transmission Unit).如果IP ...

  5. linux查看与开启sshd服务

    1.首先通过物理终端进入到linux上,手工检查ssh发现没运行/etc/init.d/sshd statussshd is stopped 手工启动服务,发现报告权限错误./etc/init.d/s ...

  6. php 数组与数组 的交集和差集

    注意,必须是第一个参数的数组的长度比较长才可以使用 $a1=array("0","1","2","3"); $a2=ar ...

  7. Eclipse使用git最基本流程(提交远程仓库的方法)

    注册一个github账号 注册完成之后,点击右上角的settings(就是那个齿轮,设置的图标) Step6 Egit的使用 首先,登入你的github账号,点击加号,选择New repositror ...

  8. unity5 静态和动态cubmap

    一,静态cubemap: asserts窗口 右键->Create->Legacy->Cubemap,新建一个cubemap,命名为cubeMap,然后为其各面指定贴图,如图: 需要 ...

  9. 深度学习FPGA实现基础知识10(Deep Learning(深度学习)卷积神经网络(Convolutional Neural Network,CNN))

    需求说明:深度学习FPGA实现知识储备 来自:http://blog.csdn.net/stdcoutzyx/article/details/41596663 说明:图文并茂,言简意赅. 自今年七月份 ...

  10. (一)jQuery EasyUI 的EasyLoader载入原理

    1.第一次看了官网的demo.引用的是EasyLoader.js文件,而不是引用jquery.easyui.min.js文件,我就有疑问了,百度一下. jQuery EasyUI是一款基于JQuery ...