Loads and inits a new level
Source
void load(Level level) { if (isRunning) return; // Set State enemyCount = 0; world = new World(level.size, this); // Character player = world.spawnActor(new Character(), new Vector2(level.size.x / 2, 150.0)); // Walls world.spawnActor(new Box(), new Vector2(level.size.x / 2, 0.0), scale: new Vector2(wallWidth + level.size.x, wallWidth)); world.spawnActor(new Box(), new Vector2(level.size.x / 2, level.size.y), scale: new Vector2(wallWidth + level.size.x, wallWidth)); world.spawnActor(new Box(), new Vector2(0.0, level.size.y / 2), scale: new Vector2(wallWidth, level.size.y + wallWidth)); world.spawnActor(new Box(), new Vector2(level.size.x, level.size.y / 2), scale: new Vector2(wallWidth, level.size.y + wallWidth)); // Trees world.spawnActor(new Shrub(), new Vector2(-200.0, -200.0), scale: new Vector2(200.0, 350.0), rotation: new Vector2(0.0, 1.0)); world.spawnActor(new Shrub(), new Vector2(level.size.x + 200.0, -200.0), scale: new Vector2(200.0, 350.0), rotation: new Vector2(0.0, 1.0)); // Spawn Actors for (final data in level.actors) { Actor actor = world.spawnActor( data.factory(), data.location, scale: data.scale, rotation: data.rotation ); if (actor is Enemy) enemyCount++; } // Door world.spawnActor(new Door(), new Vector2(level.size.x / 2, 0.0)); // Update State world.onActorRemoved.listen((a) { if (--enemyCount == 0) gameOverEvent.add(true); }); }