Пример #1
0
        public void Update(GameTime gametime)
        {
            //Assets Updaten
            finish = new Rectangle(14, 700, 100, 180);
            bigRec = new Rectangle(0, 0, 1750, 300);
            liftobject.Update(gametime);

            mist_speed   -= 0.25f;
            wolken_speed -= 0.20f;
            for (int i = 0; i < plates.Count; i++)
            {
                if (plates[0].pressed == true && plates[1].pressed == true)
                {
                    liftobject.position.Y = 800;
                }
            }

            for (int i = 0; i < stones.Count; i++)
            {
                Steen steen = stones[i];
                steen.Update(gametime);
                //steen.UpdateAnimation(gametime);
                if (steen.Crushed)
                {
                    stones.Remove(steen);
                    i--;
                }
            }

            for (int k = 0; k < doors.Count; k++)
            {
                Door door = doors[k];
                if (door.open)
                {
                    doors.Remove(door);
                    k--;
                }
            }

            for (int j = 0; j < collectibles.Count; j++)
            {
                CollectItem item = collectibles[j];
                item.UpdateAnimation(gametime);
                if (item.pickedUp)
                {
                    collectibles.Remove(item);
                    j--;
                }
            }

            foreach (Ladder ladder in ladders)
            {
                ladder.Update(gametime);
            }

            foreach (MoveDoor door in Mdoors)
            {
                door.Update(gametime);
            }
        }
Пример #2
0
    // Update is called once per frame
    void Update()
    {
        Ray        ray = new Ray(Camera.main.transform.position, Camera.main.transform.forward);
        RaycastHit hit;

        if (Physics.Raycast(ray, out hit))
        {
            //print("I'm looking at " + hit.transform.name);

            if (hit.transform.CompareTag("Stone"))
            {
                Pickaxe.SetActive(true);
                Axe.SetActive(false);
                if (hit.collider.CompareTag("Stone"))
                {
                    if (Input.GetKeyDown(KeyCode.Mouse0))
                    {
                        Stone = hit.transform.GetComponent <Steen>();

                        ClickedStone += 1f;
                        Debug.Log(ClickedStone);
                        if (ClickedStone == 5)
                        {
                            steen += 1f;
                            --Stone.Health;
                            ClickedStone = 0;
                            Debug.Log(ClickedStone);
                        }
                    }
                }
            }

            if (hit.transform.CompareTag("Wood"))
            {
                Pickaxe.SetActive(false);
                Axe.SetActive(true);
                if (hit.collider.CompareTag("Wood"))
                {
                    if (Input.GetKeyDown(KeyCode.Mouse0))
                    {
                        Wood         = hit.transform.parent.GetComponent <Hout>();
                        ClickedHout += 1f;
                        Debug.Log(hit.collider.name + "   time+: " + ClickedHout);
                        if (ClickedHout >= 5)
                        {
                            hout += 1f;
                            --Wood.Health;
                            ClickedHout = 0;
                            Debug.Log(ClickedHout);
                        }
                    }
                }
            }
        }
    }
Пример #3
0
 // Use this for initialization
 void Start()
 {
     camera = GetComponent <Camera>();
     Wood   = GameObject.FindGameObjectWithTag("Wood").GetComponent <Hout> ();
     Stone  = GameObject.FindGameObjectWithTag("Stone").GetComponent <Steen> ();
 }
