个人理财 如何添加碰撞到您的HTML5游戏 - 傻瓜

如何添加碰撞到您的HTML5游戏 - 傻瓜

目录:

视频: Unity游戏制作教学#4创建第一个游戏场景【Unity游戏场景制作教学】 2024

视频: Unity游戏制作教学#4创建第一个游戏场景【Unity游戏场景制作教学】 2024
Anonim

当HTML5视频游戏中最有趣的事情发生时,精灵conk和相互碰撞。游戏引擎通常有一些工具来测试两个精灵是否重叠。这被称为 冲突检测 ,可以通过多种方式完成。本示例使用标准的 边界矩形 方案。这不是完美的,但它很容易实现,并且是常用的。

<! --1 - >

如何在游戏中设置边界矩形冲突

看看colTest。 HTML,你会看到一个简单的例子。在colTest中。 html例子中,用户用鼠标移动小动物,当小动物触摸屏幕中间的盒子时,你会得到一个消息。

COLTEST。 html

var game; var box;无情的小动物var输出;函数init(){game = new Scene();游戏。 hideCursor(); box = new Sprite(game,“simpleBox。png”,50,50);小动物=新的雪碧(游戏,“小动物”,50,50);输出=文档。的getElementById( “输出”); //给框固定位置框。 setPosition(200,150);框。 (0)setSpeed; //由鼠标小动物控制的小动物setPosition(100,100);小动物。 (0)setSpeed;小动物。 followMouse = function(){this。 setX(document。mouseX);这个。 setY(document。mouseY);} //结束followMouse游戏。 start();} //结束init函数update(){游戏。明确();小动物。 followMouse(); 盒。更新();小动物。 update();} //结束更新; 函数checkCollisions(){ if(box。collidesWith(critter)){ 输出。 innerHTML =“碰撞”; }其他{ 输出。 innerHTML =“无碰撞”; } //结束,如果 } //结束checkCollisions 空 这段代码中发生了许多有趣的事情:

<! - 2 - >

隐藏正常的鼠标光标。
  1. 当你要有一些其他的物体跟着鼠标,你通常想要隐藏正常的箭头光标。在simpleGame中,使用游戏。 hideCursor()方法隐藏游戏画面内的鼠标光标。

    创建多个精灵。

  2. 需要两个探戈,或相撞。在这个例子中,盒子将保持静止,并且跟随鼠标。

    给这个小动物一个followMouse()方法。
  3. 在这个例子中,你有小动物跟随鼠标。首先创建一个followMouse()方法。

    确定鼠标的位置。

  4. 鼠标位置由文档确定(在simpleGame.js中)。 mouseX和文档。 mouseY属性。

    将鼠标位置复制到小动物位置。

  5. 使用鼠标的x位置设置小动物的x位置,并用y重复。

    每一帧调用小怪物的followMouse()方法。与往常一样,update()函数是您应该将代码重复发生的地方。

  6. 如果玩弄colTest。 html页面,你可能会注意到碰撞不是确切的。甚至当小动物没有碰到盒子时,也可以有一个碰撞记录器。这很重要,因为simpleGame使用了一个名为

    边界框碰撞

的方案。 这意味着你并没有真正检查图像是否碰撞,而是图像周围的矩形是否碰撞。在这个例子中,这个差别很小,但是有时你会发现这个机制存在很大的错误,特别是对于那些长而薄的元素。当精灵旋转时,边界矩形的大小可以改变。 游戏中基于距离的碰撞

可以使用称为

边界圆

碰撞的替代形式的碰撞检测。有了这个机制,你只需计算两个精灵的中心之间的距离,如果这个值小于某个阈值,就认为是碰撞。这种方法有两个好处: 碰撞距离是恒定的。 即使图像更改大小,图像旋转时图像中心之间的距离也不会改变。碰撞阈值可以变化。

  • 你可以设定任何你想要的灵敏度。设置一个较大的碰撞半径以实现轻松碰撞,一个较小的碰撞半径,当您想要只在精灵非常接近时触发碰撞。 simpleGame库的Sprite对象有一个distanceTo()方法,用于计算从一个精灵到另一个精灵的距离。你可以在远处看到这个代码的例子。 html例子:

  • 距离。 html var game; var box;无情的小动物var输出;函数init(){game = new Scene();游戏。 hideCursor(); box = new Sprite(game,“simpleBox。png”,50,50);小动物=新的雪碧(游戏,“小动物”,50,50);输出=文档。的getElementById( “输出”); //给框固定位置框。 setPosition(200,150);框。 (0)setSpeed;小动物。 setPosition(100,100);小动物。 (0)setSpeed; //由鼠标小动物控制的小动物followMouse = function(){this。 setX(document。mouseX);这个。 setY(document。mouseY);} //结束followMouse游戏。 start();} //结束init函数update(){游戏。明确();小动物。 followMouse(); checkDistance();

盒。更新();小动物。 update();} //结束更新;

function checkDistance(){ dist = box。 distanceTo(小动物);如果(dist <50){ 输出。 innerHTML =“碰撞:”+ dist; }其他{ 输出。 innerHTML =“不碰撞:”+ dist; } //结束,如果 } //结束checkDistance 空 基于距离的碰撞方法与边界矩形版本非常相似。创建一个checkDistance()函数,它的作用就像旧的checkCollisions()一样。以下是在checkDistance中发生的步骤: 查找两个精灵之间的距离。 使用精灵的distanceTo()方法来确定两个精灵之间的距离。 如果距离小于某个阈值,则将其视为碰撞。

通常,您应该使用较小的精灵的宽度作为碰撞阈值的起点,但是您可以调整它以使碰撞发生或多或少的可能性。

  1. 报告碰撞状态。在这个例子中,简单地打印“碰撞”或“不碰撞”,但是在真实游戏中,碰撞触发其他动作:增加分数,减少生命数量,改变碰撞元素的速度或位置, 管他呢。 (希望它涉及爆炸。)

如何添加碰撞到您的HTML5游戏 - 傻瓜

编辑的选择

古饮食计划:吃什么早餐 - 假人

古饮食计划:吃什么早餐 - 假人

一个发展的挑战早餐的一个古人(洞穴人)饮食膳食计划重新定义了哪些食物适合早餐的想法。谷类或鸡蛋和面包的非古式“传统”早餐不会削减它。不要试图将你的旧餐理念改造成新的古代格式,你可以尝试吃任何东西...

如何构建IOS应用程序

如何构建IOS应用程序

在Xcode中构建iOS应用程序意味着编译所有源代码代码文件在项目中。在构建和运行从模板创建的项目时,看到您所得到的结果真是令人兴奋。构建和运行应用程序相对简单;只需按照以下步骤操作:在工具栏中,选择一个方案...

编辑的选择

如何计算企业的盈亏平衡点 - 傻瓜

如何计算企业的盈亏平衡点 - 傻瓜

以下是您想知道的关于您拥有的业务或操作:您想知道公司必须达到的销售收入才能达到收支平衡。换句话说,你想知道产生零利润的销售收入数量,而不是零损失。幸运的是,无论是这种计算,还是...

如何使用QuickBooks 2014评估财务费用 - 傻瓜

如何使用QuickBooks 2014评估财务费用 - 傻瓜

您可以告诉QuickBooks在逾期时评估财务费用客户发票。为此,您首先设置财务费用计算规则。完成此操作后,您可以通过选择QuickBooks命令轻松评估逾期金额的财务费用。设置财务费用规则要设置财务费用规则,请选择...

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

如何计算QuickBook 2012中的盈亏平衡点 - 傻瓜

QuickBooks 2012允许您计算产品盈亏平衡点快速简单。盈亏平衡点显示产生零利润和零损失的销售收入。记得进行利润 - 成本 - 成本分析的公式吗?它是这样的:利润=(销售收入x毛利率百分比) - 固定成本而不是计算利润的基础上...

编辑的选择

如何更改您的计算机的用户帐户图片 - 傻瓜

如何更改您的计算机的用户帐户图片 - 傻瓜

不仅每个使用您的计算机的人都有他自己的用户帐户,但每个用户都可以添加一个图片到用户帐户。所以,如果你不喜欢与你的用户帐户相关的图片,你运气好 - 你可以改变它。无论你选择什么样的图片,它都会出现在欢迎...

:如何更改您的计算机的桌面背景 - 傻瓜

:如何更改您的计算机的桌面背景 - 傻瓜

Windows桌面为您提供灵活性使其个性化。您可以在桌面上显示您最喜欢的孙子的照片,或使用您选择的颜色作为背景。改变电脑桌面背景的可能性几乎是无止境的。您甚至可以应用桌面主题,它应用了多种颜色和...

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

为老年人:如何选择一个桌面主题为您的计算机 - 虚拟

窗口内置桌面主题,您可以应用快速更改您的计算机的桌面的外观。这些桌面主题保存了包括菜单外观,背景颜色或图案,屏幕保护程序,甚至鼠标光标和系统声音的元素集。主题保存包含菜单外观,背景颜色或图案的元素集合...