コード例 #1
0
        public void SerializeAndDeserialize_WhenSpriteIsNotNull()
        {
            // Arrange
            var texture       = Substitute.For <ITexture>();
            var sprite        = new Sprite(texture, Vector2.Zero, Vector2.Zero, Vector2.Zero, 0);
            var spriteAssetId = AssetId.CreateUnique();

            var component = new SpriteRendererComponent
            {
                Visible          = false,
                SortingLayerName = "Some sorting layer",
                OrderInLayer     = 2,
                Sprite           = sprite
            };

            AssetStore.GetAssetId(sprite).Returns(spriteAssetId);
            AssetStore.GetAsset <Sprite>(spriteAssetId).Returns(sprite);

            // Act
            var actual = SerializeAndDeserialize(component);

            // Assert
            Assert.That(actual.Visible, Is.EqualTo(component.Visible));
            Assert.That(actual.SortingLayerName, Is.EqualTo(component.SortingLayerName));
            Assert.That(actual.OrderInLayer, Is.EqualTo(component.OrderInLayer));
            Assert.That(actual.Sprite, Is.EqualTo(sprite));
        }
コード例 #2
0
ファイル: SceneExtensions.cs プロジェクト: joffarex/AcidarX
        public static void AddSprite
            (this Scene scene, TransformComponent transformComponent, SpriteRendererComponent spriteRendererComponent)
        {
            int entity = scene.CreateEntity();

            scene.AddComponent(entity, transformComponent);
            scene.AddComponent(entity, spriteRendererComponent);
        }
コード例 #3
0
            public (SpriteAnimationComponent, SpriteRendererComponent) AddSpriteAnimationAndRendererComponents()
            {
                var spriteAnimationComponent = new SpriteAnimationComponent();
                var spriteRendererComponent  = new SpriteRendererComponent();

                var entity = new Entity();

                entity.AddComponent(spriteAnimationComponent);
                entity.AddComponent(spriteRendererComponent);
                _scene.AddEntity(entity);

                return(spriteAnimationComponent, spriteRendererComponent);
            }
コード例 #4
0
    void IECSSystem.Execute(ECSEngine engine, ECSEntity[] entities)
    {
        for (int i = 0; i < entities.Length; i++)
        {
            ECSEntity entity = entities[i];

            PositionComponent       pc  = engine.GetComponent <PositionComponent>(entity);
            SpriteRendererComponent src = engine.GetComponent <SpriteRendererComponent>(entity);

            src.Sprite.position = pc.Position;
            engine.SetComponent <SpriteRendererComponent>(entity, src);

            src.Sprite.DrawTexture(src.Texture);
        }
    }
コード例 #5
0
ファイル: Renderer2DPass.cs プロジェクト: Zexyp/CrossEngine
        public override void Draw(Scene scene, Matrix4x4 viewProjectionMatrix, Framebuffer framebuffer = null)
        {
            if (framebuffer != null)
            {
                framebuffer.EnableColorDrawBuffer(scene.Pipeline.FbStructureIndex.Color, true);
                framebuffer.EnableColorDrawBuffer(scene.Pipeline.FbStructureIndex.Id, true);
            }

            // TODO: add transparency
            Renderer2D.BeginScene(viewProjectionMatrix);
            {
                if (bucket != null)
                {
                    foreach (var spEnt in bucket)
                    {
                        SpriteRendererComponent src = spEnt.Item2;
                        // check if enabled
                        if (!src.Usable)
                        {
                            continue;
                        }
                        TransformComponent trans = spEnt.Item1;

                        // forced z index
                        //if (!ForceZIndex)
                        //else

                        Matrix4x4 matrix = Matrix4x4.CreateScale(new Vector3(src.Size, 1.0f)) * Matrix4x4.CreateTranslation(new Vector3(src.DrawOffset, 0.0f)) * trans.WorldTransformMatrix;

                        //                          small check can be implemented later
                        if (src.TextureAsset == null)
                        {
                            Renderer2D.DrawQuad(matrix, src.Color, spEnt.CommonEntity.UID);
                        }
                        else if (src.TextureAsset.IsLoaded)
                        {
                            Renderer2D.DrawQuad(matrix, src.TextureAsset.Texture, src.Color, src.TextureOffsets, spEnt.CommonEntity.UID);
                        }
                    }
                }

                scene.OnRender(new SpriteRenderEvent());
            }
            Renderer2D.EndScene();
        }
コード例 #6
0
        public void SerializeAndDeserialize_WhenSpriteIsNull()
        {
            // Arrange
            var component = new SpriteRendererComponent
            {
                Visible          = false,
                SortingLayerName = "Some sorting layer",
                OrderInLayer     = 2,
                Sprite           = null
            };

            // Act
            var actual = SerializeAndDeserialize(component);

            // Assert
            Assert.That(actual.Visible, Is.EqualTo(component.Visible));
            Assert.That(actual.SortingLayerName, Is.EqualTo(component.SortingLayerName));
            Assert.That(actual.OrderInLayer, Is.EqualTo(component.OrderInLayer));
            Assert.That(actual.Sprite, Is.Null);
        }