<!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. 安卓请求网络错误 直接在main Thread 进行网络操作出现maintreamexception

    StrictMode.setThreadPolicy(new StrictMode.ThreadPolicy.Builder() .detectDiskReads().detectDiskWrites ...

  2. OAF_OAF控件系列3 - Poplist的实现(案例)

    2014-06-02 Created By BaoXinjian

  3. C语言中的指针和数组

    下面的内容节选自由我所执笔的会议记录.对于本文的不足之处,各位可以提出自己的看法. Q1:指针和数组到底是怎么一回事? A:指针和数组有本质的不同.指针就是一个内存地址,在32位系统下,一个指针永远占 ...

  4. uva 116 - Unidirectional TSP (动态规划)

    第一次做动规题目,下面均为个人理解以及个人方法,状态转移方程以及状态的定义也是依据个人理解.请过路大神不吝赐教. 状态:每一列的每个数[ i ][ j ]都是一个状态: 然后定义状态[ i ][ j ...

  5. Python tuple 函数

    描述 Python 元组 tuple() 函数将列表转换为元组. 语法 以下是 tuple 的语法: tuple( seq ) 参数 seq -- 要转换为元组的序列. 返回值 返回元组. 实例 以下 ...

  6. Angularjs 控制器controller的作用

    我们在view中给模型的一个参数name赋值 “hello world” . 这是一种简单的赋值,我们可以在视图中通过 ng 指令(以ng-开头的指令)实现了简单的赋值,如果遇到复杂的逻辑运算操作,那 ...

  7. MySQL Study之--MySQL下图形工具的使用(MySQL Administrator)

    MySQL Study之--MySQL下图形工具的使用(MySQL Administrator) 系统环境:     操作系统: Windows  7(64) 下载地址:http://www.soft ...

  8. for循环中的break与continue

    break: 跳出循环,执行for循环下面的语句.continue: 跳出本次循环,执行下次循环.

  9. Msys2:windows下好用的unix模拟器

    msys2是基于mingw的bash模拟器,他为在windows下使用类似unix的环境提供了方便.同时,他还是基于mingw的,所以,他生成的也是原生的windows程序. msys2官方网站是:h ...

  10. 【Android】6.2 AlertDialog(警告对话框)

    分类:C#.Android.VS2015: 创建日期:2016-02-08 一.简介 AlertDialog也是Android系统当中常用的对话框之一. 在一个AlertDialog中,可以有一个Bu ...