diff --git a/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 b/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 index ec4de39..5cf0ec0 100644 Binary files a/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 and b/.vs/EvilSatellites/DesignTimeBuild/.dtbcache.v2 differ diff --git a/.vs/EvilSatellites/v16/.suo b/.vs/EvilSatellites/v16/.suo index 4b9a815..e36a48c 100644 Binary files a/.vs/EvilSatellites/v16/.suo and b/.vs/EvilSatellites/v16/.suo differ diff --git a/EvilSatellites/Objects/Player.cs b/EvilSatellites/Objects/Player.cs index daa2533..80dc3f7 100644 --- a/EvilSatellites/Objects/Player.cs +++ b/EvilSatellites/Objects/Player.cs @@ -11,8 +11,9 @@ namespace EvilSatellites.Objects public class Player : AbstractGameObject { private Vector3 _PrevPos; - private Vector3 MaxSpeed = new Vector3(1, 1, 1); - private Vector3 Deceleration = new Vector3(0.005f, 0.005f, 0.005f); + private Vector3 MaxSpeed = new Vector3(0.2f, 0.2f, 0.2f); + public Vector3 Acceleration = new Vector3(0.008f, 0.008f, 0.008f); + private Vector3 Deceleration = new Vector3(0.0025f, 0.0025f, 0.0025f); private ISoundEffect sfxEngine; private ISoundEffect sfxWhine; public IWeapon CurrentWeapon; @@ -21,7 +22,7 @@ namespace EvilSatellites.Objects ShouldDestroy = false; Active = true; Type = ObjectType.Player; - Position = new Vector3(10, 0, 0); + Position = new Vector3(0, 0, 0); Dimensions = new Vector3(5, 5, 5); Movement = new Vector3(0, 0, 0); Rotation = Matrix.Identity; diff --git a/EvilSatellites/Objects/Projectile.cs b/EvilSatellites/Objects/Projectile.cs index 5dbaac8..7b389d6 100644 --- a/EvilSatellites/Objects/Projectile.cs +++ b/EvilSatellites/Objects/Projectile.cs @@ -12,15 +12,17 @@ namespace EvilSatellites.Objects public class Projectile : AbstractGameObject { private ISoundEffect3D Sound; + private Random rnd = new Random(); private Vector3 Direction; private Vector3 StartPos; private float Range; - public Projectile(IScreen screen, Vector3 pos, Vector3 direction) : base(screen) + public Projectile(IScreen screen, Vector3 pos, Matrix rotation) : base(screen) { StartPos = pos; Position = pos; Dimensions = new Vector3(5, 5, 5); - Direction = direction; + Direction = new Vector3(0, 0, -1); + Rotation = rotation; Range = 500; Type = ObjectType.Projectile; Activate(); @@ -39,7 +41,7 @@ namespace EvilSatellites.Objects override public void Update(GameTime gameTime) { - Position += Direction; + Move(Direction); if (Vector3.Distance(StartPos, Position) > Range) { Destroy(); @@ -48,8 +50,9 @@ namespace EvilSatellites.Objects public override void OnCollision(IGameObject obj) { + if (obj.Type == ObjectType.Projectile) return; if (obj.Type == ObjectType.Player) return; - Screen.Manager.Sound.PlayOneshot(@"sfx/physics/impacts/bullet/1.wav", new System.Numerics.Vector3(Position.X, Position.Y, Position.Z), Screen.Manager.EnvironmentEffect); + Screen.Manager.Sound.PlayOneshot(@"sfx/physics/impacts/bullet/"+(rnd.Next(5)+1)+".wav", new System.Numerics.Vector3(Position.X, Position.Y, Position.Z), Screen.Manager.EnvironmentEffect); Destroy(); } } diff --git a/EvilSatellites/Program.cs b/EvilSatellites/Program.cs index 83eaca6..a22adeb 100644 --- a/EvilSatellites/Program.cs +++ b/EvilSatellites/Program.cs @@ -7,6 +7,7 @@ namespace EvilSatellites [STAThread] static void Main() { + DavyKager.Tolk.Load(); using (var game = new Game1()) game.Run(); diff --git a/EvilSatellites/ScreenManager.cs b/EvilSatellites/ScreenManager.cs index fdfd54f..d1bd1e8 100644 --- a/EvilSatellites/ScreenManager.cs +++ b/EvilSatellites/ScreenManager.cs @@ -4,6 +4,7 @@ using System.Text; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Input; using SynthySound; +using Synthizer; using Microsoft.Xna.Framework.Audio; using EvilSatellites.Screens; @@ -17,6 +18,7 @@ namespace EvilSatellites private Game _Game; private bool _Running = false; public Synthy Sound = new Synthy(); + public FDNReverb EnvironmentEffect; public AudioListener Listener = new AudioListener(); public ScreenManager(Game instance): base(instance) diff --git a/EvilSatellites/Screens/GameScreen.cs b/EvilSatellites/Screens/GameScreen.cs index 657334f..82c9b9f 100644 --- a/EvilSatellites/Screens/GameScreen.cs +++ b/EvilSatellites/Screens/GameScreen.cs @@ -94,19 +94,19 @@ namespace EvilSatellites.Screens Vector3 move = new Vector3(0, 0, 0); if (Input.IsPressed(Keys.W)) { - move.Z = -0.035f; + move.Z = -_player.Acceleration.Z; } if (Input.IsPressed(Keys.S)) { - move.Z = 0.035f; + move.Z = _player.Acceleration.Z; } if (Input.IsPressed(Keys.A)) { - move.X = -0.035f; + move.X = -_player.Acceleration.X; } if (Input.IsPressed(Keys.D)) { - move.X = 0.035f; + move.X = _player.Acceleration.X; } if (Input.IsPressed(Keys.Left)) { diff --git a/EvilSatellites/Weapons/LaserMG.cs b/EvilSatellites/Weapons/LaserMG.cs index 4095c51..e1acebb 100644 --- a/EvilSatellites/Weapons/LaserMG.cs +++ b/EvilSatellites/Weapons/LaserMG.cs @@ -76,7 +76,7 @@ namespace EvilSatellites.Weapons { sfxShoot.Play(); TimerStart = TimerEnd; - Projectile proj = new Projectile(Screen, _wielder.Position, _wielder.Rotation.Forward); + Projectile proj = new Projectile(Screen, _wielder.Position, _wielder.Rotation); Screen.AddObject(proj); } }