Пример #1
0
        // NOTE: Make the variable scopes explicit -Dean

        // Methods
        public Tyre(Quadrent quadrent_, World world_, Vector2 position_, float rotation_)
            : base(world_, TextureHandler.vehicleTyre, position_, rotation_, BodyType.Dynamic, 1, 1)
        {
            // Tyre constructor
            // ================

            m_vehicleQuadrent = quadrent_;

            // TODO: Revert to original version -Dean
            if (m_vehicleQuadrent == Quadrent.TOP_LEFT || m_vehicleQuadrent == Quadrent.TOP_RIGHT)
            {
                m_isPowered = false;
                m_canSteer  = true;
            }
            else
            {
                m_isPowered = true;
                m_canSteer  = false;
            }
        }
Пример #2
0
        // TODO: Add relevant sprites with getters/setters for UI

        // Methods
        public ControlScheme(Quadrent quadrent_)
        {
            // ControlScheme constructor
            // ================

            m_quadrent = quadrent_;

            m_steeringValue = 0;
            m_braking       = false;

            m_steeringMaxDistance = 150;

            // Set touch zone
            switch (m_quadrent)
            {
            case Quadrent.TOP_LEFT:
                m_touchZone = new TouchZone(new Vector2(0, 0),
                                            new Vector2(Settings.m_screenWidth / 2, Settings.m_screenHeight / 2));
                break;

            case Quadrent.TOP_RIGHT:
                m_touchZone = new TouchZone(new Vector2(Settings.m_screenWidth / 2, 0),
                                            new Vector2(Settings.m_screenWidth, Settings.m_screenHeight / 2));
                break;

            case Quadrent.BOTTOM_LEFT:
                m_touchZone = new TouchZone(new Vector2(0, Settings.m_screenHeight / 2),
                                            new Vector2(Settings.m_screenWidth / 2, Settings.m_screenHeight));
                break;

            case Quadrent.BOTTOM_RIGHT:
                m_touchZone = new TouchZone(new Vector2(Settings.m_screenWidth / 2, Settings.m_screenHeight / 2),
                                            new Vector2(Settings.m_screenWidth, Settings.m_screenHeight));
                break;
            }
        }
Пример #3
0
        public Tile LoadTiles(string toLoad, Texture2D treeTexture, Texture2D bearTexture, List <Texture2D> pickups, Random rng, Quadrent quadrent)
        {
            Tile tile = new Tile(toLoad, treeTexture, bearTexture, pickups, rng, quadrent);

            return(tile);
        }
Пример #4
0
        // Methods
        public Player(World world_, Texture2D cowTexture_, Texture2D texture_, Texture2D ButtonTexture, Vector2 ButtonPosition, float ButtonRotation, EntityStruct entityStruct_, float speed_, Quadrent quadrent_, int id_ = 999)
        {
            // Player constructor
            // ================
            m_vehicle     = new Vehicle(world_, texture_, entityStruct_);
            m_cow         = new Sprite(cowTexture_, entityStruct_.GetPosition(), entityStruct_.GetRotationDegrees(), new Vector2(0.1f, 0.1f));
            m_ReadyButton = new Button(ButtonTexture, ButtonPosition);
            m_ReadyButton.m_sprite.SetRotationDegrees(ButtonRotation);

            m_controlScheme = new ControlScheme(quadrent_);
            m_playerID      = id_;

            m_currentCheckpoint = Checkpoint.First(Vector2.Zero);
            m_currentLap        = 1;
            m_finished          = false;

            m_ReadyUp = false;
        }
    static Vector2 findNextPixel(Vector2 currentPixel, Texture2D circleTexture)
    {
        Quadrent quadrent = GetQuadrent(currentPixel, circleTexture);

        switch (quadrent)
        {
        case Quadrent.TopLeft:

            if (checkTop(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x, currentPixel.y + 1));
            }
            if (checkTopRight(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x + 1, currentPixel.y + 1));
            }
            if (checkRight(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x + 1, currentPixel.y));
            }
            break;

        case Quadrent.TopRight:

            if (checkBottom(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x, currentPixel.y - 1));
            }
            if (checkBottomRight(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x + 1, currentPixel.y - 1));
            }
            if (checkRight(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x + 1, currentPixel.y));
            }
            break;

        case Quadrent.BottomLeft:

            if (checkTop(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x, currentPixel.y + 1));
            }
            if (checkTopLeft(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x - 1, currentPixel.y + 1));
            }
            if (checkLeft(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x - 1, currentPixel.y));
            }
            break;

        case Quadrent.BottomRight:

            if (checkBottom(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x, currentPixel.y - 1));
            }
            if (checkBottomLeft(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x - 1, currentPixel.y - 1));
            }
            if (checkLeft(currentPixel, circleTexture) != Color.clear)
            {
                return(new Vector2(currentPixel.x - 1, currentPixel.y));
            }
            break;
        }


        return(new Vector2(-1, -1));
    }
