source: 2013/30/DenisZ/CastleMaster/CastleMaster/CastleMaster/Entities/Entity.cs @ 4535

Revision 4535, 1.9 KB checked in by dezhidki, 7 years ago (diff)

Uusi versio:

  • Tason luonti valmis
  • Piirtojärjestys toimii
  • Palikoiden lisääminen ja muokkaus toimii
  • Esivalmistelut liikkumista varten
Line 
1using CastleMaster.Graphics;
2using CastleMaster.Physics;
3using CastleMaster.World;
4using Microsoft.Xna.Framework;
5
6namespace CastleMaster.Entities
7{
8    public class Entity : BoundingRectangleOwner
9    {
10        protected float x, z, width = 16.0F, depth = 16.0F;
11        protected Level level;
12        protected BoundingRectangle boundingRect;
13        protected Vector2 renderOffset, screenPos;
14        protected bool isSolid = true;
15
16        public Entity(Level level)
17        {
18            this.level = level;
19            renderOffset = Vector2.Zero;
20            screenPos = Vector2.Zero;
21            Removed = false;
22        }
23
24        public bool Removed { get; protected set; }
25
26        public float X
27        {
28            get { return x; }
29            set { x = value; }
30        }
31
32        public float Z
33        {
34            get { return z; }
35            set { z = value; }
36        }
37
38        public BoundingRectangle BoundingRectangle { get { return boundingRect; } }
39
40        public Vector2 RenderOffset { get { return renderOffset; } }
41
42        protected Vector2 ScreenPos { get { return screenPos * Viewport.ZOOM; } }
43
44        public virtual void Init()
45        {
46            screenPos.X = (x - z) * Viewport.X_SCALE - renderOffset.X;
47            screenPos.Y = (x + z) * Viewport.Y_SCALE - renderOffset.Y;
48
49            boundingRect = new BoundingRectangle(x - width / 2, z - depth / 2, x + width / 2, z + depth / 2, this);
50        }
51
52        public virtual void Update() { }
53
54        public virtual void Render(RenderHelper renderer) { }
55
56        public virtual void OnTouched(BoundingRectangleOwner touching) { }
57
58        public virtual void OnTouchedBy(BoundingRectangleOwner toucher) { }
59
60        public virtual void OnCollidedWith(BoundingRectangleOwner colliding) { }
61
62        public virtual void OnCollidedBy(BoundingRectangleOwner collidable) { }
63
64        public virtual void OnRemoved() { }
65    }
66}
Note: See TracBrowser for help on using the repository browser.