Ejemplo n.º 1
0
        private void AddInputBindings()
        {
            input = SystemCore.GetSubsystem <InputManager>();
            input.AddKeyDownBinding("CameraForward", Keys.Up);
            input.AddKeyDownBinding("CameraBackward", Keys.Down);
            input.AddKeyDownBinding("CameraLeft", Keys.Left);
            input.AddKeyDownBinding("CameraRight", Keys.Right);

            var binding = input.AddKeyPressBinding("WireframeToggle", Keys.Space);

            binding.InputEventActivated += (x, y) => { SystemCore.Wireframe = !SystemCore.Wireframe; };
        }
Ejemplo n.º 2
0
        private static void AddCube(ProceduralCube shape, Effect effect, Vector3 position)
        {
            var gameObject = new GameObject();

            gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape),
                                                                BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount));
            gameObject.AddComponent(new EffectRenderComponent(effect));
            gameObject.AddComponent(new ShadowCasterComponent());
            gameObject.AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.box));
            gameObject.Transform.SetPosition(position);
            gameObject.GetComponent <PhysicsComponent>().Simulated = RandomHelper.CoinToss();
            SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject);
        }
Ejemplo n.º 3
0
        private void AddPhysicsCube()
        {
            ProceduralCube shape      = new ProceduralCube();
            var            gameObject = new GameObject();

            gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape),
                                                                BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount));
            gameObject.AddComponent(new EffectRenderComponent(EffectLoader.LoadSM5Effect("flatshaded")));
            gameObject.AddComponent(new ShadowCasterComponent());
            gameObject.AddComponent(new PhysicsComponent(true, true, PhysicsMeshType.box));
            gameObject.Transform.SetPosition(RandomHelper.GetRandomVector3(10, 100));
            SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject);
        }
Ejemplo n.º 4
0
        public RenderTestScreen()
            : base()
        {
            SystemCore.CursorVisible = false;
            fpsLabel.Visible         = true;
            SystemCore.ActiveScene.SetUpBasicAmbientAndKey();

            var effect = EffectLoader.LoadSM5Effect("FlatShaded");


            mouseCamera = new MouseFreeCamera(new Vector3(0, 0, 0));
            SystemCore.SetActiveCamera(mouseCamera);

            var shape = new ProceduralSphere(20, 20);

            shape.SetColor(SystemCore.ActiveColorScheme.Color5);



            //create 100 cubes, add collision and collision visualiser components, give them random position and velocity
            for (int i = 0; i < 100; i++)
            {
                var gameObject = new GameObject();
                gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape), BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount));

                gameObject.AddComponent(new EffectRenderComponent(effect));
                //gameObject.AddComponent(new BasicEffectRenderComponent(effect));
                gameObject.Transform.SetPosition(RandomHelper.GetRandomVector3(Vector3.One * -100, Vector3.One * 100));
                gameObject.AddComponent(new RotatorComponent(Vector3.Up));
                SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject);

                gameObject.Transform.Scale    = 5f;
                gameObject.Transform.Velocity = RandomHelper.GetRandomVector3(-Vector3.One, Vector3.One) * 0.01f;
            }


            AddInputBindings();

            Model           geoDesicModel = SystemCore.ContentManager.Load <Model>("Models/geodesic");
            ProceduralShape geodesicShape = ModelMeshParser.GetShapeFromModelNoUVs(geoDesicModel);

            geodesicShape.Scale(20f);
            geodesicShape.InsideOut();
            GameObject geoDesic = GameObjectFactory.CreateRenderableGameObjectFromShape(geodesicShape, EffectLoader.LoadSM5Effect("cockpitscreen"));

            SystemCore.GameObjectManager.AddAndInitialiseGameObject(geoDesic);
        }
