Beispiel #1
0
        public void Init()
        {
            GL.ClearColor(Color4.LightSkyBlue);
            GL.Enable(EnableCap.DepthTest);
            GL.Enable(EnableCap.Texture2D);
            GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha);

            GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest);

            world   = new EcsWorld();
            systems = new EcsSystems(world)
                      .Add(new RenderSystem())
                      .Add(new CameraSystem())
                      .Inject(window)
                      .Inject(this);

            systems.Init();

            EcsEntity playerEntity = world.NewEntity();

            playerEntity.Replace(new CameraComponent(new Vector3(0, 5, 5), -90.0f, -45.0f, 60));

            EcsEntity groundEntity = world.NewEntity();

            groundEntity.Replace(new TransformationComponent()
            {
                Position = new Vector3(0, 0, 0),
                Rotation = new Quaternion(0, 0, 0),
                Scale    = new Vector3(1, 1, 1)
            });

            groundEntity.Replace(new RenderComponent()
            {
                geometry = ResourceManager.GetResource <Geometry>("GROUND_GEOMETRY"),
                shader   = ResourceManager.GetResource <Shader>("GROUND_SHADER"),
                diffuse  = ResourceManager.GetResource <Texture>("GROUND_TEXTURE")
            });

            MainMenu                = new MainMenu(window);
            window.Resize          += (e) => MainMenu.Resize(e.Width, e.Height);
            MainMenu.OnButtonClick += HandleMainMenuButton_Click;
        }
Beispiel #2
0
        public void Dispose()
        {
            ResourceManager.Free();

            window.Dispose();
        }