public Bubble(Model model, Game game, Camera camera, OctTree octTree, Vector3 startPosition, Vector3 startDirection, Vector3 startUp, BasicCube[] worldMap, ScreenManager screenManager) : base(model, game) { this.octTree = octTree; // shadow = game.Content.Load<Effect>(@"Shader/Shadow"); movementHandler = new MovementAndInputHandler(game, this); collisionHandler = new CollisionHandler(game, this, screenManager, worldMap); effect = ((Spectrum)game).effect; texture = screenManager.texManager.getBubbleTexture(); this.camera = camera; this.currentPosition = startPosition; this.game = game; this.bubble = model; this.startPosition = startPosition; this.currentPosition = startPosition; movementHandler.setStartValues(startPosition, Vector3.Backward, Vector3.Up, Quaternion.Identity, SpectrumEnums.Orientation.posY); this.soundManager = ((Spectrum)game).soundManager; this.screenManager = screenManager; this.screenManager.setPlayer(this); }
public void setOctTree(OctTree octTree) { this.octTree = octTree; }
public void loadLevel(SpectrumEnums.Levels level) { currentLevel = level; Spectrum.lastPlayedLevel = level; models.Add(new SkySphere(skySphereModel, game, ((Spectrum)Game).camera, this)); ((Spectrum)game).getCurrentActFromCurrentLevel(); levelCreator.loadLevel(currentLevel); mapResolution = levelCreator.getCurrentMapResolution(); ((Spectrum)game).getCurrentActFromCurrentLevel(); ((Spectrum)game).soundManager.playMusic(); Vector3 startPosition = levelCreator.getStartPosition(); Vector3 startDirection = Vector3.Zero; Vector3 startUp = Vector3.Zero; enemies = levelCreator.getEnemies(); countLevelInk(); Vector3 dim = levelCreator.getCurrentMapResolution(); OctTree octree = new OctTree(-2, -2, -2, (dim.Z * 2) + 2, (dim.Y * 2) + 2, (dim.X * 2) + 2); foreach(BasicCube cube in worldMap) { octree.Insert(cube); } foreach (Googoo enemy in enemies) { enemy.setAStar(worldMap, mapResolution); enemy.setOctTree(octree); enemy.InitializePathfinding(); } player = new Bubble(bubbleModel, game, ((Spectrum)Game).camera, octree, startPosition, startDirection, startUp, worldMap, screenManager); player.setLives(levelCreator.getLivesInLevel()); models.Add(player); }