public override void Update(float delta)
 {
     foreach (var c in Registery.GetComponentsOf <SampleComponent>())
     {
         c.DeltaTime += delta;
         Console.WriteLine(c.DeltaTime);
     }
 }
예제 #2
0
        public override void Update(GameTime gameTime)
        {
            var components = Registery.GetComponentsOf <TransformComponent>();

            foreach (var c in components)
            {
                c.Position += c.Velocity * (float)gameTime;
                var transform = Math1.Translate(Matrix4.Identity(), c.Position);
                var scale     = Math1.Scale(Matrix4.Identity(), new Vector3(c.Scale));

                c.Transform = transform * scale;
            }
        }
예제 #3
0
        public override void Update(GameTime gameTime)
        {
            var components = Registery.GetComponentsOf <RenderComponent>();
            var camera     = Registery.GetComponentsOf <CameraComponent>().FirstOrDefault();

            RenderCommand.SetClearColor(0.1f, 0.1f, 0.1f, 1.0f);
            RenderCommand.Clear();

            Render.BeginScene(camera.ViewProjectionMatrix);

            foreach (var c in components)
            {
                var transform = c.Record.GetComponent <TransformComponent>()?.Transform ?? Matrix4.Identity();
                Render.Submit(c.ShaderProgram, c.VertexArray, transform);
            }

            Render.EndScene();
        }
예제 #4
0
        public override void Update(GameTime gameTime)
        {
            var camera    = Registery.GetComponentsOf <CameraComponent>().FirstOrDefault();
            var transfrom = camera.Record.GetComponent <TransformComponent>();

            switch (camera.CameraType)
            {
            case CameraType.Orthographic:

                camera.ProjectionMatrix = Math1.Ortho(camera.Left, camera.Right, camera.Bottom, camera.Top, -1.0f, 1.0f);
                var transform = Math1.Translate(Matrix4.Identity(), transfrom.Position + transfrom.Velocity * (float)gameTime)
                                * Math1.Rotate(Matrix4.Identity(), Math1.Radians(transfrom.Rotation), new Vector3(0, 0, 1));

                camera.ViewMatrix           = transform.Inverse();
                camera.ViewProjectionMatrix = camera.ProjectionMatrix * camera.ViewMatrix;
                break;
            }

            base.Update(gameTime);
        }