当前位置:首页 > 日记 > 正文

纯HTML5制作的一个猫源下载游戏

纯HTML5制作的一个猫源下载游戏
HTML5将猫网页游戏是一个游戏,是基于HTML5、jQuery、Typescript等。

首先给你一个演示和源代码下载,点击这里查看演示下载源码。

去年,微信朋友圈在猫的游戏,我想做一点。游戏是白鹭引擎开发的,因为白鹭是建立在记录语言,所以这里的游戏也开发了Typescript。

游戏规则:

点击屏幕上的灰色网格,慢慢地包围猫。如果猫到达游戏区域的边缘,游戏就失败了。

准备材料

搜索互联网,搜索周围紧张的猫游戏。打开一个并打开调试接口。从网络或资源中删除猫、灰色圆圈、橙色圆圈和其他图片的图片,并保存到本地区域。

应该指出的是,白鹭的新moviecilp架构设计和影片剪辑的标准数据格式不同于以前的。我还没能从网上找到。根据新的数据格式标准,修改后的MC的JSON文件如下所示:
{MC:{
保持:{
帧率:20,
标签:{ },
帧:{
{分辨率:stay0000
{分辨率:stay0001
{分辨率:stay0002
{分辨率:stay0003
{分辨率:stay0004
{分辨率:stay0005
{分辨率:stay0006
{分辨率:stay0007
{分辨率:stay0008
{分辨率:stay0009
{分辨率:stay0010
{分辨率:stay0011
{分辨率:stay0012
{分辨率:stay0013
{分辨率:stay0014
{分辨率:stay0015
}
} },
:{
stay0000 :{X):0、Y:0、W:61,H:93 },
stay0001 :{X):61、Y:0、W:61,H:93 },
stay0002 :{X):122、Y:0、W:61,H:93 },
stay0003 :{X):183、Y:0、W:61,H:93 },
stay0004 :{X):0、Y:93、W:61,H:93 },
stay0005 :{X):61、Y:93、W:61,H:93 },
stay0006 :{X):122、Y:93、W:61,H:93 },
stay0007 :{X):183、Y:93、W:61,H:93 },
stay0008 :{X):0、Y:186、W:61,H:93 },
stay0009 :{X):61、Y:186、W:61,H:93 },
stay0010 :{X):122、Y:186、W:61,H:93 },
stay0011 :{X):183、Y:186、W:61,H:93 },
stay0012 :{X):0、Y:279、W:61,H:93 },
stay0013 :{X):61、Y:279、W:61,H:93 },
stay0014 :{X):122、Y:279、W:61,H:93 },
stay0015 :{X):183、Y:279、W:61,H:93 }
} }
写代码

我在开发过程中遇到的两个问题的主要摘要。

问题一,猫是怎样逃跑的

在这个游戏中,每个圆圈可能有三个状态。

尚可,灰色圆圈表示法

有一道路障,行不通,橙色圆圈

被猫占据,一个灰色圆圈,和猫的动画叠加在上面。

每次你点击灰色圆圈,它就会变成一个橙色圆圈,街垒,猫会跟着点击的动作。

行走的方向

该游戏由9×9个圆,半径的圆线,甚至宽度,所以布局的结果,猫理论可以有6个方向(只步),分别,左,左,右,右,右,左,如圆圈的位置是街垒状态,相应的方向是不合格的。

如果六个方向中有五个是路障,当然,选择路线是很好的。剩下的是唯一的出路,但是很明显,情况不可能这么简单,我们遇到的更多。在六个方向的邻居,有一个国家的直接路障(自然不采取这一步)。这是可以接受的,但彼此之间的可及性是不同的。
例如,在上面的图片中,目前,猫的左方向可以通过三个步骤达到的边缘,和四个步骤,可以实现在顶部,右侧和底部,和左、右方向迈出一步,但道路障碍会遇到,和左下国家将采取三个步骤来满足路障。当然,我们应该在这个时候这六个方向的优先顺序。

优先

我以这种方式设定优先顺序:

道路交通方向>会出现路障方向,所以左、右、右、右、左>左

在道路交通的方向上,从边缘靠近更高的优先权,所以左右两侧的右下方>

在步骤号的方向上会有路障,可以采取更高的优先级,所以左下角>左上左右

比较这些约定的可访问性,其值是可访问性,且值越高,优先级越高。

道路的方向

可访问性= 1 / / / steptoedge;steptoedge表明几步之遥的边缘
将有一个路障的方向

