/** * Adiciona uma entidade na camada */ public void add(DefaultEntity entity) { entity.parentLayer = this; entityList.AddLast(entity); }
/** * 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); } }