HTML坦克大战学习02---坦克动起来
- <!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---坦克动起来的更多相关文章
- 坦克大战学习笔记-TankWar
最近学习了马士兵老师直播的单机版坦克大战,模仿的做了一个,整理一下思路记录下来,项目git地址:https://github.com/zhuchangli/TankWar/tree/master 视频 ...
- 【 java版坦克大战--事件处理】 坦克动起来了
折腾了这么久,坦克总算能动了.只贴代码编辑不给上首页,花了半个小时的时间写了n多注释. 再顺便把绘图的原理发在这里: 绘图原理 Component类提供了两个和绘图有关的重要方法: ① paint ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克和地图碰撞的检测下
上篇我们完成了地图的信息获取和碰撞检测,这篇我们整合到程序中. 在这之前我们改造一下Tank类,使它更加模块化,共容易理解: 1.改造后的Tank类声明如下: class Tank : public ...
- cocos2d-x游戏开发系列教程-坦克大战游戏之坦克的显示
1.先定义坦克的一些属性 class Tank : public CCSprite { public : Tank(); ~Tank(); static Tank* createTankWithTan ...
- HTML坦克大战学习01
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- C# 坦克大战学习总结
1.学会用Resource管理资源 添加资源 在properties下的Resource.resx添加资源 使用资源 工程名.Properties.Resource.资源名 实际本质,是一个流. 2. ...
- Java坦克大战 (七) 之图片版
本文来自:小易博客专栏.转载请注明出处:http://blog.csdn.net/oldinaction 在此小易将坦克大战这个项目分为几个版本,以此对J2SE的知识进行回顾和总结,希望这样也能给刚学 ...
- HTML5-坦克大战一完成坦克上下左右移动的功能(一)
坦克大战一完成坦克上下左右移动的功能 <!DOCTYPE html> <html> <head> <meta charset="utf-8" ...
- 阶段学习总结-坦克大战(2D)案例
这是前几天学习的案例,这两天学习了NGUI和UGUI,被UI搞得很烦躁,但是今天还是将前几天学习的坦克大战总结以下.这个游戏是小时候的经典红白机游戏的复刻,见截图: 一.游戏物体 游戏中包含地图元素( ...
随机推荐
- jmeter --- 基于InfluxDB&Grafana的JMeter实时性能测试数据的监控和展示
转自:https://blog.csdn.net/RickyOne_RR/article/details/50637839 本文主要讲述如何利用JMeter监听器Backend Listener,配合 ...
- Error_GL_KeyflexfieldDefinitionFactory.getStructureNumber无法找到应用产品
2014-07-12 BaoXinjian
- LevelDB场景分析1--整体结构分析
基本用法 数据结构 class DBImpl : public DB { private: struct CompactionState; struct Writer;// Infor ...
- map以自定义类型当Key
关于map的定义: template < class Key, class T, class Compare = less<Key>, class Allocator = alloc ...
- server2012 配置SSL证书
导入SSL证书: 开始 -〉运行 -〉MMC,启动控制台程序 -> 选择菜单“文件 -〉添加/删除管理单元”->列表中选择“证书”->点击“添加”-> 选择“计算机帐户” -& ...
- ps换衣服
1.抠衣服->给衣服新建图层(ctrl+j)->给图层去色,让衣服边黑白色.2.剪贴蒙版(上图:大花布,下形:衣服).作用:大花布替换成衣服3.大花布图层->叠加图层样式或其它图层样 ...
- 大数问题:求n的阶乘
题目:求100! 这看起来是一个非常简答的问题,递归解之毫无压力 int func(int n){ if(n <= 1) return 1; else return n*func(n-1); } ...
- RhinoMock顺序调用
MockRepository mocks = new MockRepository(); ISongBird maleBird = (ISongBird)mocks.StrictMock(typeof ...
- 基于FPGA的异步FIFO设计
今天要介绍的异步FIFO,可以有不同的读写时钟,即不同的时钟域.由于异步FIFO没有外部地址端口,因此内部采用读写指针并顺序读写,即先写进FIFO的数据先读取(简称先进先出).这里的读写指针是异步的, ...
- ny14 会场安排问题
会场安排问题 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 学校的小礼堂每天都会有许多活动,有时间这些活动的计划时间会发生冲突,需要选择出一些活动进行举办.小刘的工 ...