en başta .sks gelen dosyayı sahnesini yüklenmiş ve dediğin gibi orada bazı animasyonlar var. Daha sonra, (touchesBegan
içinde) bir boyut sağlayarak bir sahne oluşturuyorsunuz (sceneWithSize
statik yöntemini kullanarak). Böylece sahne arşivden yüklenmedi.
, sorunu çözmek sen
GameViewController
yılında, başlangıçta yaptığım gibi sahne yüklemek için.
DÜZENLEME:
iki .sks
dosyaları oluşturmak için gereken iki sahneler arasında geçiş. Bunları şu şekilde adlandırabilirsiniz: MenuScene ve GameScene (bunu varsayılan olarak zaten var). Bu dosyaları oluşturduğunuzda, bir uzantı (.sks
) değil, yalnızca dosya adı yazmanız gerektiğini unutmayın. Sonra ilgili .m
ve .h
dosyalarını oluşturmanız gerekir. Yani MenuScene.m
ve MenuScene.h
'u oluşturun. GameScene
.m
ve .h
dosyaları varsayılan olarak var. SKScene
'un bir alt sınıfı (mutlaka doğrudan bir alt sınıf değil) olmalıdır ().
Sonra görünümü denetleyicisi iç: in Daha sonra
- (void)viewDidLoad
{
[super viewDidLoad];
SKView * skView = (SKView *)self.view;
GameScene *scene = [GameScene nodeWithFileNamed:@"GameScene"];
scene.scaleMode = SKSceneScaleModeAspectFill;
scene.size = skView.bounds.size;
[skView presentScene:scene];
}
senin GameScene Diyelim ki MenuScene
geçiş istiyorsanız, böyle bir şey yapması gerektiğini touchesBegan
yöntemi: Benzer
MenuScene *nextScene = [MenuScene nodeWithFileNamed:@"MenuScene"];
SKTransition *transition = [SKTransition fadeWithDuration:3];
[self.view presentScene:nextScene transition:transition];
, MenuScene'in touchesBegan
'una geri dönmek için GameScene
'a geçiş yapın:
GameScene *nextScene = [GameScene nodeWithFileNamed:@"GameScene"];
SKTransition *transition = [SKTransition fadeWithDuration:3];
[self.view presentScene:nextScene transition:transition];
Elbette her geçişten önce sahnedeki ölçek modunu eski sahnenin ölçek moduna uyacak şekilde ayarlayabilirsiniz.
Kodunuzdan, aynı sahneye geçiş yapmaya çalışıyorsunuz gibi görünüyor: GameScene
->GameScene
. Bu kesinlikle mümkün, ama bunu istediğine emin misin?
Eğer öyleyse, sadece ben MenuScene en touchesBegan
yöntemi için sağladığınız kodu kullanabilirsiniz.
Aynı sahneye geçiş yapmak istediğinizden emin misiniz? Şu anda GameScene'den -> GameScene'den gidiyorsunuz. – Whirlwind
Hayır, sadece test içindi, farklı bir sahne için nasıl yapardınız :)? –
'dan önce denedim. Cevabı iptal et (bir düzenleme yaptım) ... – Whirlwind