有一段时间太长,下面没有读过版本。
所以我一直在做一个小游戏,其中玩家必须点击与网格右上角所需砖块颜色相匹配的砖块网格。在他们点击所需的颜色后,砖块爆炸,旁边的相同颜色的砖块爆炸,同时创建组合。这会在网格中留下漏洞,因此我必须以某种方式重置网格本身而不重置游戏状态本身。我现在有一些工作是这样的:
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;
}
所以,再次,我在创建时设置了一个块网格,即组块砖。我在右上角有一个精灵,是通缉兄弟。在游戏过程中发生的事情是,玩家点击与所需砖块相匹配的砖块,将其从网格中清除。当没有更多的wantBricks(一个组)时,它应该重置网格,并改变wantedBrik的颜色。我还在代码中的其他地方,如果大网格的EQUITYCHECK(基本对象被黑客入侵)的成员等于wantedBrik,则将其添加到wantedBricks(这就是为什么我不再检查它们的原因) )。那么,会发生什么?
好吧,如果wantedBrik的颜色没有变化,一切都很好,并且正常重置。 wantedBricks组精确计算实际匹配wantedBrik颜色的砖块。当它确实发生变化时,出于某种原因,游戏玩法是正常的。但是,wantBricks不仅认为仍旧需要旧颜色,而且还认为新颜色仍然需要。因此,当玩家点击新的所需颜色砖时,它们会爆炸,但因为wantedBrik认为旧的颜色仍然需要,它不会命中null并且网格不会重置。
我可以做些什么来确保在颜色变化后wantBricks正常运行?
TL; DR版本:我需要让Haxe数组忘记或丢失旧数字。我怎么能这样做?
答案 0 :(得分:2)
“Pirate Pig”样本可能对您有用。由于它是一款益智游戏,可能会遇到一些类似的问题。您可以使用openfl create
或nme create
找到它,具体取决于您当前使用的目标。
你可以像这样创建一个简单的数组:
var myArray = [];
您也可以输入数组,如下所示:
var numbers = new Array<Float>();
然后您可以使用push()
,concat()
和其他数组方法。