Ejemplo n.º 5
0
        public MainMenuScreen()
            : base()
        {
            string screenOne   = "One";
            string screenTwo   = "Two";
            string screenThree = "Three";
            string screenFour  = "Four";



            SystemCore.GetSubsystem <GUIManager>().CreateDefaultMenuScreen("Chu Chu Plague", SystemCore.ActiveColorScheme, screenOne, screenTwo, screenThree, screenFour);
            SystemCore.CursorVisible = true;

            Button b = SystemCore.GetSubsystem <GUIManager>().GetControl(screenOne) as Button;

            b.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new RenderTestScreen());
            };

            Button a = SystemCore.GetSubsystem <GUIManager>().GetControl(screenTwo) as Button;

            a.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new RenderTestScreen());
            };

            Button c = SystemCore.GetSubsystem <GUIManager>().GetControl(screenThree) as Button;

            c.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new RenderTestScreen());
            };

            Button d = SystemCore.GetSubsystem <GUIManager>().GetControl(screenFour) as Button;

            c.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new RenderTestScreen());
            };
        }
Ejemplo n.º 6
0
        private void AddInputBindings()
        {
            input = SystemCore.GetSubsystem <InputManager>();
            input.AddKeyDownBinding("CameraForward", Keys.Up);
            input.AddKeyDownBinding("CameraBackward", Keys.Down);
            input.AddKeyDownBinding("CameraLeft", Keys.Left);
            input.AddKeyDownBinding("CameraRight", Keys.Right);
            input.AddKeyDownBinding("SlowCamera", Keys.RightShift);
            var binding = input.AddKeyPressBinding("WireframeToggle", Keys.Space);

            input.AddKeyPressBinding("MainMenu", Keys.Escape);

            var releaseMouseBinding = input.AddKeyPressBinding("MouseRelease", Keys.M);

            releaseMouseBinding.InputEventActivated += (x, y) =>
            {
                releaseMouse             = !releaseMouse;
                SystemCore.CursorVisible = releaseMouse;
            };
            binding.InputEventActivated += (x, y) => { SystemCore.Wireframe = !SystemCore.Wireframe; };
        }
Ejemplo n.º 7
0
        public override void OnInitialise()
        {
            string screenOne = "Test Island";


            SystemCore.GetSubsystem <GUIManager>().CreateDefaultMenuScreen("Carrier Strike Menu", SystemCore.ActiveColorScheme, screenOne);
            SystemCore.CursorVisible = true;

            Button b = SystemCore.GetSubsystem <GUIManager>().GetControl(screenOne) as Button;

            b.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new TestIslandScreen());
            };

            input.AddKeyPressBinding("Escape", Microsoft.Xna.Framework.Input.Keys.Escape).InputEventActivated += (x, y) =>
            {
                SystemCore.Game.Exit();
            };
            base.OnInitialise();
        }
Ejemplo n.º 8
0
        public override void OnInitialise()
        {
            SystemCore.CursorVisible = true;

            var typesInNameSpace =
                Assembly.GetAssembly(this.GetType()).GetTypes().Where(t => typeof(Screen).IsAssignableFrom(t) && t != typeof(MainMenuScreen) && t != typeof(TestScreen));



            List <string> names = new List <string>();

            foreach (Type type in typesInNameSpace)
            {
                names.Add(type.Name);
            }



            SystemCore.GetSubsystem <GUIManager>()
            .CreateDefaultMenuScreen("Main Menu", SystemCore.ActiveColorScheme, names);


            foreach (Type type in typesInNameSpace)
            {
                Button b = SystemCore.GetSubsystem <GUIManager>().GetControl(type.Name) as Button;
                b.OnClick += (sender, args) =>
                {
                    Screen screen = Activator.CreateInstance(type) as Screen;
                    SystemCore.ScreenManager.AddAndSetActive(screen);
                };
            }


            input.AddKeyPressBinding("Escape", Microsoft.Xna.Framework.Input.Keys.Escape).InputEventActivated += (x, y) =>
            {
                SystemCore.Game.Exit();
            };

            base.OnInitialise();
        }
