2014-05-12 25 views
1

我正在嘗試創建一個replay按鈕,以便用戶可以簡單地重播,而不是返回到我創建的遊戲中的關卡選擇菜單。該遊戲是iOS 7sprite-kit遊戲。我遇到的問題是重置整數。由於某些原因,它保持在0.所有剩餘的場景內容都會在initWithSize方法中自行取代,但即使我在initWithSize方法中聲明瞭整數值5,它也不會重置該值,而是保持爲0。如何創建重播按鈕並重置內容?

gameOverNode的出現在我的比賽結束後,有一個按鈕,上面寫着「Replay」,我已經設置了裝載現場,這是代碼:

if ([node.name isEqualToString:@"reTry"]) { 
    level2 *repeat = [[level2 alloc] initWithSize:self.size]; 
    [self.view presentScene:repeat transition:[SKTransition fadeWithColor:[SKColor whiteColor] duration:0.5]]; 
} 

正如所說,一切在現場重置(即位置SKSpriteNodes等)中,除了整數的值,其保持在4.

這是爲什麼,我該如何重置整數的值?

有沒有辦法在重新加載之前清除場景?

這是initWithSize方法:

-(id)initWithSize:(CGSize)size { 
    if (self = [super initWithSize:size]) { 

     movesRemaining = 4; 
+0

什麼整型? self.size?顯示代碼,它應該重置爲5 – connor

+0

請參閱上面的代碼@connor「movesRemaining」 – user3576196

+0

當遊戲第一次啓動時,您是否使用相同的方法?它的工作呢? – connor

回答

1

什麼你都宣稱是一個類的對象。您需要將其聲明爲實例變量。

而不是

#import <SKScene/SKScene.h> 
. 
. 

int movesRemaining; 

你需要這樣聲明:

@interface level2 : SKScene 
{ 
    int movesRemaining; 
} 
+0

哇感謝工作像一個魅力:)欣賞它。 @akashg – user3576196