public SquareSprite(string id) : base(id) { AddComponent(new SpriteComponent("Textures/square", 0, new Vector2(1, 1), Color.White, 0)); AddComponent(new PositionComponent(new Vector3(0, 0, 0))); square = GetComponent <SpriteComponent>(); pos = GetComponent <PositionComponent>(); }
public override void Start() { playerSprite = Entity.Get <SpriteComponent>(); playerController = Entity.Get <CharacterComponent>(); //Please remember that in the GameStudio element the parameter Step Height is extremely important, it not set properly it will cause the entity to snap fast to the ground playerController.JumpSpeed = 5.0f; playerController.Gravity = new Vector3(0.0f, -10.0f, 0.0f); playerController.FallSpeed = 10.0f; playerController.ProcessCollisions = true; if (!IsLiveReloading) { Script.AddTask(async() => { while (Game.IsRunning) { var collision = await playerController.NewCollision(); // Stop if we collide from side foreach (var contact in collision.Contacts) { if (contact.Normal.X < -0.5f || contact.Normal.X > 0.5f) { movingToTarget = false; break; } } } }); PlayIdle(); } }
public void SetupBackground() { var entityId3 = EntityManager.GetEntityManager().NewEntity(); //var renderComponent3 = new RenderComponentBuilder() // .Position(0, 0, 1) // .Dimensions(1000, 1000).Build(); //ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3); var renderComponent3 = new RenderComponent() { DimensionsComponent = new DimensionsComponent() { Height = 1000, Width = 1000 } }; var positionComponent3 = new PositionComponent() { Position = new Vector2(0, 0), ZIndex = 1 }; var spriteComponent3 = new SpriteComponent() { SpriteName = "Grass" }; ComponentManager.Instance.AddComponentToEntity(spriteComponent3, entityId3); ComponentManager.Instance.AddComponentToEntity(positionComponent3, entityId3); ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3); }
public override void Start() { var backgroundCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/titleBackground.png"), "MenuBackground"); Menu.Owner.Attach(backgroundCmp); var titleSpriteCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/title.png"), "Menu"); Menu.Owner.Attach(titleSpriteCmp); var startCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/pressStartOff.png"), "Menu"); startCmp.Position = new Vector2(0, -200); Menu.Owner.Attach(startCmp); m_startPulseCmp = new SpriteComponent(Sprite.CreateFromTexture("Graphics/pressStartOn.png"), "Menu"); m_startPulseCmp.Position = new Vector2(0, -200); Menu.Owner.Attach(m_startPulseCmp); m_startTime = Engine.RealTime.TimeMS; Game.GameMusic.PlayMenuMusic(); AudioStreamPlaylist playlist = new AudioStreamPlaylist(); //playlist.Add(Game.GameMusic.Tracks["TitleStream"]); //playlist.Add(Game.GameMusic.Tracks["MenuStream"]); Engine.AudioStreamManager.Playlist = playlist; Engine.AudioStreamManager.Playlist.Play(); }
public async Task Test() { var client = StartClient(); await client.WaitIdleAsync(); var prototypeManager = client.ResolveDependency <IPrototypeManager>(); var resourceCache = client.ResolveDependency <IResourceCache>(); await client.WaitAssertion(() => { foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>()) { if (!proto.Components.ContainsKey("Sprite")) { continue; } Assert.DoesNotThrow(() => { var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList(); }, "Prototype {0} threw an exception when getting its textures.", proto.ID); } }); }
public PlayerBullet() { SpriteComponent spriteComponent = new SpriteComponent(this); spriteComponent.Image = Resources.PlayerBullet; AddComponent(spriteComponent); BoxCollider boxCollider = new BoxCollider(this); boxCollider.Size = spriteComponent.Image.Size; AddComponent(boxCollider); ScrollingComponent scrolling = new ScrollingComponent(this); scrolling.Speed = 200f; scrolling.ScrollY = true; scrolling.YAddNegative = true; AddComponent(scrolling); LimitLocationDelete limit = new LimitLocationDelete(this); AddComponent(limit); DamageSystem damageSystem = new DamageSystem(this); damageSystem.HitAbleTag = "Enemy"; AddComponent(damageSystem); }
public static IRsiStateLike RsiStateLike(this SpriteSpecifier specifier) { var resC = IoCManager.Resolve <IResourceCache>(); switch (specifier) { case SpriteSpecifier.Texture tex: return(tex.GetTexture(resC)); case SpriteSpecifier.Rsi rsi: return(rsi.GetState(resC)); case SpriteSpecifier.EntityPrototype prototypeIcon: var protMgr = IoCManager.Resolve <IPrototypeManager>(); if (!protMgr.TryIndex <EntityPrototype>(prototypeIcon.EntityPrototypeId, out var prototype)) { Logger.Error("Failed to load PrototypeIcon {0}", prototypeIcon.EntityPrototypeId); return(SpriteComponent.GetFallbackState(resC)); } return(SpriteComponent.GetPrototypeIcon(prototype, resC)); default: throw new NotSupportedException(); } }
/// <summary> /// Stops the animation of the provided sprite component. /// </summary> /// <param name="spriteComponent">the sprite component to stop</param> public void Stop(SpriteComponent spriteComponent) { spriteComponent.ElapsedTime = 0; spriteComponent.CurrentIndexIndex = 0; spriteComponent.ClearAnimations(); playingSprites.Remove(spriteComponent); }
private void Initialize(Vector2 focusPosition, Vector2[] collisionMesh) { this.Transform.Position = focusPosition + offset; RigidBodyComponent rigidComponent = new RigidBodyComponent(); RigidBody r = rigidComponent.RigidBody; r.SetBodyType(BodyType.Dynamic); r.SetMaterial(Material); r.SetCollider(new PolygonCollider(collisionMesh)); r.CollisionMatrix.Clear(); r.CollisionMatrix.AddLayer((int)Layers.Cue); r.CollisionMatrix.AddMaskLayer((int)Layers.WhiteBall); //r.CollisionLayer.AddLayer((long)Layers.Cue); //r.CollisionMask.AddLayer((long)Layers.WhiteBall); r.CollisionListener = this; this.Add(rigidComponent); Texture2D texture = Assets.Get <Texture2D>("Textures", $"cue"); SpriteComponent component = new SpriteComponent(new Sprite(texture) { Name = "cue" }, Size.X / texture.Width); this.Add(component); this.Add(new SoundComponent(Assets.Get <SoundEffect>("SoundEffects", "cue_ball_mockup"))); }
public void OnMatchVictory(object eventParamater) { m_ball.Owner.RigidBodyCmp.SetPosition(Vector2.Zero); m_ball.Owner.RigidBodyCmp.Body.Enabled = false; SpriteComponent ballSprite = m_ball.Owner.FindComponent <SpriteComponent>(); ballSprite.Visible = false; foreach (Player player in m_players) { player.ResetState(); } if (m_arena.LeftGoal.Score == m_arena.RightGoal.Score) { Vector2[] playerPos = new Vector2[] { new Vector2(-120, 100), new Vector2(-60, 100), new Vector2(60, 100), new Vector2(120, 100) }; foreach (Player player in m_players) { player.Owner.RigidBodyCmp.SetPosition(playerPos[(int)player.PlayerIndex]); } } else { Team defeatedTeam; if (m_arena.LeftGoal.Score > m_arena.RightGoal.Score) { defeatedTeam = m_arena.LeftGoal.Team; } else { defeatedTeam = m_arena.RightGoal.Team; } Vector2[] playerPos = new Vector2[] { new Vector2(120, 100), new Vector2(-120, 100), new Vector2(200, 200), new Vector2(-200, 200) }; foreach (Player player in m_players) { if (player.Team == defeatedTeam) { player.Owner.RigidBodyCmp.Body.Enabled = false; player.Properties.ControlDisabled.Set(); SpriteComponent playerSprite = player.Owner.FindComponent <SpriteComponent>(); playerSprite.Visible = false; player.ShadowCmp.Visible = false; } player.Owner.RigidBodyCmp.SetPosition(playerPos[(int)player.PlayerIndex]); } } //Camera.Focus(Arena.CupCamFocus); Camera.FocusAuto(); }
private void AddMark() { var markColor = Player.PlayerColors[2]; markColor = Color.Lerp(markColor, Color.White, 0.35f); var sprite = Sprite.Create("Graphics/Marks/Marks-assets/MarkSprites.lua::Dash"); SpriteComponent spriteCmp = new SpriteComponent(sprite, "GroundOverlay3"); spriteCmp.Orientation = -LBE.MathHelper.Angle(Vector2.UnitY, Direction); spriteCmp.Position = Player.Position; sprite.Color = markColor; sprite.AnimationIndex = Engine.Random.Next(0, 4); float decay = 0.93f; float minAlpha = 0.01f; foreach (var cmp in m_sprites) { cmp.Sprite.Alpha = minAlpha + (cmp.Sprite.Alpha - minAlpha) * decay; } m_sprites.Add(spriteCmp); Game.GameManager.Arena.Owner.Attach(spriteCmp); }
public static IDirectionalTextureProvider DirFrame0(this SpriteSpecifier specifier) { var resc = IoCManager.Resolve <IResourceCache>(); switch (specifier) { case SpriteSpecifier.Texture tex: return(resc.GetResource <TextureResource>(SpriteComponent.TextureRoot / tex.TexturePath).Texture); case SpriteSpecifier.Rsi rsi: if (resc.TryGetResource <RSIResource>(SpriteComponent.TextureRoot / rsi.RsiPath, out var theRsi)) { if (theRsi.RSI.TryGetState(rsi.RsiState, out var state)) { return(state); } } return(resc.GetFallback <TextureResource>().Texture); case SpriteSpecifier.EntityPrototype prototypeIcon: var protMgr = IoCManager.Resolve <IPrototypeManager>(); if (!protMgr.TryIndex <EntityPrototype>(prototypeIcon.EntityPrototypeId, out var prototype)) { Logger.Error("Failed to load PrototypeIcon {0}", prototypeIcon.EntityPrototypeId); return(resc.GetFallback <TextureResource>().Texture); } return(SpriteComponent.GetPrototypeIcon(prototype, resc) ?? resc.GetFallback <TextureResource>().Texture); default: throw new NotImplementedException(); } }
public async Task Test() { var(client, _) = await StartConnectedServerClientPair(new ClientContentIntegrationOption() { Pool = false }, new ServerContentIntegrationOption() { Pool = false }); var prototypeManager = client.ResolveDependency <IPrototypeManager>(); var resourceCache = client.ResolveDependency <IResourceCache>(); await client.WaitAssertion(() => { foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>()) { if (proto.Abstract || !proto.Components.ContainsKey("Sprite")) { continue; } Assert.DoesNotThrow(() => { var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList(); }, "Prototype {0} threw an exception when getting its textures.", proto.ID); } }); }
private void InitCup() { m_cupCamFocus = new GameObject("CupCam Focus"); m_cupCamFocus.Position = new Vector2(0, 200); Sprite spriteCupLeft = Sprite.Create("Graphics/cupSprite.lua::Sprite"); m_cupSpriteLeftCmp = new SpriteComponent(spriteCupLeft, "GroundOverlay1"); m_cupSpriteLeftCmp.Sprite.Scale = new Vector2(0.10f, 0.10f); Owner.Attach(m_cupSpriteLeftCmp); int cupId = Math.Min(LeftGoal.Team.ConsecutiveWins, 7); string animationNameLeft = "Cup" + cupId.ToString(); m_cupSpriteLeftCmp.Sprite.SetAnimation(animationNameLeft); m_cupSpriteLeftCmp.Sprite.Playing = true; m_cupSpriteLeftCmp.Position = new Vector2(-Engine.Debug.EditSingle("CupXOffset"), Engine.Debug.EditSingle("CupYOffset")); Sprite spriteCupRight = Sprite.Create("Graphics/cupSprite.lua::Sprite"); m_cupSpriteRightCmp = new SpriteComponent(spriteCupRight, "GroundOverlay1"); m_cupSpriteRightCmp.Sprite.Scale = new Vector2(0.10f, 0.10f); Owner.Attach(m_cupSpriteRightCmp); cupId = Math.Min(RightGoal.Team.ConsecutiveWins, 7); string animationNameRight = "Cup" + cupId.ToString(); m_cupSpriteRightCmp.Sprite.SetAnimation(animationNameRight); m_cupSpriteRightCmp.Sprite.Playing = true; m_cupSpriteRightCmp.Position = new Vector2(Engine.Debug.EditSingle("CupXOffset"), Engine.Debug.EditSingle("CupYOffset")); Engine.World.EventManager.AddListener((int)EventId.Victory, OnMatchVictory); }
public static void MakePlayer(Scene scene, float x, float y) { Entity entity = scene.NewEntity(); RenderComponent renderComponent = new RenderComponent(20, 0, true); entity.AddComponent(renderComponent); SpriteComponent sc = new SpriteComponent(scene.GS, "player"); /* * Frame frame = sc.Sprite.DefaultAnimationObject.Frames[0]; * sc.Width = frame.Width / 2; * sc.Height = frame.Height / 2; * sc.Stretched = true; */ entity.AddComponent(sc); entity.AddComponent(new PlayerComponent() { Lives = 5, Bombs = 2 }); BodyComponent body = new BodyComponent(x, y); body.Pen = new Vector4(0, 0, 1, 1); entity.AddComponent(body); entity.Enable(); entity.AddToGroup("player"); entity = scene.NewEntity(); entity.AddComponent(new RenderComponent(2, 0, true) { Leader = renderComponent }); entity.AddComponent(new SpriteComponent(scene.GS, "s_hitbox")); entity.Enable(); entity.AddToGroup("hitbox"); }
public static Particle Create(EParticles particleType, Vector3 location, Vector3 force) { Particle particle = EntityFactory.Create <Particle>(string.Format("{0}Particle", particleType.ToString())); particle.AddComponent <TransformComponent>().Init(location); PhysicsComponent physics = particle.AddComponent <PhysicsComponent>(); physics.Init(BodyType.Dynamic, 0.94f, 0.5f); physics.ApplyForce(force, true); SpriteComponent sprite = particle.AddComponent <SpriteComponent>(); LightingComponent light = particle.AddComponent <LightingComponent>(); DespawnComponent despawn = particle.AddComponent <DespawnComponent>(); switch (particleType) { case EParticles.Spark: float lifeTime = SeedManager.Get().NextRandF(2.0f, 5.0f); sprite.Init(CollisionManager.Get().PointTexture); sprite.Scale = new Vector2(SeedManager.Get().NextRandF(5, 15), SeedManager.Get().NextRandF(5, 15)); sprite.AddColorFunction(x => { return(Color.Lerp(new Color(0.99f, 1.0f, 0.78f), new Color(1.0f, 0.0f, 0.0f), x)); }); sprite.AddOpacityFunction(x => { return(1.0f - x / lifeTime); }); light.Init(AssetManager.Get().Find <Texture2D>(ELightAssets.CircleLight), Vector2.Zero, new Vector2(0.4f, 0.4f)); light.AddColorFunction(x => { return(Color.Lerp(new Color(0.99f, 1.0f, 0.78f), new Color(1.0f, 0.0f, 0.0f), x)); }); light.AddBrightnessFunction(x => { return(1.0f - x / lifeTime); }); despawn.AddTimeTrigger(x => x > lifeTime); break; } return(particle); }
public override Task <Entity> CreateEntity(EntityHierarchyItemViewModel parent) { var name = ComputeNewName(parent, "Sprite"); var component = new SpriteComponent(); return(CreateEntityWithComponent(name, component)); }
public override void Initialize() { base.Initialize(); collidableComponent = Owner.GetComponent <CollidableComponent>(); spriteComponent = Owner.GetComponent <SpriteComponent>(); }
public async Task Test() { await using var pairTracker = await PoolManager.GetServerClient(); var client = pairTracker.Pair.Client; var prototypeManager = client.ResolveDependency <IPrototypeManager>(); var resourceCache = client.ResolveDependency <IResourceCache>(); await client.WaitRunTicks(5); await client.WaitAssertion(() => { foreach (var proto in prototypeManager.EnumeratePrototypes <EntityPrototype>()) { if (proto.NoSpawn || proto.Abstract || !proto.Components.ContainsKey("Sprite")) { continue; } Assert.DoesNotThrow(() => { var _ = SpriteComponent.GetPrototypeTextures(proto, resourceCache).ToList(); }, "Prototype {0} threw an exception when getting its textures.", proto.ID); } }); await client.WaitRunTicks(5); await pairTracker.CleanReturnAsync(); }
public override void OnRemove() { collidableComponent = null; spriteComponent = null; base.OnRemove(); }
public override void Process(Entity entity) { SpriteComponent sprite = entity.GetComponent <SpriteComponent>(); if (sprite.Texture == null) { return; } SpriteBatch spriteBatch = EntitySystem.BlackBoard.GetEntry <SpriteBatch>("SpriteBatch"); PositionComponent position = entity.GetComponent <PositionComponent>(); int width = sprite.Texture.Width / sprite.Speed.Length; int height = sprite.Texture.Height; int column = (int)sprite.Index; spriteBatch.Draw( sprite.Texture, position.Position, new Rectangle(width * column, 0, width, height), Color.White, 0, sprite.Anchor, 1, sprite.Effects, 0); }
protected override void WaitingForTurn(float delta) { UpdateCards(delta); if (growEntity != null) { SpriteComponent growSpriteComponent = growEntity.GetComponent <SpriteComponent>(); growSpriteComponent.Opacity += (0f - growSpriteComponent.Opacity) * 4f * delta; if (growSpriteComponent.Opacity <= 0.025f) { growEntity.Delete(); growEntity = null; } } if (playEntity != null) { SpriteComponent playSpriteComponent = playEntity.GetComponent <SpriteComponent>(); playSpriteComponent.Opacity += (0f - playSpriteComponent.Opacity) * 4f * delta; if (playSpriteComponent.Opacity <= 0.025f) { playEntity.Delete(); playEntity = null; } } }
public override void Initialize() { base.Initialize(); Sprite = Owner.GetComponent <SpriteComponent>(); Transform = Owner.GetComponent <ITransformComponent>(); }
public void OnHalfTimeTransition(object eventParamater) { m_ball.Owner.RigidBodyCmp.Body.Enabled = true; m_ball.Owner.RigidBodyCmp.Body.LinearVelocity = Vector2.Zero; m_ball.BallSprite.Alpha = 255; if (Arena.Description.SecondHalfStartInfo != null && !Arena.Description.SecondHalfStartInfo.UseBallLauncher) { m_ball.Owner.Position = Arena.Description.SecondHalfStartInfo.BallPosition; } else { m_ball.Owner.Position = Vector2.Zero; } m_ball.SetSlowMode(false); m_ball.Free(); m_ball.Reset(); SpriteComponent ballSprite = m_ball.Owner.FindComponent <SpriteComponent>(); ballSprite.Visible = true; SetPlayersInitialPos(true); foreach (Player player in m_players) { player.BallTrigger.Enabled = true; player.MagnetSensor.Enabled = true; } foreach (LauncherComponent launcher in Arena.Launchers) { launcher.Enabled = true; } }
//The camera cage keeps players from reaching the edge of the screen public int SetupCameraCage() { var cameraCage = EntityManager.GetEntityManager().NewEntity(); // var renderComponentCage = new RenderComponentBuilder() //// .Position((int)((int)viewportDimensions.X * 0.5), (int)(viewportDimensions.Y * 0.5), 2) // .Position(0, 0, 2) // .Dimensions((int)(viewportDimensions.X * 0.8), (int)(viewportDimensions.Y * 0.8)) // .Fixed(true).Build(); var cageSprite = new SpriteComponent() { SpriteName = "dot" }; var collisionComponentCage = new CollisionComponent() { IsCage = true, }; var offsetComponent = new RenderOffsetComponent() { Offset = new Vector2((float)(viewportDimensions.X * 0.25), (float)(viewportDimensions.Y * 0.25)) }; // ComponentManager.Instance.AddComponentToEntity(renderComponentCage, cameraCage); // ComponentManager.Instance.AddComponentToEntity(cageSprite, cameraCage); ComponentManager.Instance.AddComponentToEntity(collisionComponentCage, cameraCage); ComponentManager.Instance.AddComponentToEntity(offsetComponent, cameraCage); return(cameraCage); }
public override void OnAdded(Entity entity) { base.OnAdded(entity); SpriteComponent sprite = entity.GetComponent <SpriteComponent>(); sprite.Name = "spr/Link/Walk"; }
public override void LoadContent() { Gravity = new Vector2(0f, Gravity.Y * 21); var playerSpriteComponent = new SpriteComponent(GameCore.Content.Load <Texture2D>("_test_/3d-woman")); _playerBodyComponent = new BodyComponent(playerSpriteComponent.TextureSize * playerSpriteComponent.Scale, EntityType.Dynamic, EntityShape.Rectangle) { FixedRotation = true, }; CreateEntity("player", ScreenWidth * 0.5f, ScreenHeight * 0.2f) .AddComponent(playerSpriteComponent) .AddComponent(_playerBodyComponent); var groundSpriteComponent = new SpriteComponent(GameCore.GraphicsDevice.CreateTextureRectangle(ScreenWidth, 20, Color.Black)); CreateEntity("ground", ScreenWidth * 0.5f, groundSpriteComponent.TextureSize.Y * 0.5f) .AddComponent(groundSpriteComponent) .AddComponent(new BodyComponent(groundSpriteComponent.TextureSize, EntityType.Static, EntityShape.Rectangle)); _textComponent = ShowText(BuildDebugText(), y: 120f); base.LoadContent(); }
//--------------------------------------------------------------------------- public Weapon(string name, Guid parent) : base(name, parent) { TransformComponent transform = AddComponent <TransformComponent>(); transform.Init(new Vector3(40, 1, 20), Vector2.One, Vector2.UnitY, 0.0f); SpriteComponent sprite = AddComponent <SpriteComponent>(); sprite.Scale = new Vector2(1.5f, 1.5f); sprite.Offset = new Vector2(-20, 20); //EngineComponent engine = AddComponent<EngineComponent>(); //EnginePath pathRight = engine.AddPath(0, false); //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 0.4f, 0.0f)); //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 2.0f, 0.12f)); //pathRight.AddKeyframe(new Keyframe(new Vector3(15, 1, 80), 0.4f, 0.24f)); //EnginePath pathLeft = engine.AddPath(1, false); //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -0.4f, 0.0f)); //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -2.0f, 0.12f)); //pathLeft.AddKeyframe(new Keyframe(new Vector3(-15, 1, 80), -0.4f, 0.24f)); Init(); }
public void SetupBackgroundTiles(int width, int height) { for (var x = 0; x < width; x++) { for (var y = 0; y < height; y++) { var entityId3 = EntityManager.GetEntityManager().NewEntity(); //var renderComponent3 = new RenderComponentBuilder() // .Position(x * 1000, y * 1000, 1) // .Dimensions(1000, 1000).Build(); // ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3); var renderComponent3 = new RenderComponent() { DimensionsComponent = new DimensionsComponent() { Height = 1000, Width = 1000 } }; var positionComponent3 = new PositionComponent() { Position = new Vector2(x * 1000, y * 1000), ZIndex = 1 }; var spriteComponent3 = new SpriteComponent() { SpriteName = "Grass" }; ComponentManager.Instance.AddComponentToEntity(positionComponent3, entityId3); ComponentManager.Instance.AddComponentToEntity(renderComponent3, entityId3); ComponentManager.Instance.AddComponentToEntity(spriteComponent3, entityId3); } } }
/// <summary> /// Parses an xml sprite /// </summary> /// <param name="spriteElement">The sprite element to parse.</param> /// <returns></returns> private SpriteComponent ParseSpriteComponent(XElement spriteElement) { EntityIoLogger.WriteIoInformation(spriteElement, IoType.Component, _currentComponent.LineNumber()); var sprite = new SpriteComponent() { Height = ParseFloat(spriteElement.Element("height"), "height"), Width = ParseFloat(spriteElement.Element("width"), "width"), SourceRect = ParseNullableRectangle(spriteElement.Element("texturerect"), "texturerect"), Color = ParseColor(spriteElement.Element("color"), "color"), Rotatation = ParseFloat(spriteElement.Element("rotation"), "rotation"), Scale = ParseVector2(spriteElement.Element("scale"), "scale", Vector2.One), SpriteEffect = ParseSpriteEffects(spriteElement.Element("spriteeffects")), DepthLayer = ParseFloat(spriteElement.Element("depth"), "depth"), Texture = _renderableController.GetTextureByFilename(spriteElement.Element("texture").Value), }; /* If the origin is set in the XML file, use that. Otherwise, * default to the middle of the sprite. */ sprite.Origin = spriteElement.Element("origin") == null ? new Vector2(sprite.Texture.Width / 2, sprite.Texture.Height / 2) : ParseVector2(spriteElement.Element("origin"), "origin"); return(sprite); }
public Enemy() : base(new Cog.Vector2(32f, 32f)) { timeSinceJump = Engine.RandomFloat() * -.1f; sc = SpriteComponent.RegisterOn(this, Program.Pixel); sc.Origin = Vector2.One / 2f; sc.Color = Program.Foreground; }
public Snapshot() { Size = new Cog.Vector2(256f, 96f); Sprite = SpriteComponent.RegisterOn(this, Program.Pixel); Sprite.Origin = new Vector2(0f, 0f); Sprite.Color = Program.Foreground; Sprite.Color.A = 0; Sprite.Scale = Size; RegisterEvent<UpdateEvent>(0, Update); }
public Player() : base(new Cog.Vector2(24f, 64f)) { texture = Program.Player; sprite = SpriteComponent.RegisterOn(this, texture); sprite.Origin = new Vector2(textureSize.X / 2f, textureSize.Y / 2f); sprite.Color = Program.Foreground; RegisterEvent<KeyDownEvent>((int)Keyboard.Key.R, 0, Restart); Depth = -1; }
protected override async Task LoadContent() { await base.LoadContent(); // sets the virtual resolution areaSize = new Vector2(GraphicsDevice.BackBuffer.Width, GraphicsDevice.BackBuffer.Height); // Creates the camera CameraComponent.UseCustomProjectionMatrix = true; CameraComponent.ProjectionMatrix = SpriteBatch.CalculateDefaultProjection(new Vector3(areaSize, 200)); // Load assets groundSprites = Asset.Load<SpriteGroup>("GroundSprite"); ballSprite1 = Asset.Load<Texture>("Sphere1"); ballSprite2 = Asset.Load<Texture>("Sphere2"); ball = Asset.Load<Entity>("Ball"); // create fore/background entities foreground = new Entity(); background = new Entity(); foreground.Add(new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = groundSprites }, CurrentFrame = 1 }); background.Add(new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = groundSprites }, CurrentFrame = 0 }); Scene.AddChild(ball); Scene.AddChild(foreground); Scene.AddChild(background); spriteComponent = ball.Get(SpriteComponent.Key); transfoComponent = ball.Get(TransformComponent.Key); transfoComponent.Position.X = areaSize.X / 2; transfoComponent.Position.Y = areaSize.Y / 2; var decorationScalings = new Vector3(areaSize.X, areaSize.Y, 1); background.Get(TransformComponent.Key).Scale = decorationScalings; foreground.Get(TransformComponent.Key).Scale = decorationScalings; background.Get(TransformComponent.Key).Position = new Vector3(0, 0, -1); foreground.Get(TransformComponent.Key).Position = new Vector3(0, areaSize.Y, 1); SpriteAnimation.Play(spriteComponent, 0, spriteComponent.SpriteProvider.SpritesCount-1, AnimationRepeatMode.LoopInfinite, 30); }
protected override async Task LoadContent() { await base.LoadContent(); // sets the virtual resolution areaSize = new Vector2(GraphicsDevice.BackBuffer.Width, GraphicsDevice.BackBuffer.Height); // Creates the camera CameraComponent.UseCustomProjectionMatrix = true; CameraComponent.ProjectionMatrix = Matrix.OrthoRH(areaSize.X, areaSize.Y, -2, 2); // Load assets groundSprites = Asset.Load<SpriteSheet>("GroundSprite"); ballSprite1 = Asset.Load<SpriteSheet>("BallSprite1"); ballSprite2 = Asset.Load<SpriteSheet>("BallSprite2"); ball = new Entity { new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = Asset.Load<SpriteSheet>("BallSprite1") } } }; // create fore/background entities foreground = new Entity(); background = new Entity(); foreground.Add(new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = groundSprites }, CurrentFrame = 1 }); background.Add(new SpriteComponent { SpriteProvider = new SpriteFromSheet { Sheet = groundSprites }, CurrentFrame = 0 }); Scene.Entities.Add(ball); Scene.Entities.Add(foreground); Scene.Entities.Add(background); spriteComponent = ball.Get<SpriteComponent>(); transfoComponent = ball.Get<TransformComponent>(); var decorationScalings = new Vector3(areaSize.X, areaSize.Y, 1); background.Get<TransformComponent>().Scale = decorationScalings; foreground.Get<TransformComponent>().Scale = decorationScalings/2; background.Get<TransformComponent>().Position = new Vector3(0, 0, -1); foreground.Get<TransformComponent>().Position = new Vector3(0, 0, 1); SpriteAnimation.Play(spriteComponent, 0, spriteComponent.SpriteProvider.SpritesCount-1, AnimationRepeatMode.LoopInfinite, 30); }
private void LoadEntity(XElement xml) { GameEntity entity = new GameEntity(); string name = xml.RequireAttribute("name").Value; if (entities.ContainsKey(name)) throw new GameXmlException(xml, "You have defined two entities both named \"" + name + "\"."); entity.Name = name; entity.MaxAlive = xml.TryAttribute<int>("limit", 50); SpriteComponent spritecomp = null; PositionComponent poscomp = null; StateComponent statecomp = new StateComponent(); entity.AddComponent(statecomp); try { foreach (XElement xmlComp in xml.Elements()) { switch (xmlComp.Name.LocalName) { case "EditorData": break; case "Tilesheet": if (spritecomp == null) { spritecomp = new SpriteComponent(); entity.AddComponent(spritecomp); } if (poscomp == null) { poscomp = new PositionComponent(); entity.AddComponent(poscomp); } spritecomp.LoadTilesheet(xmlComp); break; case "Trigger": statecomp.LoadStateTrigger(xmlComp); break; case "Sprite": if (spritecomp == null) { spritecomp = new SpriteComponent(); entity.AddComponent(spritecomp); } if (poscomp == null) { poscomp = new PositionComponent(); entity.AddComponent(poscomp); } spritecomp.LoadXml(xmlComp); break; case "Position": if (poscomp == null) { poscomp = new PositionComponent(); entity.AddComponent(poscomp); } poscomp.LoadXml(xmlComp); break; case "Death": entity.OnDeath += EffectParser.LoadTriggerEffect(xmlComp); break; case "GravityFlip": entity.IsGravitySensitive = xmlComp.GetValue<bool>(); break; default: entity.GetOrCreateComponent(xmlComp.Name.LocalName).LoadXml(xmlComp); break; } } } catch (GameXmlException ex) { ex.Entity = name; throw; } entities.Add(name, entity); }
public void SetSprite(string spriteName) { if(sprite) sprite.spriteName = spriteName; else sprite = new SpriteComponent(spriteName, this); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { AggregateFactory = new AggregateFactory(this); WeaponFactory = new WeaponFactory(this); DoorFactory = new DoorFactory(this); RoomFactory = new RoomFactory(this); CollectableFactory = new CollectibleFactory(this); WallFactory = new WallFactory(this); EnemyFactory = new EnemyFactory(this); // Initialize Components PlayerComponent = new PlayerComponent(); LocalComponent = new LocalComponent(); RemoteComponent = new RemoteComponent(); PositionComponent = new PositionComponent(); MovementComponent = new MovementComponent(); MovementSpriteComponent = new MovementSpriteComponent(); SpriteComponent = new SpriteComponent(); DoorComponent = new DoorComponent(); RoomComponent = new RoomComponent(); HUDSpriteComponent = new HUDSpriteComponent(); HUDComponent = new HUDComponent(); InventoryComponent = new InventoryComponent(); InventorySpriteComponent = new InventorySpriteComponent(); ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this); EquipmentComponent = new EquipmentComponent(); WeaponComponent = new WeaponComponent(); BulletComponent = new BulletComponent(); PlayerInfoComponent = new PlayerInfoComponent(); WeaponSpriteComponent = new WeaponSpriteComponent(); StatsComponent = new StatsComponent(); EnemyAIComponent = new EnemyAIComponent(); CollectibleComponent = new CollectibleComponent(); CollisionComponent = new CollisionComponent(); TriggerComponent = new TriggerComponent(); EnemyComponent = new EnemyComponent(); QuestComponent = new QuestComponent(); LevelManager = new LevelManager(this); SpriteAnimationComponent = new SpriteAnimationComponent(); SkillProjectileComponent = new SkillProjectileComponent(); SkillAoEComponent = new SkillAoEComponent(); SkillDeployableComponent = new SkillDeployableComponent(); //TurretComponent = new TurretComponent(); //TrapComponent = new TrapComponent(); //PortableShopComponent = new PortableShopComponent(); //PortableShieldComponent = new PortableShieldComponent(); //MotivateComponent = new MotivateComponent(); //FallbackComponent = new FallbackComponent(); //ChargeComponent = new ChargeComponent(); //HealingStationComponent = new HealingStationComponent(); //ExplodingDroidComponent = new ExplodingDroidComponent(); base.Initialize(); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { AggregateFactory = new AggregateFactory(this); WeaponFactory = new WeaponFactory(this); DoorFactory = new DoorFactory(this); RoomFactory = new RoomFactory(this); CollectableFactory = new CollectibleFactory(this); WallFactory = new WallFactory(this); EnemyFactory = new EnemyFactory(this); SkillEntityFactory = new SkillEntityFactory(this); NPCFactory = new NPCFactory(this); // Initialize Components PlayerComponent = new PlayerComponent(); LocalComponent = new LocalComponent(); RemoteComponent = new RemoteComponent(); PositionComponent = new PositionComponent(); MovementComponent = new MovementComponent(); MovementSpriteComponent = new MovementSpriteComponent(); SpriteComponent = new SpriteComponent(); DoorComponent = new DoorComponent(); RoomComponent = new RoomComponent(); HUDSpriteComponent = new HUDSpriteComponent(); HUDComponent = new HUDComponent(); InventoryComponent = new InventoryComponent(); InventorySpriteComponent = new InventorySpriteComponent(); ContinueNewGameScreen = new ContinueNewGameScreen(graphics, this); EquipmentComponent = new EquipmentComponent(); WeaponComponent = new WeaponComponent(); BulletComponent = new BulletComponent(); PlayerInfoComponent = new PlayerInfoComponent(); WeaponSpriteComponent = new WeaponSpriteComponent(); StatsComponent = new StatsComponent(); EnemyAIComponent = new EnemyAIComponent(); NpcAIComponent = new NpcAIComponent(); CollectibleComponent = new CollectibleComponent(); CollisionComponent = new CollisionComponent(); TriggerComponent = new TriggerComponent(); EnemyComponent = new EnemyComponent(); NPCComponent = new NPCComponent(); //QuestComponent = new QuestComponent(); LevelManager = new LevelManager(this); SpriteAnimationComponent = new SpriteAnimationComponent(); SkillProjectileComponent = new SkillProjectileComponent(); SkillAoEComponent = new SkillAoEComponent(); SkillDeployableComponent = new SkillDeployableComponent(); SoundComponent = new SoundComponent(); ActorTextComponent = new ActorTextComponent(); TurretComponent = new TurretComponent(); TrapComponent = new TrapComponent(); ExplodingDroidComponent = new ExplodingDroidComponent(); HealingStationComponent = new HealingStationComponent(); PortableShieldComponent = new PortableShieldComponent(); PortableStoreComponent = new PortableStoreComponent(); ActiveSkillComponent = new ActiveSkillComponent(); PlayerSkillInfoComponent = new PlayerSkillInfoComponent(); Quests = new List<Quest>(); #region Initialize Effect Components AgroDropComponent = new AgroDropComponent(); AgroGainComponent = new AgroGainComponent(); BuffComponent = new BuffComponent(); ChanceToSucceedComponent = new ChanceToSucceedComponent(); ChangeVisibilityComponent = new ChangeVisibilityComponent(); CoolDownComponent = new CoolDownComponent(); DamageOverTimeComponent = new DamageOverTimeComponent(); DirectDamageComponent = new DirectDamageComponent(); DirectHealComponent = new DirectHealComponent(); FearComponent = new FearComponent(); HealOverTimeComponent = new HealOverTimeComponent(); InstantEffectComponent = new InstantEffectComponent(); KnockBackComponent = new KnockBackComponent(); TargetedKnockBackComponent = new TargetedKnockBackComponent(); ReduceAgroRangeComponent = new ReduceAgroRangeComponent(); ResurrectComponent = new ResurrectComponent(); StunComponent = new StunComponent(); TimedEffectComponent = new TimedEffectComponent(); EnslaveComponent = new EnslaveComponent(); CloakComponent = new CloakComponent(); #endregion base.Initialize(); }
/// <summary> /// LoadContent will be called once per game and is the place to load /// all of your content. /// </summary> protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); camera = new Camera2D(new Vector2(0f, 0f), new Vector2(1f), new Vector2(3f)); this.Services.AddService(typeof(SpriteBatch), spriteBatch); this.Services.AddService(typeof(Camera2D), camera); texture1 = this.Content.Load<Texture2D>("tex"); TileCatalog cat1 = new TileCatalog(texture1, 15, 15); Random rand = new Random(DateTime.Now.Millisecond); TileMap map1 = new TileMap(100, 100); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { map1.SetTile(i, j, new Tile(rand.Next(1, cat1.TilePositions.Count))); } } TileLayer layer1 = new TileLayer(cat1, map1, 0.5f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), false, LayerMovementDirection.None); texture2 = this.Content.Load<Texture2D>("tiles2"); TileCatalog cat2 = new TileCatalog(texture2, 48, 48); TileMap map2 = new TileMap(10, 500); for (int i = 0; i < 10; i++) { for (int j = 0; j < 500; j++) { map2.SetTile(i, j, new Tile(rand.Next(1, cat2.TilePositions.Count))); } } TileLayer layer2 = new TileLayer(cat2, map2, 1.0f, false, new Vector2(0, 0), new Vector2(1f, 1f), new Vector2(3f), true, LayerMovementDirection.Up); scene = new TileScene(); scene.AddLayer(layer2); scene.AddLayer(layer1); TileComponent component = new TileComponent(this, scene, baseScreenSize, resultionIndependent); this.Components.Add(component); TextureLayer tLayer1 = new TextureLayer(this.texture1, 1f, false, new Vector2(20f), Vector2.One, new Vector2(1.5f,1.5f), true, Anchor.LowerRight); TextureLayer tLayer2 = new TextureLayer(this.texture2, 0.5f, false, new Vector2(10f), Vector2.One, new Vector2(5f), true, Anchor.LowerLeft); TextureScene tScene = new TextureScene(); tScene.AddLayer(tLayer1); tScene.AddLayer(tLayer2); TextureComponent tComponent = new TextureComponent(this, tScene, baseScreenSize, resultionIndependent); this.Components.Add(tComponent); texture1 = this.Content.Load<Texture2D>("megax"); SpriteCatalog scatalog = new SpriteCatalog(texture1, 36, 42); SpriteSequence[] spriteSecuences = new SpriteSequence[2]; SpriteSequence spriteSecuence1 = new SpriteSequence(7, 0); spriteSecuence1.StepTime = 400; spriteSecuence1.SetFrame(0,new SpriteFrame(1)); spriteSecuence1.SetFrame(1, new SpriteFrame(1)); spriteSecuence1.SetFrame(2, new SpriteFrame(1)); spriteSecuence1.SetFrame(3, new SpriteFrame(1)); spriteSecuence1.SetFrame(4, new SpriteFrame(2)); spriteSecuence1.SetFrame(5, new SpriteFrame(3)); spriteSecuence1.SetFrame(6, new SpriteFrame(1)); spriteSecuences[0] = spriteSecuence1; SpriteSequence spriteSecuence2 = new SpriteSequence(10, 0); spriteSecuence2.StepTime = 90; spriteSecuence2.SetFrame(0, new SpriteFrame(5)); spriteSecuence2.SetFrame(1, new SpriteFrame(6)); spriteSecuence2.SetFrame(2, new SpriteFrame(7)); spriteSecuence2.SetFrame(3, new SpriteFrame(8)); spriteSecuence2.SetFrame(4, new SpriteFrame(9)); spriteSecuence2.SetFrame(5, new SpriteFrame(10)); spriteSecuence2.SetFrame(6, new SpriteFrame(11)); spriteSecuence2.SetFrame(7, new SpriteFrame(12)); spriteSecuence2.SetFrame(8, new SpriteFrame(13)); spriteSecuence2.SetFrame(9, new SpriteFrame(14)); spriteSecuences[1] = spriteSecuence2; SpriteLayer spLayer = new SpriteLayer(scatalog, spriteSecuences, 1.0f, true, new Vector2(10f), Vector2.One, Vector2.Zero, SpriteEffects.None, true, Anchor.None); spLayer.CurrentSequence = 2; SpriteScene spScene = new SpriteScene(); spScene.AddLayer(spLayer); SpriteComponent spComponent = new SpriteComponent(this, spScene, baseScreenSize, resultionIndependent); this.Components.Add(spComponent); }
private static SpriteComponent CreateSpriteComponent(int nbOfFrames) { var spriteGroup = new SpriteGroup { Images = new List<Sprite>() }; var sprite = new SpriteComponent { SpriteProvider = new SpriteFromSpriteGroup { SpriteGroup = spriteGroup } }; // add a few sprites for (int i = 0; i < nbOfFrames; i++) { spriteGroup.Images.Add(new Sprite(Guid.NewGuid().ToString())); } return sprite; }
public RotateAnimation(SpriteComponent i_BoundSprite) : base(i_BoundSprite) { m_TimeLeft = r_FadeEffectTimeSpan; m_AnimationTime = r_FadeEffectTimeSpan; }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { AggregateFactory = new AggregateFactory(this); // Initialize Components PlayerComponent = new PlayerComponent(); LocalComponent = new LocalComponent(); RemoteComponent = new RemoteComponent(); PositionComponent = new PositionComponent(); MovementComponent = new MovementComponent(); MovementSpriteComponent = new MovementSpriteComponent(); SpriteComponent = new SpriteComponent(); DoorComponent = new DoorComponent(); RoomComponent = new RoomComponent(); HUDSpriteComponent = new HUDSpriteComponent(); HUDComponent = new HUDComponent(); CharacterSelectionScreen = new CharacterSelectionScreen(graphics, this); LevelManager = new LevelManager(this); base.Initialize(); }
private void LoadSpriteComponent(GameEntity entity, SpriteComponentInfo componentInfo) { var spritecomp = new SpriteComponent(); entity.AddComponent(spritecomp); spritecomp.LoadInfo(componentInfo); }
/// <summary> /// Allows the game to perform any initialization it needs to before starting to run. /// This is where it can query for any required services and load any non-graphic /// related content. Calling base.Initialize will enumerate through any components /// and initialize them as well. /// </summary> protected override void Initialize() { AggregateFactory = new AggregateFactory(this); // Initialize Components PlayerComponent = new PlayerComponent(); LocalComponent = new LocalComponent(); RemoteComponent = new RemoteComponent(); PositionComponent = new PositionComponent(); MovementComponent = new MovementComponent(); MovementSpriteComponent = new MovementSpriteComponent(); SpriteComponent = new SpriteComponent(); base.Initialize(); }