Beispiel #1
0
 public static void LoadLevelData(string levelFile, GameLogic logic, SpriteRenderer renderer)
 {
     levelFile = Path.GetFullPath("level.data");
     if (!File.Exists(levelFile))
     {
         //find level editor
         var searchPath = Path.GetFullPath(Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), "..\\..\\.."));
         Console.WriteLine(searchPath);
         var editor = Directory.GetFiles(searchPath, "LevelEditor.exe", SearchOption.AllDirectories).FirstOrDefault();
         //create level data
         Process.Start(editor, $"autosave {levelFile}").WaitForExit();
     }
     using (var level = Serialization.FromBinFile(levelFile) as Level)
     {
         //set level bounds
         logic.Bounds = level.Bounds;
         //load colliders
         foreach (var collider in level.colliders)
         {
             logic.AddCollider(collider.Name, collider.Bounds);
         }
         //load sprites
         foreach (var sprite in level.Sprites)
         {
             renderer.AddSprite(sprite.Name, sprite.Layer, sprite.RenderBounds, sprite.NamedStream);
         }
     }
 }
Beispiel #2
0
 private static void LoadLevelData(string levelFile, GameLogic logic, SpriteRenderer renderer)
 {
     using (var level = Serialization.FromBinFile(levelFile) as Level)
     {
         //set level bounds
         logic.Bounds = level.Bounds;
         //load colliders
         foreach (var collider in level.colliders)
         {
             logic.AddCollider(collider.Name, collider.Bounds);
         }
         //load sprites
         foreach (var sprite in level.Sprites)
         {
             renderer.AddSprite(sprite.Name, sprite.Layer, sprite.RenderBounds, sprite.NamedStream);
         }
     }
 }
Beispiel #3
0
 private static void LoadLevelData(byte[] levelData, GameLogic logic, Renderer renderer)
 {
     using (var stream = new MemoryStream(levelData))
     {
         Level level = Serialize.ObjFromBinStream(stream) as Level;
         //set level bounds
         logic.Bounds = level.Bounds;
         //load colliders
         foreach (var collider in level.colliders)
         {
             logic.AddCollider(collider.Name, collider.Bounds);
         }
         //load sprites
         foreach (var sprite in level.Sprites)
         {
             renderer.AddSprite(sprite.Name, sprite.Layer, sprite.RenderBounds, sprite.TextureName, sprite.Bitmap);
         }
     }
 }