Ejemplo n.º 9
0
        public override void Update(GameTime gameTime)
        {
            if (!SystemCore.CursorVisible)
            {
                if (input.EvaluateInputBinding("CameraForward"))
                {
                    mouseCamera.MoveForward();
                }
                if (input.EvaluateInputBinding("CameraBackward"))
                {
                    mouseCamera.MoveBackward();
                }
                if (input.EvaluateInputBinding("CameraLeft"))
                {
                    mouseCamera.MoveLeft();
                }
                if (input.EvaluateInputBinding("CameraRight"))
                {
                    mouseCamera.MoveRight();
                }


                mouseCamera.Update(gameTime, input.MouseDelta.X, input.MouseDelta.Y);
                //input.CenterMouse();
            }

            List <GameObject> activeGameObjects = SystemCore.GetSubsystem <GameObjectManager>().GetAllObjects();
            BoundingBox       testVolume        = new BoundingBox(new Vector3(-100, -100, -100), new Vector3(100, 100, 100));

            foreach (GameObject activeGameObject in activeGameObjects)
            {
                if (testVolume.Contains(activeGameObject.Transform.AbsoluteTransform.Translation) == ContainmentType.Disjoint)
                {
                    activeGameObject.Transform.SetPosition(-activeGameObject.Transform.AbsoluteTransform.Translation);
                }
            }

            base.Update(gameTime);
        }
Ejemplo n.º 10
0
        public MainMenuScreen()
            : base()
        {
            string screenOne = "Training Arena";
            string screenTwo = "Death Match Arena";


            SystemCore.GetSubsystem <GUIManager>().CreateDefaultMenuScreen("MS Rest Match", SystemCore.ActiveColorScheme, screenOne, screenTwo);
            SystemCore.CursorVisible = true;

            Button b = SystemCore.GetSubsystem <GUIManager>().GetControl(screenOne) as Button;

            b.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new TrainingSimScreen());
            };
            b          = SystemCore.GetSubsystem <GUIManager>().GetControl(screenTwo) as Button;
            b.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new DeathMatchArenaScreen());
            };
        }
Ejemplo n.º 11
0
        public override void OnInitialise()
        {
            //lighting
            fpsLabel.Visible = true;
            SystemCore.ActiveScene.SetUpBasicAmbientAndKey();
            SystemCore.ActiveScene.SetDiffuseLightDir(0, new Vector3(0.01f, 1, 0.01f));
            SystemCore.ActiveScene.FogEnabled = false;



            //input
            input = SystemCore.GetSubsystem <InputManager>();
            input.AddKeyDownBinding("CameraForward", Keys.Up);
            input.AddKeyDownBinding("CameraBackward", Keys.Down);
            input.AddKeyDownBinding("CameraLeft", Keys.Left);
            input.AddKeyDownBinding("CameraRight", Keys.Right);
            input.AddKeyPressBinding("MainMenu", Keys.Escape);
            var binding = input.AddKeyPressBinding("WireframeToggle", Keys.Space);

            binding.InputEventActivated += (x, y) => { SystemCore.Wireframe = !SystemCore.Wireframe; };


            //camera
            cameraObject = new GameObject();
            camComponent = new ComponentCamera();
            cameraObject.AddComponent(camComponent);
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(cameraObject);
            cameraObject.Transform.SetPosition(new Vector3(0, 100, 0));
            cameraObject.Transform.Rotate(Vector3.Right, MathHelper.ToRadians(-45));
            cameraObject.Transform.Rotate(Vector3.Up, -MathHelper.PiOver4);
            SystemCore.SetActiveCamera(camComponent);


            simulation = new GameSimulation();
            simulation.InitaliseSimulation();

            base.OnInitialise();
        }