Пример #4
0
        public void Update(GameTime gametime)
        {
            KeyboardState kb = Keyboard.GetState();

            rectangle = new Rectangle((int)position.X, (int)position.Y, 40, 83);
            //UpdateAnimation(gametime);
            Center = new Vector2(position.X + width / 2, position.Y + height / 2);
            Console.WriteLine(position.Y);


            if (kb.IsKeyDown(Keys.Left))
            {
                spriteEffects = SpriteEffects.FlipHorizontally;
            }

            if (kb.IsKeyDown(Keys.Right))
            {
                spriteEffects = SpriteEffects.None;
            }

            for (int i = 0; i < TestLevel.collectibles.Count; i++)
            {
                if (rectangle.Intersects(TestLevel.collectibles[i].rectangle))
                {
                    points += TestLevel.collectibles[i].value;
                    TestLevel.collectibles[i].pickedUp = true;
                }
            }


            if (rectangle.Intersects(TestLevel.bigRec))
            {
                rectangle.Width = 95;
            }
            else
            {
                rectangle.Width = 40;
            }

            if (status == Status.walking)
            {
                Collision();
                if (kb.IsKeyDown(Keys.Up) && hasJumped == false)
                {
                    position.Y -= 20f;
                    velocity.Y  = -3f;
                    hasJumped   = true;
                }


                else if (hasJumped == true)
                {
                    if (Animation != "jump")
                    {
                        Animation          = "jump";
                        IdleAnimate.Frames = 10;
                    }

                    if (kb.IsKeyDown(Keys.Left))
                    {
                        position.X += velocity.X;
                        velocity.X  = -2f;
                    }

                    if (kb.IsKeyDown(Keys.Right))
                    {
                        position.X += velocity.X;
                        velocity.X  = 2f;
                    }
                    velocity.Y += 0.15f;
                    position.Y += velocity.Y;
                }

                else if (kb.IsKeyDown(Keys.Left))
                {
                    position.X += velocity.X;
                    velocity.X  = -2f;
                    if (Animation != "walk")
                    {
                        Animation          = "walk";
                        IdleAnimate.Frames = 28;
                    }
                }



                else if (kb.IsKeyDown(Keys.Right))
                {
                    position.X += velocity.X;
                    velocity.X  = 2f;
                    if (Animation != "walk")
                    {
                        Animation          = "walk";
                        IdleAnimate.Frames = 28;
                    }
                }



                else if (status == Status.pushing)
                {
                    if (kb.IsKeyDown(Keys.Left))
                    {
                        position.X += velocity.X;
                        velocity.X  = -1f;
                    }

                    if (kb.IsKeyDown(Keys.Right))
                    {
                        position.X += velocity.X;
                        velocity.X  = 1f;
                    }
                }

                else if (kb.IsKeyDown(Keys.RightControl))
                {
                    if (Animation != "smash")
                    {
                        Animation          = "smash";
                        IdleAnimate.Frames = 24;
                        width = 40;
                    }
                    Attack(TestLevel.stones);
                }

                else
                {
                    if (Animation != "idle")
                    {
                        Animation          = "idle";
                        IdleAnimate.Frames = 12;
                        FramesPerSecond    = 17;
                    }
                }


                if (gravity)
                {
                    velocity.Y += gravitypower * (float)gametime.ElapsedGameTime.TotalSeconds;
                    position.Y += velocity.Y;
                }

                gravity = true;
            }

            if (status == Status.climbing)
            {
                if (kb.IsKeyDown(Keys.Up))
                {
                    position.Y -= 1;
                }

                foreach (Ladder ladder in TestLevel.ladders)
                {
                    if (!rectangle.Intersects(ladder.rectangle))
                    {
                        status = Status.walking;
                    }
                }
            }



            for (int i = 0; i < TestLevel.stones.Count; i++)
            {
                if (rectangle.Intersects(TestLevel.stones[i].rectangle))
                {
                    stonetarget = TestLevel.stones[i];
                }

                else
                {
                    stonetarget = null;
                }
            }


            foreach (Door_button button in TestLevel.buttons)
            {
                button.FrameIndex = 1;
                button.UpdateAnimation(gametime);
                if (rectangle.Intersects(button.rectangle))
                {
                    if (kb.IsKeyDown(Keys.RightControl))
                    {
                        for (int h = 0; h < TestLevel.doors.Count; h++)
                        {
                            if (button.indexNumber == TestLevel.doors[h].indexNumber)
                            {
                                TestLevel.doors[h].OpenDoor();
                            }
                        }
                    }
                }
            }

            foreach (MoveObject obj in TestLevel.moveObjects)
            {
                if (isPushing)
                {
                    obj.UpdateAnimation(gametime);
                }
            }

            foreach (Ladder ladder in TestLevel.ladders)
            {
                if (rectangle.Intersects(ladder.rectangle))
                {
                    if (kb.IsKeyDown(Keys.Up))
                    {
                        status = Status.climbing;
                    }
                }
            }

            /*
             * if (rectangle.Intersects(TestLevel.door.rectangle))
             * {
             *  position.X = TestLevel.door.position.X + TestLevel.door.texture.Width;
             * }*/

            //TestLevel.door.Update(gametime);
            //TestLevel.button.ReactToDoor(TestLevel.door, position);
        }
