From 6a982bf8d73fd704b2d7768c44428d1e9f78cbf1 Mon Sep 17 00:00:00 2001 From: MasterGordon Date: Wed, 5 Oct 2022 17:22:06 +0200 Subject: [PATCH] updated publish --- asdlteroids.csproj | 3 +++ src/Scene.cs | 3 +++ src/engine/KeyState.cs | 2 +- src/entities/UI.cs | 2 ++ src/entities/Ufo.cs | 42 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 src/entities/Ufo.cs diff --git a/asdlteroids.csproj b/asdlteroids.csproj index 5524382..448db1d 100644 --- a/asdlteroids.csproj +++ b/asdlteroids.csproj @@ -5,6 +5,9 @@ net6.0 asdlteroids enable + true + true + true enable diff --git a/src/Scene.cs b/src/Scene.cs index 1498d7d..763eeaf 100644 --- a/src/Scene.cs +++ b/src/Scene.cs @@ -10,6 +10,7 @@ class Scene private Renderer renderer; private static Scene? instance; + public Ufo ufo; public HashSet Shots; public HashSet Asteroids; public int Score = 0; @@ -20,6 +21,7 @@ class Scene public Scene(Renderer renderer) { this.ship = new Ship(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); + this.ufo = new Ufo(SCREEN_WIDTH / 2, SCREEN_HEIGHT / 2); this.ui = new UI(); this.Shots = new HashSet(); this.Asteroids = new HashSet(); @@ -54,6 +56,7 @@ class Scene var entities = new List(); entities.Add(ship); entities.Add(ui); + // entities.Add(ufo); entities.AddRange(Shots); entities.AddRange(Asteroids); diff --git a/src/engine/KeyState.cs b/src/engine/KeyState.cs index 5793a70..71ffa07 100644 --- a/src/engine/KeyState.cs +++ b/src/engine/KeyState.cs @@ -9,7 +9,7 @@ class KeyState { var origArray = SDL_GetKeyboardState(out var arraySize); this.keys = new byte[arraySize]; - Marshal.Copy(origArray, keys, 0, arraySize); + Marshal.Copy(origArray, this.keys, 0, arraySize); } public bool isPressed(SDL_Keycode keycode) diff --git a/src/entities/UI.cs b/src/entities/UI.cs index 3c3b08d..17a6b84 100644 --- a/src/entities/UI.cs +++ b/src/entities/UI.cs @@ -59,5 +59,7 @@ class UI : Renderable } SDL_RenderCopy(renderer.GetRaw(), texture, IntPtr.Zero, ref rect); + SDL_DestroyTexture(texture); + SDL_FreeSurface(surfaceMessage); } } diff --git a/src/entities/Ufo.cs b/src/entities/Ufo.cs new file mode 100644 index 0000000..071817b --- /dev/null +++ b/src/entities/Ufo.cs @@ -0,0 +1,42 @@ +class Ufo : Logic, Renderable +{ + public int X, Y; + + public Ufo(int x, int y) + { + X = x; + Y = y; + } + + public void Render(Renderer renderer, double dx) + { + renderer.setColor(255, 255, 255); + renderer.DrawLines(new double[][]{ + new double[]{X-Scene.SCALE*15, Y}, + new double[]{X+Scene.SCALE*15, Y}, + }); + renderer.DrawLines(new double[][]{ + new double[]{X-Scene.SCALE*15, Y}, + new double[]{X-Scene.SCALE*6, Y+Scene.SCALE*6}, + new double[]{X+Scene.SCALE*6, Y+Scene.SCALE*6}, + new double[]{X+Scene.SCALE*15, Y}, + }); + renderer.DrawLines(new double[][]{ + new double[]{X-Scene.SCALE*15, Y}, + new double[]{X-Scene.SCALE*6, Y-Scene.SCALE*6}, + new double[]{X+Scene.SCALE*6, Y-Scene.SCALE*6}, + new double[]{X+Scene.SCALE*15, Y}, + }); + renderer.DrawLines(new double[][]{ + new double[]{X-Scene.SCALE*6, Y-Scene.SCALE*6}, + new double[]{X-Scene.SCALE*4, Y-Scene.SCALE*12}, + new double[]{X+Scene.SCALE*4, Y-Scene.SCALE*12}, + new double[]{X+Scene.SCALE*6, Y-Scene.SCALE*6}, + }); + } + + public void Update(KeyState keyState, double dx) + { + // + } +}