Ejemplo n.º 12
0
        public MainMenuScreen()
            : base()
        {
            string screenOne   = "BuggyTest";
            string screenTwo   = "PlanetTest";
            string screenThree = "RTS Test";


            SystemCore.GetSubsystem <GUIManager>().CreateDefaultMenuScreen("Boid War", SystemCore.ActiveColorScheme, screenOne, screenTwo, screenThree);
            SystemCore.CursorVisible = true;

            Button b = SystemCore.GetSubsystem <GUIManager>().GetControl(screenOne) as Button;

            b.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new BuggyTestScreen());
            };

            Button a = SystemCore.GetSubsystem <GUIManager>().GetControl(screenTwo) as Button;

            a.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new PlanetTest());
            };

            Button c = SystemCore.GetSubsystem <GUIManager>().GetControl(screenThree) as Button;

            c.OnClick += (sender, args) =>
            {
                SystemCore.ScreenManager.AddAndSetActive(new RTSTestScreen());
            };


            input.AddKeyPressBinding("Escape", Microsoft.Xna.Framework.Input.Keys.Escape).InputEventActivated += (x, y) =>
            {
                SystemCore.Game.Exit();
            };
        }
Ejemplo n.º 13
0
        public override void OnInitialise()
        {
            SystemCore.CursorVisible = false;
            fpsLabel.Visible         = true;

            SystemCore.ActiveScene.SetUpAmbientAndFullLightingRig();



            float lightDistance = 80f;
            float fadeStart     = 50;
            float fadeEnd       = 100;

            SystemCore.ActiveScene.AddPointLight(new Vector3(lightDistance, 0, 0), new Color(0.1f, 0.5f, 0.1f, 1), fadeStart, fadeEnd, 1f, PointLightNumber.One);
            SystemCore.ActiveScene.AddPointLight(new Vector3(-lightDistance, 0, 0), Color.Blue, fadeStart, fadeEnd, 1f, PointLightNumber.Two);
            SystemCore.ActiveScene.AddPointLight(new Vector3(0, 0, -lightDistance), Color.White, fadeStart, fadeEnd, 1f, PointLightNumber.Three);
            SystemCore.ActiveScene.AddPointLight(new Vector3(0, 0, lightDistance), Color.Red, fadeStart, fadeEnd, 1f, PointLightNumber.Four);

            var effect = EffectLoader.LoadSM5Effect("FlatShaded");

            SystemCore.ActiveScene.FogEnabled = false;


            mouseCamera = new MouseFreeCamera(new Vector3(0, 0, 0));
            SystemCore.SetActiveCamera(mouseCamera);

            var shape = new ProceduralSphere(20, 20);

            shape.SetColor(Color.LightGray);


            for (int i = 0; i < 10; i++)
            {
                var gameObject = new GameObject();
                gameObject.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(shape), BufferBuilder.IndexBufferBuild(shape), shape.PrimitiveCount));
                gameObject.AddComponent(new EffectRenderComponent(effect));
                gameObject.Transform.SetPosition(RandomHelper.GetRandomVector3(Vector3.One * -100, Vector3.One * 100));
                gameObject.AddComponent(new RotatorComponent(Vector3.Up));
                gameObject.AddComponent(new ShadowCasterComponent());



                SystemCore.GetSubsystem <GameObjectManager>().AddAndInitialiseGameObject(gameObject);
                gameObject.Transform.Scale    = 5f;
                gameObject.Transform.Velocity = RandomHelper.GetRandomVector3(-Vector3.One, Vector3.One) * 0.01f;
            }


            AddInputBindings();

            AddTestMario("Mario", Vector3.Zero);
            AddTestMario("RedGloss", new Vector3(20, 0, 0));
            AddTestMario("RedMatt", new Vector3(-20, 0, 0));
            AddTestMario("OrangeGloss", new Vector3(0, 0, -20));
            AddTestMario("WoodenCrate", new Vector3(0, 0, 20));

            crate = AddTestModel("Models/Crate", "WoodenCrate");
            crate.Transform.SetPosition(new Vector3(100, 0, 50));
            crate.Transform.Scale = 0.01f;


            var groundShape = new ProceduralCuboid(10, 10, 0.5f);

            groundShape.SetColor(Color.LightGray);
            var gameObjectPlane = new GameObject();

            gameObjectPlane.AddComponent(new RenderGeometryComponent(BufferBuilder.VertexBufferBuild(groundShape), BufferBuilder.IndexBufferBuild(groundShape), groundShape.PrimitiveCount));
            gameObjectPlane.AddComponent(new EffectRenderComponent(effect));
            gameObjectPlane.Transform.SetPosition(new Vector3(0, -20, 0));
            gameObjectPlane.Transform.Scale = 10f;
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(gameObjectPlane);


            Heightmap heightMap = new Heightmap(100, 1);
            var       seaObject = heightMap.CreateRenderableHeightMap(Color.Blue, EffectLoader.LoadSM5Effect("water"));

            seaObject.Transform.SetPosition(new Vector3(0, 0, 0));
            SystemCore.GameObjectManager.AddAndInitialiseGameObject(seaObject);

            base.OnInitialise();
        }
