Advertisement
Guest User

Untitled

a guest
Feb 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.18 KB | None | 0 0
  1. -(id) initWithId:(int)sceneId
  2. {
  3. CCLOG(@"scene With id");
  4. if ((self = [super init]))
  5. {
  6. //All common initialization happens here..
  7. switch (sceneId) {
  8. case 1:
  9. [self loadFirstLevelData];
  10. break;
  11. case 2:
  12. [self loadSecondLevelData];
  13. break;
  14. default:
  15. [self loadSecondLevelData];
  16. break;
  17. }
  18. //Other common stuff..
  19. [self setUpCounters];
  20. [self setUpWeaponsMenu];
  21. [self scheduleUpdate];
  22. [self schedule:@selector(timerUpdate:) interval:1];
  23. InputLayerButtons* inputLayer = [InputLayerButtons node];
  24. [self addChild:inputLayer z:1 tag:GameSceneLayerTagInput];
  25. }
  26.  
  27. E.g. FirstGameScene : GameScene
  28.  
  29. -(void) loadFirstLevelData{
  30. //HERE WILL LOAD ALL SPECIFIC ELEMENTS: ENEMIES, BONUSES etc..
  31.  
  32. //AS WELL AS THE MUSIC FOR THE LEVEL
  33. [[MusicLayer sharedMusicLayer] _loadMusic:@"1.mp3"];
  34. [[MusicLayer sharedMusicLayer] playBackgroundMusicFile: @"1.mp3"];
  35. }
  36.  
  37. -(void) cleanup
  38. {
  39. //Should I remove all child loaded in LoadLevelData??
  40. CCLOG(@"cleanup GameScene");
  41. [[MusicLayer sharedMusicLayer] stopAllMusic];
  42. //MusicLayer is not a child of GameScene but of AppDelegate - the idea is to keep loading and unloading music files - sometimes I need to keep playing the file between scenes and hence I used the singleton pattern for this as well..
  43. [super cleanup];
  44. }
  45.  
  46. #import "ShooterScene.h"
  47. #import "LevelData.h"
  48. #import "HudLayer.h"
  49.  
  50.  
  51. @interface ShooterScene (PrivateMethods)
  52. -(void) loadGameArtFile;
  53. @end
  54.  
  55. @implementation ShooterScene
  56.  
  57. + (id) sceneWithId:(int)sceneId
  58. {
  59. CCScene *scene = [CCScene node];
  60.  
  61. ShooterScene * shooterLayer = [ShooterScene node];
  62. [scene addChild:shooterLayer];
  63. [shooterLayer loadGameArtFile];
  64.  
  65. LevelData * levelData = [LevelData node];
  66. [shooterLayer addChild:levelData];
  67.  
  68. switch (sceneId) {
  69. case 1:
  70. [levelData loadLevelDataOne];
  71. break;
  72. case 2:
  73. [levelData loadLevelDataOne];
  74. break;
  75. default:
  76. break;
  77. }
  78.  
  79. HudLayer * hud = [HudLayer node];
  80. [hud setUpPauseMenu];
  81. [shooterLayer addChild:hud];
  82.  
  83. return scene;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement