个人理财 如何检查HTML5游戏中的边界

如何检查HTML5游戏中的边界

视频: Week 5 2025

视频: Week 5 2025
Anonim

一旦精灵开始移动,总是有可能离开屏幕边界。通常情况下,HTML5游戏开发者通过五种方式之一进行回应:换行,反弹,停止,死亡或继续。 simpleGame库有一个边界检查例程,允许您指定要使用哪些默认行为。精灵的boundAction属性指示应该使用哪个动作。您可以使用边界检查器执行以下操作:

<! - 1 - >
  1. 确定边界。

    边框由画布宽度决定。

  2. 检查用户是否在边界之外。然后,另一系列变量被创建,包含布尔值,指示精灵是否关闭其中一个边界:offRight,offLeft,offTop和offBottom。使用基本的if语句来确定精灵是否以这些方式之一离开屏幕。

    确定边界动作。
  3. 使用简单的if语句来确定当前为精灵设置的边界动作。

    如果boundAction是WRAP:

  4. 将x或y变量更改为反方,但保留dx和dy值。

    如果boundAction是BOUNCE:

  5. 如果精灵从顶部或底部反弹,则反转dy;如果精灵从左或右反弹,则反转dx。没有必要直接更改x或y。

    <!如果

    boundAction
  6. STOP: 不管退出哪个边界,只需将速度设置为零即可。 如果

    boundAction

  7. DIE: 将速度设置为零并调用精灵的hide()方法。这将导致精灵消失,在碰撞计算中不再考虑。 任何其他的boundAction被认为是CONTINUE。

    这里没有必要的动作,因为精灵将继续移动,即使它不可见。如果这是所需的效果,你应该以某种方式向用户指出精灵的位置,或者为精灵返回提供一些方法。

  8. 以下是碰撞检查程序代码的一部分:

    offRight = false; offLeft = false; offTop = false; offBottom = false; if(this。x> rightBorder){offRight = true;} if(this。x bottomBorder){offBottom = true;} if(this。y <0){offTop = true;} if(this。boundAction == WRAP) {if(offRight){this。 x = leftBorder;} //结束if if(offBottom){this。 y = topBorder;} //结束if(offLeft){this。 x = rightBorder;} //结束if(offTop){this。 y = bottomBorder;}}否则if(this。boundAction == BOUNCE){if(offTop || offBottom){this。dy * = -1;这个。 calcSpeedAngle();这个。 imgAngle =这个。 moveAngle;} if(offLeft || offRight){this。 dx * = -1;这个。 calcSpeedAngle();这个。 imgAngle =这个。 moveAngle;}} else if(this。boundAction == STOP){if(offLeft || offRight || offTop || offBottom){this。 setSpeed(0);}} else if(this。boundAction == DIE){if(offLeft || offRight || offTop || offBottom){this。隐藏();这个。 setSpeed(0);}} else {//保持继续}} //结束checkbounds

如果你想在simpleGame中改变一个精灵的边界动作,你可以使用setBoundAction()方法来实现。

请注意,有些情况可能需要不同的行为。例如,您可能想要围绕两侧,但停在顶部或底部。如果您需要更具体的行为,只需为您的精灵构建一个新的checkBounds()方法。但是,你需要检查所有的边界,因为你的新的checkBounds()将会完全覆盖simpleGame中的内建。
如何检查HTML5游戏中的边界

编辑的选择

Sql数据类型 - 虚拟

Sql数据类型 - 虚拟

这里是ISO / IEC标准SQL识别的所有形式数据类型的列表。除此之外,您可以定义从这些派生的其他数据类型。精确数字:INTEGER SMALLINT BIGINT NUMERIC DECIMAL近似数字:REAL DOUBLE PRECISION FLOAT二进制字符串:BINARY BINARY VARYING BINARY LARGE OBJECT布尔值:BOOLEAN字符串:CHARACTER ...

SQL WHERE子句谓词 - 虚拟子

SQL WHERE子句谓词 - 虚拟子

谓词归结为TRUE或FALSE结果。您可以通过应用WHERE子句(其谓词排除不需要的行)来从SQL查询的结果中筛选出不需要的行。比较谓词=等于 不等于 小于等于>大于> =大于...

编辑的选择

如何在QuickBooks 2014电子邮件发票 - 傻瓜

如何在QuickBooks 2014电子邮件发票 - 傻瓜

您可以通过电子邮件发票QuickBooks的。要做到这一点,请点击电子邮件按钮,它出现在主选项卡的创建发票屏幕的顶部。当QuickBooks显示“发送发票”对话框时,指定要使用哪个电子邮件帐户(网络邮件,电子邮件应用程序(例如Microsoft Outlook)或...

如何在QuickBooks 2010中输入帐单 - 傻瓜

如何在QuickBooks 2010中输入帐单 - 傻瓜

如果您在设置过程中告诉QuickBooks您要跟踪未付帐单(也称为应付帐款),您可以在收到帐单时输入帐单。当你这样做时,QuickBooks会跟踪未付帐单。如果您以前没有在QuickBooks中记录过物品收据如果您输入的钞票是...

如何在QuickBooks Online中输入帐单 - 虚拟币

如何在QuickBooks Online中输入帐单 - 虚拟币

输入您从供应商处收到的帐单QuickBook Online的帐单交易。 QBO跟踪账单作为应付款项,这是您的业务的责任 - 您欠的钱,但尚未支付。大多数进行账单交易的公司都是这样做的,因为他们收到了相当数量的账单,并且...

编辑的选择

虚拟主机常见的电子邮件问题 - 虚拟人物

虚拟主机常见的电子邮件问题 - 虚拟人物

最大最简单的方法发现您的网站托管电子邮件存在问题时,您尝试拿起您的新邮件,发现您长时间没有收到任何邮件。这不是一个科学的方法,但不接收电子邮件,或从其他人那里得到的报告...

如何备份您的虚拟主机数据库 - 虚拟机

如何备份您的虚拟主机数据库 - 虚拟机

使数据库备份成为优先事项。在发生损坏或丢失的情况下,可以轻松地重新创建网站设计,但是数据库中的数据更难重建,除非您有一个好的备份。您的主机可能已经将您的数据库备份为其数据库的一部分...

为您的网站和店面找到一个主机 - 傻瓜

为您的网站和店面找到一个主机 - 傻瓜

计划阶段,寻找您的网站的主机,您的博客,以及您设置销售您的产品的任何店面是一个基本要求。您可以设置多种托管服务的商店,从拍卖网站到网上商城到您自己的互联网服务...