Reputation: 235
Basically I have four scenes and on viewcontroller, I want to detect in which scene am I because, I have background music in viewcontroller, and I want to pause music in some Scenes. I found how to detect scenes in viewController, but it was in swift, and I know only basics of objective c.
Edited
SKView *skView =(SKView *)self.view;
TitleScene *sceneTitle = [TitleScene sceneWithSize:self.view.bounds.size];
BonusScene *sceneBonus = [BonusScene sceneWithSize:self.view.bounds.size];
GameScene *sceneGame = [GameScene sceneWithSize:self.view.bounds.size];
DifficultScene *sceneDifficult = [DifficultScene sceneWithSize:self.view.bounds.size];
if(skView){
if(sceneTitle){
NSLog(@"Iam in sceneTitle");
}
if(sceneGame){
NSLog(@"Iam in sceneGame");
}
if(sceneDifficult){
NSLog(@"Iam in sceneDifficult");
}
if(sceneBonus){
NSLog(@"Iam in sceneBonus");
}
else{
NSLog(@"else");
}
}
now, when start app, it runs through every if statement once,even when Iam only in TitleScene. What did wrong?
Upvotes: 0
Views: 311
Reputation: 16837
Give each scene a name, then in your viewcontroller class, just do
SWIFT:
if let skView = view as? SKView, let scene = skView.scene
{
switch(scene.name)
{
case "name1":
default:()
}
}
else
{
//Something is wrong, we do not have an SKView or a SKScene
}
Objective C:
SKView *view = (SKView*)self.view ;
if(view)
{
SKScene *scene = view.scene;
if(scene)
{
NSString *name = scene.name;
//compare names here
}
}
Upvotes: 1