source: 2016/27/ohjaajat/VenienteFragore/VenienteFragore/VenienteFragore/GoombaEnemy.cs @ 7814

Revision 7814, 1.7 KB checked in by sieerinn, 3 years ago (diff)

Goombat tappaa nyt paikallaankin olevat pelaajat

Line 
1using System;
2using System.Collections.Generic;
3using System.Linq;
4using System.Text;
5using Jypeli;
6
7namespace VenienteFragore
8{
9    class GoombaEnemy : SimplePlatformCharacter
10    {
11        public double Speed { get; set; }
12
13        public bool FallOffPlatforms { get; set; }
14
15        private bool walkRight;
16
17        public GoombaEnemy(double width, double height) : base(width, height)
18        {
19        }
20
21        private bool CheckCollision(Vector direction)
22        {
23            var collisions = Game.Collisions(this, direction, true);
24            if (collisions.Count > 0)
25            {
26                walkRight = false;
27                foreach (var obj in collisions)
28                {
29                    obj.CollidedWith(this);
30                    this.CollidedWith(obj);
31                }
32            }
33            return collisions.Count > 0;
34        }
35
36        public override void Update(Time time)
37        {
38            if (CheckCollision(new Vector(2, 1)))
39                walkRight = false;
40
41            if (CheckCollision(new Vector(-2, 1)))
42                walkRight = true;
43
44            if (!FallOffPlatforms)
45            {
46                var bottomLeft = new Vector(Left, Bottom + 2);
47                var bottomRight = new Vector(Right, Bottom + 2);
48
49                if (Game.GetTileAt(Game.WorldToTilePosition(bottomRight)) == null)
50                {
51                    walkRight = false;
52                }
53                if (Game.GetTileAt(Game.WorldToTilePosition(bottomLeft)) == null)
54                {
55                    walkRight = true;
56                }
57            }
58
59            Walk(walkRight ? Speed : -Speed);
60            base.Update(time);
61        }
62    }
63}
Note: See TracBrowser for help on using the repository browser.