public static Entity MakeCharacterEntity(Game game, string name, string image, Vector2 position, Rectangle frame) { var e = new Entity() { Game = game, Name = name }; var renderer = new RenderingAspect() { Name = "renderer" }; e.Aspects.Add(renderer); var sprite = new SpriteAspect() { Name = "sprite", ImageFile = image, ImageFrame = frame, OrientationAspect = "collider", LayerDepth = 0.3f, CoordinateType = CoordinateType.World }; e.Aspects.Add(sprite); var collider = new BoxCollisionAspect() { Name = "collider", Mass = 100, Position = position, IsStatic = false, Dimensions = frame }; e.Aspects.Add(collider); var respawn = new RespawnAspect() { Bounds = new Rectangle(-512, -512, 2048, 1600), RespawnPosition = position }; e.Aspects.Add(respawn); return e; }
protected override void InitSubclass() { collider = Owner.Aspects.FindFirst<BoxCollisionAspect>(); player = Entity.GetEntityByID(FirstLevel.PlayerID).Aspects.FindFirst <BoxCollisionAspect>(); sprite = Owner.Aspects.FindFirst<SpriteAspect>(); }
protected override void LoadSubclassContent() { var template = new Entity() { IsTemplate = true, Game = Owner.Game, Name = "PROJETILE", Enabled = false }; var projectileSprite = new SpriteAspect() { ImageFile = "Sprites/hobosquirrel", ImageFrame = new Rectangle(0, 154, 19, 12), OwnerID = template.EntityID, OrientationAspect = "orientation", LayerDepth = 0.3f, CoordinateType = CoordinateType.World, Scale = new Vector2(1.5f, 1.5f) }; template.Aspects.Add(projectileSprite); var orientation = new BoxCollisionAspect() { Name = "orientation", OwnerID = template.EntityID, Mass = 50f, CollisionGroup = EntityTemplates.PlayerCollisionGroup, OnCollision = (geom1, geom2, contactList) => { Entity e2 = Entity.GetEntityByID(BoxCollisionAspect.FindEntityByGeomID(geom2.Id)); if (e2 != null && e2.Name == "Enemy1") { e2.Aspects.FindFirst<RespawnAspect>().Respawn(); } return false; } }; template.Aspects.Add(orientation); var rotater = new PinwheelRotaterAspect() { RotationSpeed = .015f, OwnerID = template.EntityID }; template.Aspects.Add(rotater); var age = new AgeAspect() { OwnerID = template.EntityID }; template.Aspects.Add(age); var render = new RenderingAspect() { OwnerID = template.EntityID, Visible = false }; template.Aspects.Add(render); for (int i = 0; i < MaxNumberOfProjectiles; i++) { Projectiles[i] = (Entity)template.Clone(); Projectiles[i].Initialize(); Projectiles[i].LoadContent(); projectileDirections[i] = 1; bool foo = Projectiles[i].Enabled; } }
// TODO: Write Clone method for BoxCollisionAspect protected override IAspect CloneSubclass() { BoxCollisionAspect ba = new BoxCollisionAspect(); ba.Position = this.Position; ba.Rotation = this.Rotation; ba.OnCollision = this.OnCollision; ba.Mass = this.mass; ba.IsStatic = this.IsStatic; ba.Dimensions = this.dimensions; ba.Enabled = this.Enabled; ba.CollisionGroup = this.CollisionGroup; return ba; }
public static Entity NewStaticObjectEntity(Game game, string name, string image, Vector2 position, float layerDepth, CoordinateType coordinateType) { Entity e = new Entity(); e.Game = game; e.Name = name; RenderingAspect renderer = new RenderingAspect(); renderer.Name = "renderer"; e.Aspects.Add(renderer); SpriteAspect sprite = new SpriteAspect(); sprite.Name = "sprite"; sprite.ImageFile = image; sprite.OrientationAspect = "collider"; sprite.LayerDepth = layerDepth; sprite.CoordinateType = CoordinateType.World; e.Aspects.Add(sprite); BoxCollisionAspect collider = new BoxCollisionAspect(); collider.Dimensions = sprite.ImageFrame; collider.Name = "collider"; collider.Mass = 100; collider.Position = position; collider.IsStatic = true; e.Aspects.Add(collider); return e; }
protected override void InitSubclass() { orientation = Owner.Aspects.FindByName<BoxCollisionAspect>(boxColliderName); MoveSpeed = 500; sprite = Owner.Aspects.FindFirst<ISprite>(); projectileAttack = Owner.Aspects.FindFirst<ProjectileAspect>(); }
protected override void InitSubclass() { collider = Owner.Aspects.FindFirst<BoxCollisionAspect>(); }