Пример #6
0
        //methods -----------------------------------------------------------------------

        //method to load in tile information to be called in constructor
        public void LoadTile(string toLoad, Texture2D treeTexture, Texture2D bearTexture, Random rng, Quadrent quadrent)
        {
            switch (quadrent)
            {
            case (Quadrent.UL):
                XOffset = 0;
                YOffset = 0;
                break;

            case (Quadrent.UR):
                XOffset = 896;
                YOffset = 0;
                break;

            case (Quadrent.BL):
                XOffset = 0;
                YOffset = 896;
                break;

            case (Quadrent.BR):
                XOffset = 896;
                YOffset = 896;
                break;
            }



            // Create the data structures

            StreamReader load;

            load = new StreamReader(toLoad);
            try
            {
                string line = null;
                while ((line = load.ReadLine()) != null)
                {
                    //if line lists object Type switch state to load that object
                    if (line == "Trees:")
                    {
                        loadState = LoadState.tree;
                    }

                    else if (line == "PickUps:")
                    {
                        loadState = LoadState.pickUp;
                    }
                    else if (line == "Bears:")
                    {
                        loadState = LoadState.bear;
                    }

                    //if line has load information adds an object to list
                    else
                    {
                        //split the line into information
                        string[] split = line.Split(',');

                        switch (loadState)
                        {
                        case LoadState.tree:


                            trees.Add(new Tree
                                      (
                                          Int32.Parse(split[0]) + XOffset,
                                          Int32.Parse(split[1]) + YOffset,
                                          Int32.Parse(split[2]),
                                          Int32.Parse(split[3]),
                                          treeTexture,
                                          Int32.Parse(split[4]),
                                          Int32.Parse(split[5])

                                      )
                                      );
                            break;

                        case LoadState.bear:
                            bears.Add(new Bear
                                      (
                                          Int32.Parse(split[0]) + XOffset,
                                          Int32.Parse(split[1]) + YOffset,
                                          70,
                                          Int32.Parse(split[3]),
                                          bearTexture,
                                          Int32.Parse(split[4]),
                                          Int32.Parse(split[5]),
                                          50,
                                          Int32.Parse(split[7]),
                                          Int32.Parse(split[8]),
                                          rng
                                      )
                                      );
                            break;

                        case LoadState.pickUp:
                            collectibles.Add(new PickUp
                                             (
                                                 Int32.Parse(split[1]) + XOffset,
                                                 Int32.Parse(split[2]) + YOffset,
                                                 Int32.Parse(split[3]),
                                                 Int32.Parse(split[4]),
                                                 pickupTextures[Int32.Parse(split[0])],
                                                 Int32.Parse(split[0])
                                             )
                                             );

                            break;
                        }
                    }
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error loading: " + e.Message + "\n");
            }
            finally
            {
                load.Close();
            }
        }
Пример #7
0
 //constructor -------------------------------------------------------------------
 public Tile(string toLoad, Texture2D treeTexture, Texture2D bearTexture, List <Texture2D> pickups, Random rng, Quadrent quadrent)
 {
     trees          = new List <Tree>();
     bears          = new List <Bear>();
     collectibles   = new List <PickUp>();
     pickupTextures = pickups;
     LoadTile(toLoad, treeTexture, bearTexture, rng, quadrent);
 }