//interacting each bullet has with objects in the scene such as destroying them, damageing player hitting collision boxes etc public void ForEachBullet(List <Projectile> whichList, AABB whichBulletCollider, ref int Whichscore, AABB whichTargetcollider, AABB whichPlayerCollider, ref float health) { if (whichList.Count > 0) { foreach (Projectile newBullet in whichList) { //moves bullet forward in facing direction * speed newBullet.OnUpdate(deltaTime); //debug drawing collider box updateing with bullets pos if (rl.Raylib.IsKeyDown(rl.KeyboardKey.KEY_H)) { rl.Raylib.DrawRectangleLines(Convert.ToInt32(newBullet.globalTransform.m7 - 10), Convert.ToInt32(newBullet.globalTransform.m8) - 10, 15, 15, rl.Color.GREEN); } //bullet collider box updating with bullets pos whichBulletCollider.Resize(new Vector3(newBullet.globalTransform.m7 - 10, newBullet.globalTransform.m8 - 10, 0), new Vector3(newBullet.globalTransform.m7 + 10, newBullet.globalTransform.m8 + 10, 0)); //if bullet enters testbox do somthing if (whichBulletCollider.Overlaps(whichTargetcollider)) { Console.WriteLine("HIT TARGET"); Whichscore += 1; Console.WriteLine(player1Score); whichList.Remove(newBullet); break; } if (whichBulletCollider.Overlaps(whichPlayerCollider)) { health -= 10; whichList.Remove(newBullet); break; } if (newBullet.localTransform.m7 < 0.0f || newBullet.localTransform.m7 > rl.Raylib.GetScreenWidth() || newBullet.localTransform.m8 < 0.0f || newBullet.localTransform.m8 > rl.Raylib.GetScreenHeight()) { Console.WriteLine("HIT WALL"); whichList.Remove(newBullet); break; } } } }
//FUNCTIONS //__________________________________________________________________________________________________________________________________________ //reszing collider boxes around objects/sprites so collision box updates with the objects pos public void ResizingCollider(AABB whichCollider, SceneObject whichObject, SpriteObject whichSprite) { whichCollider.Resize(new Vector3(whichObject.globalTransform.m7 - (whichSprite.Width / 2), whichObject.globalTransform.m8 - (whichSprite.Height / 2), 0), new Vector3(whichObject.globalTransform.m7 + (whichSprite.Width / 2), whichObject.globalTransform.m8 + (whichSprite.Height / 2), 0)); }