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…

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

4t硬盘实际容量是多少_SMR硬盘到底能用不?点进来看看避免踩雷

***身处信息时代&#xff0c;随着网络带宽的增加&#xff0c;游戏容量越做越大&#xff0c;网上的高清片源也动辄几十G&#xff0c;再加上各种零零碎碎的学习资料&#xff0c;这时候电脑标配的1T、2T机械硬盘的容量就有点捉襟见肘了。越来越来多的个人用户开始组起了家庭NAS(网…

计算机进去bios方式,各种电脑进入BIOS方法汇总|进入bios的方法大全

【各种电脑进入Bios设置的方法】如今我们已经很少上电脑店去让别人给我升级或者安装系统&#xff0c;我们只要借助网络上的教程就可以完成系统的更新了。但是通过光盘&#xff0c;u盘等手段安装系统&#xff0c;都需要进行BIOS设置&#xff0c;主要是选择开机启动项。而且各种电…

xp系统怎么关闭wmi服务器,WinXP系统如何启用WMI服务,小编教你WinXP系统如何启用WMI服务...

WMI服务是干什么用的&#xff1f;网友发问了。WMI用来生成组织和管理系统信息的工具&#xff0c;使系统管理人员能够更密切的监视系统活动。基于WMI的管理系统的使用带来了更可靠的计算环境和更高的系统可靠性。那么WinXP系统如何启用WMI服务&#xff1f;下面&#xff0c;小编给…

demo_ajax_json.js,ajax小demo-----ajax中json的使用

使用简单例子&#xff0c;表单的的输入&#xff0c;将表单输入以JSON的形式传入&#xff0c;并后台返回JSON格式&#xff0c;使用js函数处理&#xff0c;进行显示&#xff0c;进一步熟悉了ajax的用法&#xff0c;以及JSON的的使用。例子如下&#xff1a;html部分&#xff1a;用…

摆胯教学分解_聚十年求索,筑理想课堂——厦门市梧侣学校十周年庆区级教学小学数学(数与形)...

寒来暑往&#xff0c;秋收冬藏。养精蓄锐是为了走更远的路&#xff0c;厚积薄发是为了更好地前行。梧侣十年&#xff0c;不忘初心&#xff0c;砥砺奋进。梧侣十年&#xff0c;不忘初心&#xff0c;昂首阔步。十年来&#xff0c;学校始终秉承朱永新的新教育理念&#xff0c;致力…

雨课堂显示服务器无法连接,雨课堂用的什么云服务器

雨课堂用的什么云服务器 内容精选换一换华为云帮助中心&#xff0c;为用户提供产品简介、价格说明、购买指南、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档&#xff0c;帮助您快速上手使用华为云服务。应用创建成功后&#xff0c;您可以在“应用管理”页面查看…

gogs可以自动化部署吗_三千、五千平方的仓库房可以用自动化立体仓库吗?

制造企业亦或物流仓储企业&#xff0c;都有自己的仓库&#xff0c;这些库房有大有小&#xff0c;其中的设备有的先进有的一般。现在很多企业似乎都青睐于自动化立体仓库这样的高端存储设备&#xff0c;但有些仓库不是特别的大&#xff0c;比如3000、5000平方的&#xff0c;这样…

施乐带服务器彩机型号,富士施乐推出智能生产型彩色数码印刷系统

(2013年8月28日&#xff0c;北京)今天&#xff0c;富士施乐宣布推出全新智能生产型彩色数码印刷系统Color J75 Press。新品具有彩色打印、复印、扫描三大功能&#xff0c;不仅拥有目前最高的彩色输出分辨率&#xff0c;还采用了富士施乐独有的专业色彩管理工具——自动色彩质量…

430单片机实现三人投票表决器_长虹KFR-28变频空调器室内机控制板电路原理分析...

长虹KFR -28GW/BP (BMF)室内机电气接线图如图所示。1.开关电源电路电源电路为空调器室内机电气控制系统和单片机控制电路提供所需的工作电源。在本电路中&#xff0c;12V主要为继电器、驱动集成电路、蜂鸣器等的工作电源&#xff1b;5V主要为单片机及单片机外围电路的工作电源。…

syslog 向内存中缓存_动画:深入浅出从根上理解 HTTP 缓存机制及原理!

HTTP 缓存&#xff0c;对于前端的性能优化方面来讲&#xff0c;是非常关键的&#xff0c;从缓存中读取数据和直接向服务器请求数据&#xff0c;完全就是一个在天上&#xff0c;一个在地下。我们最熟悉的是 HTTP 服务器响应返回状态码 304&#xff0c;304 代表表示告诉浏览器&am…

c++结构体嵌套结构体_Go学习每日一问(13)-结构体嵌套

每次学习并整理一个Golang的知识点&#xff0c;每天进步一点点。今天学习一个go结构体嵌套的知识点。日省吾身1.下面这段代码的输出结果&#xff1f;func main() { a : -7 b : 7 fmt.Printf("%d %d", a, b)}A. -7 7B. 7 7C. 7 7D. 7 -72.判断下面代码是否…