将共享对象数据与数字进行比较时出错

时间:2016-01-26 08:06:13

标签: actionscript-3 if-statement flash-cs6 shared-objects

嘿大家现在已经在这里待了几个小时了,似乎无法弄明白。

所以我有一个共享对象数据变量sharedObjectStarsPoints,用于跟踪玩家在游戏中解锁的星星数量。

所以我想要完成的是说玩家已解锁2星并再次重新开始等级,但这次玩家只获得1星我希望共享对象忽略玩家只获得1星并保持最高此示例中数据库中的星号数量为2.玩家总共可以获得3星。

因此,当玩家失败时,将他们带到屏幕上的游戏,这是我删除所有ENTER FRAME听众和其他所有内容的地方。这也是我设置玩家解锁了多少星的地方,并尝试使用上面的逻辑来比较这两个数字:

所以在同一个函数中,这是变量starsCollected递增的时候。

            if (bJanObjecMult)
            {
                objectiveScreen.janStars.bonus.gotoAndPlay(2);
                //add 1 to star collector number
                starsCollected += 1;
                //Add one to levels screen stars completed
                updateStarsCollected();
            }else
            {
                objectiveScreen.janStars.bonus.gotoAndStop(1);
            }
            if (bJanObjectPoints)
            {
                objectiveScreen.janStars.points.gotoAndPlay(2);
                //add 1 to star collector number
                starsCollected += 1;
                //Add one to levels screen stars completed
                updateStarsCollected();
            }

然后在这些if语句下面我尝试使用这样的逻辑:

if (sharedObjectStarsPoints.data.janStars > starsCollected)
        {
            trace("DONT SAVE DATA");
        }else
        {
            sharedObjectStarsPoints.data.janStars = starsCollected; 
            allSharedObjectStarsData();
            sharedObjectStarsPoints.flush();
            trace("SAVE DATA");
        }

所以你可以看到我基本上说我的共享对象数据是否大于星星收集的数据,然后不保存任何东西,因为说共享数据有2而其他数据只有1然后我不想要任何东西更换。但如果情况并非如此,并且它少于星星收集数据,则保存新信息并进行更新。

另外要注意,当玩家重新开始游戏时,starsCollected数字var将重新设置为0;

请任何帮助将不胜感激!

0 个答案:

没有答案