All pastes #2024139 Raw Edit

Vic

public text v1 · immutable
#2024139 ·published 2010-12-20 04:18 UTC
rendered paste body
using System;
using System.Collections.Generic;
using System.Text;
using FlatRedBall;
using FlatRedBall.Math.Geometry;
using FlatRedBall.Input;
using FlatRedBall.Graphics;

namespace FlatRedBallXna
{
    public class SimpleEntity : PositionedObject
    {
        #region Fields

        private string mContentManagerName;

        private Sprite mVisibleRepresentation;
        private Polygon mCollision;

        #endregion

        #region Properties

        public Polygon Collision
        {
            get { return mCollision; }
        }

        #endregion

        #region Methods

        public SimpleEntity(string contentManagerName)
        {
            mContentManagerName = contentManagerName;
            Initialize(true);
        }

        protected virtual void Initialize(bool addToManagers)
        {
            // We can create the polygon here and just add
            // it to managers later:
            mCollision = Polygon.CreateEquilateral(
                8, // Number of sides
                1, // Radius
                0);// Angle of first point in radians            

            if(addToManagers)
            {
                AddToManagers(null);
            }
        }

        public virtual void AddToManagers(Layer layerToAddTo)
        {
            SpriteManager.AddPositionedObject(this);

            mVisibleRepresentation = SpriteManager.AddSprite(
                "redball.bmp", mContentManagerName);
            mVisibleRepresentation.AttachTo(this, false);


            mCollision.AttachTo(this, false); // Don't forget to attach to this
            // Add the collision to the ShapeManager if you
            // want it to be visible.  This can help with debugging.
            bool collisionVisible = false;
            if (collisionVisible)
            {
                ShapeManager.AddPolygon(mCollision);
            }

        }

        public virtual void Activity()
        {
            InputManager.Keyboard.ControlPositionedObject(this);
        }

        public virtual void Destroy()
        {
            SpriteManager.RemoveSprite(mVisibleRepresentation);
            ShapeManager.Remove(mCollision);
            SpriteManager.RemovePositionedObject(this);
        }

        #endregion
    }
}