Accessibility = (-1) /stepToBlock; //stepToBlock represents the distance from the roadblock

接下来,考虑分母是否为0。做这件事最好的方法是什么在第一种情况下,分母为0。这意味着猫已经在边缘,所以它不需要判断优先级。游戏失败了。在第二种情况下,分母为路障的0。这个方向不需要考虑,它的优先级是- 1。

这样,六个方向的可访问性值是:

左:1 3
左上角:- 1
右上角:1 4
权利:- 1
右下角:1 4
左下角:- 1 3
优先级应该是左>右>右>下到右>左>左>右。

为什么我们仍然处于左、右、右上、右两个组的顺序呢因为我们从左方向计算顺时针旋转。如果值相同,看看外观的顺序。
所以在这种情况下,猫会走一步。

问题二,你如何判断这只猫被包围了
当我在网上玩这个游戏时,我发现当一只猫被包围时,它会变成一个封闭的动作。我们如何告诉猫被包围和改变它的动画
被包围与被捕获不一样。它比被抓的状态早,当猫无路可走的时候,它会被抓住,游戏获胜。
我的想法是:

从猫的当前位置为六个方向可以通过邻居,然后从邻居,找到自己差强人意的邻居,始终低着头,在寻找的过程中,虽然没有判断被发现在当前周边地区对游戏的边缘,如果有,那么期待结束结果判断:这只猫不是包围。如果发现所有通行的邻居和他们没有在比赛区的边缘,结果,猫被包围。

接下来,这个过程是用代码实现的。
首先,我们需要准备一个方法来决定圆是否在圆的边缘。假设该方法的名称和参数如下所示。内部实现相对简单,所以不会在这里粘贴。
*
确定传入的圆是否在边界上。
* /
私人iscircleatedge(圆:圆):布尔{

}

找到一个方法让邻居在一个圆圈的方向上。
私人getcircleneighbor(圆:圆,方向:方向):圆{

}
最后,它是判断的核心方法。

*
你能在圆的位置找到通往路线边缘的路线吗
* /
私人canexitat(圆:圆):布尔{
无功ignorearr = {}; / /不必处理循环采集
无功todealwitharr = {圆}; / /判断循环采集的需要
当(真){
如果(todealwitharr。长度<1){
返回false;
其他{ }
无功_first = todealwitharr.shift();
IgnoreArr.push(_first);
如果(_first.getstatus()!= = circlestatus.blockedthis.iscircleatedge(_first)){
返回true;
其他{ }
对于(var i = direction.left;我< = direction.bottom_left;i++){
VaR NBR = this.getcircleneighbor(_first,我);
如果(!(ignorearr.indexof(NBR)> 1 | | todealwitharr.indexof(NBR)> 1))
如果(nbr.getstatus()!= = circlestatus。可用){
IgnoreArr.push(NBR);
其他{ }
ToDealWithArr.push(NBR);
}
}
}
}
}
}
在方法体的开始,两个阵列的制备,一个用于存储界集ignorearr不重新处理,和其他存储界todealwitharr需要进一步判断。每找到一个过得去的邻居,我们必须首先确定它是不是第一次(因为几圈可能有共同的邻居这么一圈,可能是因为它是一个圆的邻居发现多次),判断标准是它有没有出现在ignorearr或todealwitharr,如果没有这是第一次,如果就这样塞进路障,ignorearr,如果不是那么成路障,todealwitharr尾等待判决。

在每个周期的开始,我们将圈一圈对象从todealwitharr头,判断它是否是在边缘或不。如果是,则返回true以跳出圈外,那只猫是不是包围,它能通过一定的途径到达边缘。如果todealwitharr并不都是在判断的边缘,然后返回false,而猫包围。没有直接邻居和许多间接邻居在边缘。

相关文章

用PS合成创意unlimitless图像处理

用PS合成创意unlimitless图像处理

步骤,图像处理,创意,电脑软件,PS,两种曝光方法不难,关键是创意,就像下面的教程一样,作者完美地将一幅生动的画面融入角色的头部位置,感觉人物的思维变成了画面,朋友喜欢把它组合在一起。 两种曝光方法不难,关键是创意,就像下面的课程一样,作者完美…

在Javascript中的主叫方和被叫方的详细解

在Javascript中的主叫方和被叫方的详细解

