示例#1
0
 /**
 * Adiciona uma entidade na camada
 */
 public void add(DefaultEntity entity)
 {
     entity.parentLayer = this;
     entityList.AddLast(entity);
 }
示例#2
0
        /**
         * Collide as camadas envia para os objetos dessa camada as entidades que esta colidiu
         */
        public void collideEntity(DefaultEntity target, Layer layerCollide)
        {
            DefaultEntity collider;
            DefaultEntity mycollider;
            LinkedList<DefaultEntity> inCollideList = new LinkedList<DefaultEntity>();

            mycollider = target;

            for (int j = 0; j < entityList.Count; j++)
            {
                if (mycollider != layerCollide.entityList.ElementAt(j) && mycollider.collidable)
                {
                    collider = layerCollide.entityList.ElementAt(j);

                    if (collider.collidable && collider != mycollider)
                    {
                        if (Vector2.Distance(new Vector2(mycollider.position.X + mycollider.centerPosition.X, mycollider.position.Y + mycollider.centerPosition.Y), new Vector2(collider.position.X + collider.centerPosition.X, collider.position.Y + collider.centerPosition.Y)) < mycollider.range + collider.range)
                        {
                            inCollideList.AddFirst(collider);
                        }
                    }
                }

                mycollider.collide(inCollideList);
            }
        }