Exemple #1
0
        //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;
                    }
                }
            }
        }
Exemple #2
0
        //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));
        }