/// <summary> /// /// </summary> /// <param name="actor">Projectile that need to be checked</param> /// <returns>null if no actor been impacted or actor itself</returns> public Actor CheckProjectileCollision(Ammo_Projectile actor) { if (world.World_Actors.Count > 0) { for (int i = 0; i < world.World_Actors.Count; i++) { if (world.World_Actors.ElementAt(i).HasCollision == true) { if (world.World_Actors.ElementAt(i).Layer == actor.Layer) { if (actor.Collision.IntersectsWith(world.World_Actors.ElementAt(i).Collision)) { actor.OnImpact(world.World_Actors.ElementAt(i)); if (actor.DestroyOnImpact == true) { } return(world.World_Actors.ElementAt(i)); } } } } return(null); } else { return(null); } }
public void AddProjectile(Ammo_Projectile e, float RotationDegree, PointF point) { if (!e.IsThreadAlive()) { e.RotationDegree = RotationDegree; e.StartThread(point); Projectiles.Add(e); } }
public Form1() { InitializeComponent(); //DoubleBuffered = true; //SetStyle(ControlStyles.OptimizedDoubleBuffer, true); bullet = Image.FromFile("assets\\models\\gunshot.png"); game = new Game(new Player(new AnimatedSprite(true, true, 20, Image.FromFile("assets\\models\\player_idle.gif"), 0, true, new RectangleF(0, 0, 50, 50), true), 0, new RectangleF(0, 0, 50, 50)), new World(), 500); game.LoadWorldFromFile("assets\\maps\\test.mf"); ap = new Ammo_Projectile(true, 2, 1000, Image.FromFile("assets\\models\\gunshot.png"), 0, true, new PointF(0, 0), true); game.player.AddPointSocket("Weapon", new PointF(34.5f, 30.6f)); game.player.AddPointSocket("projectile", new PointF(34.5f, 30.6f)); if ((game.player.GetSocketByName("Weapon") != null) && (game.player.GetSocketByName("projectile") != null)) { game.Weapons.Add(new Weapon_Moveable(10, 100, Image.FromFile("assets\\models\\weapon_pistol.gif"), "Pistol", false, game.player.GetSocketByName("Weapon"), game.player.GetSocketByName("Projectile"), 0.6f, 0.6f)); } //game.world.World_Actors.Add(new Actor(Image.FromFile("assets\\models\\floor_checkboard_texture.png"), 0, true, new PointF(50, 50), true)); //game.world.World_Actors.Add(new Actor(Image.FromFile("assets\\models\\floor_checkboard_texture.png"), 1, true, new PointF(100, 50), true)); ////game.world.World_Actors.Add(new Func_View_Layer(1, new RectangleF(90, 40, 100, 100), Image.FromFile("assets\\models\\ground_texture.png"), 0, false, new PointF(100,50), true)); //game.world.World_Actors.Add(new Trigger_Change_Layer(TriggerType.Once, MoveDirection.NONE, 1, Image.FromFile("assets\\models\\ground_texture.png"), 0, true, new PointF(200, 200), true)); game.SetPlayerWeapon(0); //Sound Work game.Sound_System.getLowLevelSystem(out system); //system.createReverb3D(out hall); REVERB_PROPERTIES Hall_Props = PRESET.HALLWAY(); //hall.setProperties(ref Hall_Props); //VECTOR v = new VECTOR(); //v = Vector.ToVECTOR(50, 0, 0); //hall.set3DAttributes(ref v, 0, 100); //game.AddActorToWorld(new Reverb_Area(system, new Reverb_Attributes(Vector.ToVECTOR(100, 100, 0), 0, 100), ref Hall_Props, Image.FromFile("assets\\models\\gunshot.bmp"), 0, false,new PointF(100,100), true)); SoundData data = new SoundData(); system.createSound("assets\\sounds\\pistol_shot.wav", MODE._3D, out data.sound); game.sounds.Add(data); game.AddActorToWorld(new Ambient_Sound(data, Image.FromFile("assets\\models\\gunshot.bmp"), 0, false, new RectangleF(0, 0, 50, 50), true)); data = new SoundData(); system.createSound("assets\\sounds\\sound_test_0.wav", MODE._3D, out data.sound); game.sounds.Add(data); game.Sound_System.update(); }