-1

下面的版本太长了,没看过。

所以我一直在制作一个小游戏,玩家必须点击屏幕右上角与所需砖块颜色相匹配的砖块网格。在他们点击所需的颜色后,砖块会爆炸,旁边的相同颜色的砖块也会爆炸,从而产生连击。这会在网格中留下漏洞,所以我必须以某种方式重置网格本身而不重置游戏状态本身。我现在有一些工作是这样的:

private function ResetNow():Void
{                  

    if (Restter == 1) Restter = 0;

    //if this block is up here, same results
    /*
    wantedBricks.kill();
    wantedBrik._changeColor = FlxMath.rand(0, 2);
    bricks.autoReviveMembers = true;
    bricks.revive();           
    */ 
    Restter = 0;

    //Removes stray detectors so the neverending combo bug won't occur
    for (stray in dets.members) stray.kill();      

    if (Restter == 0)
    {  

        wantedBricks.kill();
        wantedBrik._changeColor = FlxMath.rand(0, 2);
        bricks.autoReviveMembers = true;
        bricks.revive();           

        wantedBricks.autoReviveMembers = true;
        wantedBricks.revive();         

        for (zgem in bricks.members) zgem.EQUITYCHECK = FlxMath.rand(0, 2);


    }      

    //add(bricks);     

    Restter = 1;

}

所以,再一次,我在创建时设置了一个网格,即组砖。我在右上角有一个精灵,它是wantedBrik。在游戏过程中发生的事情是,玩家点击与想要的砖块匹配的砖块,将它们从网格中清除。当没有更多wantedBrick(一组)时,应该重置网格,并更改wantedBrik 的颜色。我在代码中的其他地方也有它,如果大网格的 EQUITYCHECK(基本对象的价值被破坏)的成员等于 WantBrik,将其添加到 WantBricks(这就是我不再检查它们的原因)。那么,会发生什么?

好吧,如果wantedBrik 的颜色没有改变,那么一切都很好,并且会像往常一样重置。WantedBricks 组准确地计算了与 WantBrik 颜色实际匹配的砖块。当它确实发生变化时,出于某种原因,游戏玩法是正常的。但是,wantedBricks 不仅认为还需要旧颜色,而且还认为还需要新颜色。所以当玩家点击新需要的颜色砖时,它们会爆炸,但是因为 WantedBrik 认为旧颜色仍然需要,所以它不会命中 null 并且网格不会重置。

我可以做些什么来确保wantedBricks 在颜色变化后表现正确?

TL;DR 版本:我需要一个 Haxe 数组来忘记或丢失旧数字。我怎样才能做到这一点?

4

1 回答 1

2

“海盗猪”样本可能对您有用。由于它是一款益智游戏,因此可能会在那里解决一些类似的问题。您可以使用openfl createnme create根据您当前使用的方式找到它。

您可以像这样创建一个简单的数组:

var myArray = [];

您还可以键入数组,如下所示:

var numbers = new Array<Float>();

然后你可以使用push(),concat()和其他数组方法。

于 2013-06-14T15:25:12.373 回答