【问题标题】:If statement to check boolean value of in "RectangleToRectangle" Javascript using the phaser 3 libraryIf 语句使用 Phaser 3 库检查 \"RectangleToRectangle\" Javascript 中的布尔值
【发布时间】:2023-01-25 04:35:32
【问题描述】:

好的,我正在使用 Phaser 3 库构建一个小游戏。在此游戏中,用户必须将游戏元素放置在屏幕上的特定位置。如果所有元素都在正确的位置,则应添加一个点。如果他们不是,游戏将重置为之前的状态。

我有底层代码:

首先获取对象的Bounds

var bounds_po_orderid = this.answer_element_po_orderid.getBounds();
var bounds_po_eventid = this.answer_element_po_eventid.getBounds();
var bounds_po_orderdate = this.answer_element_po_orderdate.getBounds();
...............

其次比较不同的边界是否相交:

var overl_answerzone_one_bounds_po_orderid  = Phaser.Geom.Intersects.RectangleToRectangle(bounds_po_orderid, bounds_answerzone_one);
var overl_answerzone_one_bounds_po_eventid  = Phaser.Geom.Intersects.RectangleToRectangle(bounds_po_eventid, bounds_answerzone_one);
var overl_answerzone_one_bounds_po_orderdate  = Phaser.Geom.Intersects.RectangleToRectangle(bounds_po_orderdate, bounds_answerzone_one);
var overl_answerzone_one_bounds_po_line_purchaseorderid = Phaser.Geom.Intersects.RectangleToRectangle(bounds_po_line_purchaseorderid, bounds_answerzone_one);

并检查按下按钮时的真/假值:

this.input.on("gameobjectdown", function (pointer, gameObject) 
    {
        if (gameObject.name == "check_answer_button") 
        {
            if (overl_answerzone_one_bounds_po_orderid ===  true && 
              overl_answerzone_one_bounds_po_eventid === false && 
              overl_answerzone_one_bounds_po_orderdate === false && 
              overl_answerzone_one_bounds_po_line_purchaseorderid === false && 
              overl_answerzone_one_bounds_po_line_orderlineid === false 
             ) 
            {
                this.count = 1
                eventsCenter.emit('update-count', this.count)
            }
            else
            {
                // reset all the controls
            }

上面的代码不起作用。出于某种原因,当第一个元素位于正确的位置时,其余元素的放置位置无关紧要,它会说可以触发 if 语句。我尝试用“==”替换“===”。没有结果。所以基本上我不知道我做错了什么。

【问题讨论】:

  • update 函数中,您在哪里检查交集? gameobjectdown 事件监听器在create 函数中设置在哪里?或者更好的是,您可以共享更多代码,精简到最基本的代码吗?

标签: javascript if-statement boolean phaser-framework


【解决方案1】:

假设这是所有相关代码,您需要检查其他元素是否也在正确的位置。

现在您只检查第一个元素是否在第一个答案区域中,并且没有其他元素存在。

如果您对其他元素有不同的答案区域,您需要检查它们是否在正确的答案区域中。

【讨论】:

    猜你喜欢
    • 2019-06-30
    • 1970-01-01
    • 2018-04-17
    • 2021-10-16
    • 1970-01-01
    • 2013-03-01
    • 2015-05-25
    • 2021-11-08
    相关资源
    最近更新 更多