html推箱子怎么清除走过的,第九讲:HTML5该canvas推箱子原型实现

body{margin:0px;padding:0px;}

#main{margin: 100 auto 0 auto;border: 10px solid #030303;300px;height:460px;border-radius:10px;}

var canvas = document.getElementById('mc');

var cxt = canvas.getContext('2d');

//定义背景的颜色

function init_background(){

cxt.fillStyle = "#6A6C6C";

cxt.fillRect(0,0,canvas.width,canvas.height);

cxt.fill();

}

//定义移动的红方块

var red_diamond = {

x : 200,

y : 100,

width : 20,

height : 20,

color : "#FC0000"

}

//初始化红小方块的方法

function init_red_diamond(){

cxt.fillStyle = red_diamond.color;

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

//定义将被空方块移动的黄方块

var yellow_diamond = {

x : 100,

y : 200,

width : 20,

height : 20,

color : "#F2FA0A"

}

//初始化黄小方块的方法

function init_yellow_diamond(){

cxt.fillStyle = yellow_diamond.color;

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

//消除黄小方块的方法

function clear_yellow_diamond(){

cxt.fillStyle = "#6A6C6C";

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

//消除红小方块的方法

function clear_red_diamond(){

cxt.fillStyle = "#6A6C6C";

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

//定义四个方法,分别控制红小方块四个方向的移动

function move_right_red_diamond (){//右边

if(red_diamond.x + red_diamond.width + 5 <= canvas.width){

//清除曾经的方块

clear_red_diamond();

cxt.fillStyle = red_diamond.color;

red_diamond.x += 20;

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

}

function move_left_red_diamond(){

if(red_diamond.x - 5 >= 0 ){

//清除曾经的方块

clear_red_diamond();

cxt.fillStyle = red_diamond.color;

red_diamond.x -= 20;

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

}

function move_up_red_diamond(){

if(red_diamond.y - 5 >= 0 ){

//清除曾经的方块

clear_red_diamond();

cxt.fillStyle = red_diamond.color;

red_diamond.y -= 20;

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

}

function move_down_red_doamond(){

if(red_diamond.y + red_diamond.height + 5 <= canvas.height){

//清除曾经的方块

clear_red_diamond();

cxt.fillStyle = red_diamond.color;

red_diamond.y += 20;

cxt.fillRect(red_diamond.x,red_diamond.y,red_diamond.width,red_diamond.height);

cxt.fill();

}

}

//定义一个方法用户推断红方块在小方块的哪一方

var red_diamond_to_yellow_diamond = "";

function red_diamond_position (){

if(red_diamond.x + red_diamond.width == yellow_diamond.x && red_diamond.y == yellow_diamond.y){

red_diamond_to_yellow_diamond = "left";

}

if(red_diamond.x == yellow_diamond.x + yellow_diamond.width && red_diamond.y == yellow_diamond.y){

red_diamond_to_yellow_diamond = "right";

}

if(red_diamond.y + red_diamond.height == yellow_diamond.y && red_diamond.x == yellow_diamond.x){

red_diamond_to_yellow_diamond = "top";

}

if(red_diamond.y == yellow_diamond.y + yellow_diamond.height && red_diamond.x == yellow_diamond.x){

red_diamond_to_yellow_diamond = "down";

}

}

//定义四个方法来移动黄色小方块

function move_right_yellow_diamond (){//右边

if(yellow_diamond.x + yellow_diamond.width + 5 <= canvas.width){

//清除曾经的方块

clear_yellow_diamond();

cxt.fillStyle = yellow_diamond.color;

yellow_diamond.x += 20;

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

}

function move_left_yellow_diamond(){

if(yellow_diamond.x - 5 >= 0 ){

//清除曾经的方块

clear_yellow_diamond();

cxt.fillStyle = yellow_diamond.color;

yellow_diamond.x -= 20;

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

}

function move_up_yellow_diamond(){

if(yellow_diamond.y - 5 >= 0 ){

//清除曾经的方块

clear_yellow_diamond();

cxt.fillStyle = yellow_diamond.color;

yellow_diamond.y -= 20;

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

}

function move_down_yellow_doamond(){

if(yellow_diamond.y + yellow_diamond.height + 5 <= canvas.height){

//清除曾经的方块

clear_yellow_diamond();

cxt.fillStyle = yellow_diamond.color;

yellow_diamond.y += 20;

cxt.fillRect(yellow_diamond.x,yellow_diamond.y,yellow_diamond.width,yellow_diamond.height);

cxt.fill();

}

}

//获取键盘点击的事件,以推断小方块想哪里移动

var direction = "";

document.onkeydown = function (e) {

red_diamond_position();

if (e.keyCode == 39 ){

if(red_diamond_to_yellow_diamond == "left" && red_diamond.x + red_diamond.width * 2 + 5 <= canvas.width ){

move_right_yellow_diamond();

move_right_red_diamond();

}else{

if(red_diamond_to_yellow_diamond != "left"){

red_diamond_to_yellow_diamond = "";

move_right_red_diamond();

}

}

};

if (e.keyCode == 37 ) {

if(red_diamond_to_yellow_diamond == "right" && red_diamond.x - 5 - red_diamond.width >= 0){

move_left_yellow_diamond();

move_left_red_diamond();

}else{

if(red_diamond_to_yellow_diamond != "right"){

move_left_red_diamond();

red_diamond_to_yellow_diamond = "";

}

}

};

if (e.keyCode == 38 ){

if(red_diamond_to_yellow_diamond == "down" && red_diamond.y - 5 - red_diamond.height >= 0){

move_up_yellow_diamond();

move_up_red_diamond();

}else{

if(red_diamond_to_yellow_diamond != "down"){

move_up_red_diamond();

red_diamond_to_yellow_diamond = "";

}

}

};

if (e.keyCode == 40 ){

if(red_diamond_to_yellow_diamond == "top" && red_diamond.y + red_diamond.height * 2 + 5 <= canvas.height){

move_down_yellow_doamond();

move_down_red_doamond();

}else{

if(red_diamond_to_yellow_diamond != "top"){

move_down_red_doamond();

red_diamond_to_yellow_diamond = "";

}

}

};

}

//初始化

init_background();

init_red_diamond();

init_yellow_diamond();

move_diamond();

5eb436707880e2ad23ed3521b5be33f7.png

175ce40b9efe7894f3b3d43cf7ded9ba.png

版权声明:本文博主原创文章,博客,未经同意不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/527842.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大学计算机要学多久,大学刚开学要不要带电脑?很多人都很后悔,学长学姐把经验告诉你...

大学刚开学要不要带电脑&#xff1f;很多人都很后悔&#xff0c;学长学姐把经验告诉你文/小川说车况大学刚开学&#xff0c;学生们要不要带电脑呢&#xff0c;想必这个问题一直对还没进入大学的准大学生来说很困扰&#xff0c;一方面既担心在学校里面用电脑的时候不方便&#x…

西南医科大学计算机应用基础历年真题,网络选修课-计算机应用基础-期末考.docx...

1 单选 (1 分)Outlook 数据文件的扩展名是().A..patB..datC..ptsD..dll正确答案&#xff1a; A2Windows 系统中 ,若 2 个纯文本文件分别包含100 和 200 个英文字符 ,下列关于它们占用磁盘空间大小的说法中,正确的是 ().A.前者大于后者B.不确定 C.后者大于前者D.两者相等正确答案…

html自定义js程序,JS中微信小程序自定义底部弹出框

实现微信小程序底部弹出框效果&#xff0c;代码分为html&#xff0c;css和js两部分&#xff0c;具体代码详情大家参考下本文。htmlCSS.commodity_screen {width: 100%;height: 100%;position: fixed;top: 0;left: 0;background: #000;opacity: 0.2;overflow: hidden;z-index: 1…

怎么知道自己是否适合计算机专业,事实:我怎么知道我的旧计算机是否适合win7或win10?...

实际上&#xff0c;win10并不大&#xff01;只是对内存和硬盘的要求更高&#xff01;根据官方的最低操作要求&#xff0c;硬件要求如下&#xff1a;1、[处理器]&#xff1a;Win10系统的安装要求计算机的处理器以不低于1GHz的速度运行2、[运行内存]&#xff1a;Win10 32位操作系…

html5 canvas ios限制,HTML5画布的drawImage比错误的iOS(HTML5 Canvas drawImage ra

我想调整从iOS相机上使用HTML5画布客户端拍摄的图像&#xff0c;但我一直在这个奇怪的错误&#xff0c;这错误的图像有一个错误的比率&#xff0c;如果运行超过〜1.5MB大它的工作原理在桌面上&#xff0c;但不是在最新的iOS版本&#xff0c;媒体上传API。&#xff1a;你可以在这…

金工如何运用计算机思维,金工实训心得体会

金工实训心得体会我们有一些启发后&#xff0c;就很有必要写一篇心得体会&#xff0c;如此可以一直更新迭代自己的想法。那么心得体会到底应该怎么写呢&#xff1f;以下是小编为大家整理的金工实训心得体会&#xff0c;希望能够帮助到大家。金工实训心得体会1时间过得真快&…

湖南女子学院 计算机,2019湖南女子学院专业排名

湖南女子学院的前身是成立于1985年的湖南女子职业大学&#xff0c;2010年3月18日经教育部批准升格为全日制普通本科院校。截止到目前为止&#xff0c;湖南女子学院重点专业共有1个专业&#xff0c;其中国家品牌专业0个&#xff0c;省部重点专业1个。下面是学习啦小编给大家带来…

2020计算机考研只考数据结构的学校,【择校必看】十三所计算机专业课只考数据结构的985院校!...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼敲黑板&#xff1a;本文涉及到的学校计算机专业考研只考数据结构&#xff0c;其中部分院校同时也会考算法、C语言等相关内容。但是&#xff0c;相对其他几门&#xff0c;无疑在专业课的复习上大大降低了难度。如果各位同学目前的专…

福州3 2五年制计算机专业的学校,福州有哪些五年制大专

福州的五年制大专有福州环保职业中专学校、福建工业学校、福建理工学校、福建经济学校、福建建材工业学校、福建商贸学校、福州电子职业中专学校、福建化工学校、福建工贸学校、福州文教职业中专学校、福建经贸学校、福州商贸职业中专学校、福州工业学校、福州建筑工程职业中专…

无法删除计算机文件是什么意思,为何计算机的文件删除不了,说是被占用要解除占用...

要解决此问题&#xff0c;必须关闭“简单文件共享”&#xff0c;然后获取文件夹的所有权&#xff1a;1. 关闭“简单文件共享”&#xff1a;a. 单击“开始”&#xff0c;然后单击“我的电脑”。b. 在“工具”菜单上&#xff0c;单击“文件夹选项”&#xff0c;然后单击“查看”选…

石家庄计算机专接本学校有哪些,河北省内的专接本学校都有哪些?

满意答案mary3978702013.02.28采纳率&#xff1a;41% 等级&#xff1a;13已帮助&#xff1a;9063人防灾技术高等专科学校河北工程技术高等专科学校保定师范专科学校承德民族师范高等专科学校保定金融高等专科学校承德石油高等专科学校沧州师范专科学校沧州医学高等专科学校邢…

计算机原理转移指令题,转移指令计算机原理.pdf

转移指令计算机原理.pdf 3.3.5 程序控制指令程序控制指令 程序控制指令又称为控制转移指令&#xff0c;包括转移指令、循环控制指令、过程调用指令和 中断指令 4 类。转移指令又分为无条件转移指令和条件转移指令。 1无条件转移指令无条件转移指令 JMP 计算机程序的执行完全按照…

计算机一级资料书推荐,推荐版 全国计算机一级考试试题【史上最全面的资料,不看你就亏!】.doc...

一、选择题(1-30)每题1分&#xff0c;(31-55)每题2分&#xff0c;共80分)二、1&#xff0e;第二代电子计算机使用的电子器件是 。三、A)电子管 B)晶体管 C)集成电路 D)超大规模集成电路四、2&#xff0e;计算机病毒是指 。A)带细菌的磁盘 B)已损坏的磁盘C)具有破坏性的特制程序…

浙江高校计算机等级考试二级办公,浙江省高校计算机等级考试二级(高级办公)Word操作提示.doc...

浙江省高校计算机等级考试二级(高级办公)Word操作提示说明&#xff1a;经过多位教师的反复验证&#xff0c;以下操作步骤能做出与效果图一样的文档。具体操作步骤如下&#xff1a;1(1)~(2)操作&#xff1a;选择“格式”→“样式和格式”命令(或在格式工具栏上单击“格式窗格”按…

静态常量放在什么包里面_在沙雕游戏里面用表情包打架,是一种什么体验

在日常的聊天中&#xff0c;不少人都会随手发一些表情包表达自己的心情&#xff0c;其中就有不少是动物的表情包。早些时候&#xff0c;推特上曾经流行过一些沙雕的动物表情包&#xff0c;大多数都是通过视觉上的误差&#xff0c;许多网友发挥自己丰富的想象力&#xff0c;让这…

win8计算机丢失xinput1+3.dll,xinput1 3.dll丢失怎么办 win8下xinput1 3.dll丢失解决方法

xinput1 3.dll是Microsoft DirectX for Windows的控制模块,它适合于WinXP,Vista,Win7,Win8系统。当运行程序或者游戏时&#xff0c;系统弹出错误提示“ 找不到 xinput1 3.dll ”,或者“没有找到 xinput1 3.dll ”时&#xff0c;说明您系统中缺失这个dll文件或者该dll文件没有被…

场内场外交易成本_选择场内基金还是场外基金,看这篇文章就够了

基金按照买卖的渠道可分为场内基金和场外基金。有的喜欢购买场内基金&#xff0c;有的喜欢购买场外基金&#xff0c;我自己就喜欢购买场内基金。这两种基金究竟怎么选择呢&#xff1f;从三方面一一为你道来。一、场内、场外基金的不同1、交易渠道不同这是最简单区分场内基金和场…

数据迁移测试经验分享

以下为作者观点&#xff1a; 数据迁移&#xff0c;是在保证新旧系统业务连续性的前提下&#xff0c;将数据从旧数据库迁移到新数据库的过程&#xff0c;测试前通过迁移策略和方案了解新旧系统数据如何重构与关联&#xff0c;测试过程需确保数据迁移的正确性&#xff0c;主要体…

计算机科技学术讲座心得体会,学术报告心得体会

好文网为大家准备了关于学术报告心得体会的文章,好文网里面收集了五十多篇关于好学术报告心得体会好文,希望可以帮助大家。更多关于学术报告心得体会内容请关注好文网。ctrlD请收藏!上周四&#xff0c;我在信息学院听了一场3G方面的技术讲座&#xff0c;讲座一、9月14日晚19&am…

祖孙俩人是什么关系_一个人生活也挺好,为什么还需要亲密关系?

专注女性自我蜕变和解放&#xff0c;愿你面向太阳&#xff0c;坚定而温暖。现在很多90后&#xff0c;都谈婚色变&#xff0c;都更多的想要一个人生活&#xff0c;觉得生活没有压力&#xff0c;自己不饿&#xff0c;全部搞定&#xff0c;也有亲情和友情&#xff0c;也可以享受恋…