Пример #5
0
        public TestLevel(Texture2D texture, string mapname, Vector2 position)
        {
            this.mapname  = mapname;
            this.position = position;

            switch (mapname)
            {
            case "map":
                map = new int[, ]
                {
                    /*items*/
                    // 1 = blok      // 3 = ladder  // 5 = item // 7 = schuif obj // 9 = falldoor button // 11
                    // 2 = steen     // 4 = button  // 6 = door // 8 = fall door // 10 = pressure plate

                    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 1, 0, 1, 0, 3, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 0, 0, 0, 0, 0, 10, 0, 10, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 3, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 11, 0, 0, 0, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 0, 0, 4, 0, 0, 0, 1, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 3, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 6, 0, 0, 0, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 1, 0, 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 5, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 5, 0, 9, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0 },
                    { 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 3, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 3, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 5, 0, 4, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 5, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 0, 5, 0, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 0, 5, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 5, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 4, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                    { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 },
                };
                break;
            }

            buttons      = new List <Door_button>();
            ladders      = new List <Ladder>();
            stones       = new List <Steen>();
            Tiles        = new List <blok>();
            collectibles = new List <CollectItem>();
            doors        = new List <Door>();
            moveObjects  = new List <MoveObject>();
            Mdoors       = new List <MoveDoor>();
            Mbuttons     = new List <MoveDoorButton>();
            plates       = new List <PressurePlate>();

            CheckRtiles = new List <blok>();
            CheckLtiles = new List <blok>();
            CheckBtiles = new List <blok>();


            this.tiletexture = texture;

            buttonIndex = 0;
            ladderIndex = 0;
            doorIndex   = 0;


            center       = new Vector2(this.Width / 2 * 44, this.Heigth / 2 * 44);
            SpawnNextlvl = false;


            for (int x = 0; x < Width; x++)
            {
                for (int y = 0; y < Heigth; y++)
                {
                    //Assets in het Grid genereren
                    int textureIndex = map[y, x];
                    if (textureIndex == 0)
                    {
                        continue;
                    }
                    switch (textureIndex)
                    {
                    case 1:
                        blok tile = new blok(tiletexture, new Vector2(position.X + x * 44, position.Y + y * 44));
                        Tiles.Add(tile);
                        break;

                    case 2:
                        Steen          steen   = new Steen(Game1.crushstone, 13, 1);
                        AnimationClass animate = new AnimationClass();
                        steen.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                        steen.addAnimation(Game1.crushstone, "idle", 1, 13, animate.Copy());
                        steen.Animation = "idle";

                        stones.Add(steen);
                        break;

                    case 3:
                        Ladder ladder = new Ladder(Game1.laddertextures[ladderIndex], new Vector2(position.X + x * 44, position.Y + y * 44));
                        ladderIndex++;
                        ladders.Add(ladder);
                        break;

                    case 4:
                        Door_button    button   = new Door_button(Game1.button_tex, 12, 1, buttonIndex);
                        AnimationClass animate2 = new AnimationClass();
                        button.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                        button.addAnimation(Game1.button_tex, "idle", 1, 12, animate2.Copy());
                        button.Animation = "idle";
                        buttonIndex++;
                        buttons.Add(button);
                        break;

                    case 5:
                        CollectItem    item     = new CollectItem(Game1.slaktex, 50, 1);
                        AnimationClass animate3 = new AnimationClass();
                        item.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                        item.addAnimation(Game1.slaktex, "idle", 1, 50, animate3.Copy());
                        item.Animation = "idle";
                        collectibles.Add(item);
                        break;

                    case 6:
                        Door door = new Door(Game1.door_tex, new Vector2(position.X + x * 44, position.Y + y * 44), doorIndex);
                        doorIndex++;
                        doors.Add(door);
                        break;

                    case 7:
                        MoveObject     obj      = new MoveObject(Game1.stonetex, 15, 1);
                        AnimationClass animate5 = new AnimationClass();
                        obj.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                        obj.addAnimation(Game1.stonetex, "idle2", 1, 15, animate5.Copy());
                        obj.Animation = "idle2";
                        moveObjects.Add(obj);
                        break;

                    case 8:
                        MoveDoor objdoor = new MoveDoor(Game1.fallStone, new Vector2(position.X + x * 44, position.Y + y * 44), moveDoorIndex);
                        moveDoorIndex++;
                        Mdoors.Add(objdoor);
                        break;

                    case 9:
                        MoveDoorButton button2  = new MoveDoorButton(Game1.button_tex, 12, 1, moveButtonIndex);
                        AnimationClass animate6 = new AnimationClass();
                        button2.position = new Vector2(position.X + x * 44, position.Y + y * 44);
                        button2.addAnimation(Game1.button_tex, "idle", 1, 12, animate6.Copy());
                        button2.Animation = "idle";
                        moveButtonIndex++;
                        Mbuttons.Add(button2);
                        break;

                    case 10:
                        PressurePlate plate = new PressurePlate(Game1.pressureplate, new Vector2(position.X + x * 44, position.Y + y * 55));
                        plates.Add(plate);
                        break;

                    case 11:
                        liftobject = new LiftObject(Game1.liftobj, new Vector2(position.X + x * 44, position.Y + y * 44));
                        break;
                    }
                }
            }
        }