解决方案,详细,电脑软件,Javascript,Javascript的最近的研究中,主叫方和被叫方的问题,网上很多百度。对同一小利益的内容的内容,整理和总结与大家分享。 调用方:返回对调用函数函数的函数的引用(使用:函数调用)。 描述:对于一个函数,调用者属性只在函数…

如何使烟花CS5三维网格线

如何使烟花CS5三维网格线

网格,烟花,电脑软件,如何使烟花CS5三维网格线使用烟花CS5软件,我们可以创建漂亮的3D网格线。三维网格线的生成主要是通过网格、直线和矩形工具的简单应用和工具的选择来完成的。 使用烟花的CS5软件,我们可以做出漂亮的3D网格线,使三维网格线,主…

PS创意猕猴桃忍者海报

PS创意猕猴桃忍者海报

猕猴桃,创意,忍者,海报,电脑软件,本教程是向朋友介绍PS,创意和合成猕猴桃忍者海报。这门课的海报很有创意,而且方法也不难。建议脚本,直觉,爱和朋友谁喜欢它可以一起学习教程。 这个PS创意合成切猕猴桃的水果忍者海报教程是我刚刚学习的综合教…

手机的QQ空间是什么QQ常见问题

手机的QQ空间是什么QQ常见问题

常见问题,空间,电脑软件,QQ,QQ手机软件版本空间是移动电话手机用户提供个性化的网络服务终端的腾讯公司,博客(blog)的功能,你可以在自己的手机QQ空间日志图片记录你的旅程,保存相册,展示自己通过各种方式,你还可以分享手机朋友的QQ空间更新内容,便…

PPT如何在封面上做PPT基本教程

PPT如何在封面上做PPT基本教程

教程,上做,封面,如何在,电脑软件,PPT是一个非常实用的办公软件,设计一个漂亮的文字文档封面,无论是报告还是手稿都是必不可少的,本文的重点不是设计一些高、华丽、新颖的封面,而是设计实用的、正式的、传递信息的文档封面。 1,建立一个新的Word…

Word2003文档自动保存如何设置Word

Word2003文档自动保存如何设置Word

文档,教程,自动保存,如何设置,电脑软件,每次我使用Word2003记录数据或使一个手稿,我有一个好的保存文件,一旦习惯了,然后继续工作。这样做的目的是为了减少文档的损失率,避免电脑或计算机的突然死亡造成的损失突然文件崩溃。我有这样的损失之前…

jQuery支持添加事件的日历效果代码

jQuery支持添加事件的日历效果代码

支持,事件,样式,日历,效果,支持添加事件jQuery日历是一个jQuery日历插件代码,可以实时添加到删除时间,感兴趣的朋友们正在学习学习。 性能图:下载源代码并查看执行的效果 提示:如果不能在浏览器中正常运行,可以尝试切换浏览模式。 jQuery支持…

人工混合工具的国产调色板简介

人工混合工具的国产调色板简介

调色板,工具,混合,简介,电脑软件,本教程是介绍一个朋友的ai混合工具,自制的彩板小教程,很不错,是一个很有技巧的教程,推荐给喜欢的朋友,可以跟大家一起学习教程。 本教程是一个熟练的知识共享。我的朋友们喜欢介绍使用AI的混合工具创建污渍的方…

ai绘制一个真正的手表具有强烈的质

ai绘制一个真正的手表具有强烈的质

意识,绘制,手表,质量,电脑软件,本教程是给朋友介绍的,用ai来画一个很强的真实手表感,画出来的手表很逼真。教程很强大。但是需要有一定AI基础的朋友来学习,对于新手学习有点难。推荐朋友,喜欢朋友一起学习。 本教程介绍给朋友使用AI绘制一个很…

PS图象处理软件酷的现代战争按钮制

PS图象处理软件酷的现代战争按钮制

图文教程,图象,处理软件,按钮,现代战争,本教程使用ps制作超酷的现代战争按钮按钮设计教程,经常出现在日常工作中,今天来分享一个现代战争按钮制作过程。 最后找到了一个功能强大的PS制作超酷的现代战争按钮教程,让我们在这里分享吧。 以下是…

PS结合AI质感的方形应用篮球图标画

PS结合AI质感的方形应用篮球图标画

图标,方形,质感,画家,篮球,本教程是一个以篮球偶像PS的方法,用ai鼠标画的纹理,渲染出来的图标是个性的,也是很有创意的,是不是很好的推荐教程,喜欢的朋友可以补习教程学习 今天给大家分享一个非常特别的课程,我相信大家在谈论篮球时,大家先想到球,…