Ejemplo n.º 14
0
        public override void OnInitialise()
        {
            base.OnInitialise();

            GUIManager guiManager = SystemCore.GetSubsystem <GUIManager>();

            //panel
            p = new Panel(new Rectangle(0, 0, GUIManager.ScreenRatioX(0.1f), GUIManager.ScreenRatioY(0.1f)), GUITexture.Textures["blank"]);
            p.HighlightAlpha = 0.3f;
            p.MainColor      = SystemCore.ActiveColorScheme.Color4;
            p.Anchor(AnchorPoint.middle, GUIManager.ScreenPoint.midpoint, new Vector2(0, 0));
            guiManager.AddControl(p);



            //button
            Button b = new Button(new Rectangle(0, 0, GUIManager.ScreenRatioX(0.1f), GUIManager.ScreenRatioY(0.05f)), GUITexture.Textures["blank"]);

            b.HighlightAlpha = 0.4f;
            b.MainColor      = SystemCore.ActiveColorScheme.Color3;
            b.HighlightColor = SystemCore.ActiveColorScheme.Color4;
            b.Anchor(AnchorPoint.topMid, GUIManager.ScreenPoint.topMiddle, Vector2.Zero);
            guiManager.AddControl(b);



            //label attached to button
            Label l = new Label(GUIFonts.Fonts["test"], "Button");

            l.TextOutline = false;
            l.TextColor   = SystemCore.ActiveColorScheme.Color1;
            b.AttachLabel(l);



            //bordered button
            Button c = new Button(new Rectangle(700, 10, 100, 40), GUITexture.Textures["blank"]);

            c.MainAlpha       = 0.4f;
            c.MainColor       = SystemCore.ActiveColorScheme.Color3;
            c.HighlightColor  = SystemCore.ActiveColorScheme.Color4;
            c.Border          = true;
            c.BorderColor     = SystemCore.ActiveColorScheme.Color5;
            c.BorderThickness = 1;
            guiManager.AddControl(c);


            FadeTransition fadeTest = new FadeTransition(1, 0, 500, 5000);

            p.ApplyTransition(fadeTest);

            //needs work
            ListBox listBox = new ListBox(new Rectangle(200, 200, 200, 200), GUITexture.Textures["blank"]);

            for (int i = 0; i < 100; i++)
            {
                listBox.AddItem(i.ToString());
            }
            guiManager.AddControl(listBox);

            //f****d
            ItemCarousel itemCarousel = new ItemCarousel(new Vector2(700, 500), true, 50, 50);

            for (int i = 0; i < 5; i++)
            {
                itemCarousel.Add(GUITexture.Textures["blank"], i.ToString());
            }
            guiManager.AddControl(itemCarousel);



            SetCameraMovement(false);
        }