protected void FixedUpdate()
    {
        //drag to decrease horizontal velocity
        if (Mathf.Abs(horizontalVelocity) > 0.00001f)
        {
            horizontalVelocity -= DRAG * horizontalVelocity;
        }

        //get input; add it to horizontal velocity
        if (CameraInputController.cameraInput)
        {
            moveHorizontal = CameraInputController.GetAxisRaw() * BASE_CAMERA_TURN_ACCELERATION;
            //Debug.Log(CameraInputController.GetAxisRaw());
        }
        else
        {
            //Debug.Log(Input.GetAxisRaw("Horizontal"));
            moveHorizontal = Input.GetAxisRaw("Horizontal") * BASE_TURN_ACCELERATION;
        }
        horizontalVelocity += moveHorizontal * speedModifier;

        //apply velocity to player
        rb.velocity = new Vector3(horizontalVelocity, 0, forwardVelocity);

        //accelerate over time
        speedModifier  += SPEED_UP;
        forwardVelocity = BASE_SPEED * speedModifier * cameraModifier;

        //generate cubes in front of the player
        if (Random.Range(0f, 10f) / forwardVelocity < CubeController.SPAWN_FREQUENCY)
        {
            CubeController.GenerateCube(prefabCube, tf.position);
        }
    }
Exemple #2
0
        protected override void LoadContent()
        {
            base.LoadContent();

            // UI
            MyraEnvironment.Game = this;
            _mainPanel           = new MainPanel();
            _mainPanel._comboAnimations.Items.Clear();
            _mainPanel._comboAnimations.SelectedIndexChanged += _comboAnimations_SelectedIndexChanged;

            _mainPanel._buttonChange.Click += OnChangeFolder;

            _mainPanel._listFiles.SelectedIndexChanged += _listFiles_SelectedIndexChanged;

            _mainPanel._checkLightning.PressedChanged += _checkLightning_PressedChanged;

            Desktop.Root = _mainPanel;

            // Nursia
            Nrs.Game = this;
            LoadModel(string.Empty);

            var folder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);

            folder = @"C:\Projects\Nursia\samples\models";
            SetFolder(folder);

            _controller = new CameraInputController(_scene.Camera);
        }
    protected void Start()
    {
        rb    = GetComponent <Rigidbody>();
        tf    = GetComponent <Transform>();
        alive = true;

        if (CameraInputController.cameraInput)
        {
            CameraInputController.port = 5065;
            CameraInputController.InitUDP();
            cameraModifier = 0.1f;
        }
        else
        {
            cameraModifier = 1;
        }
    }
Exemple #4
0
        protected override void LoadContent()
        {
            base.LoadContent();

            _spriteBatch = new SpriteBatch(GraphicsDevice);

            // UI
            MyraEnvironment.Game = this;
            _mainPanel           = new MainPanel();

            Desktop.Root = _mainPanel;

            // Nursia
            Nrs.Game = this;

            var folder = @"C:\Projects\Nursia\samples";

            // Model
            _model                  = LoadModel(Path.Combine(folder, @"models\knight.g3dj"));
            _model.Transform        = Matrix.CreateTranslation(new Vector3(0, 10, 0));
            _model.CurrentAnimation = _model.Animations["Attack"];

            // Terrain
            var grassy = LoadTexture(Path.Combine(folder, @"terrain\grassy2.png"));

            _scene.Terrain = new Terrain(400);

            // Generate height
            var generator = new HeightMapGenerator();

            GenerationConfig.Instance.WorldSize = (int)_scene.Terrain.Size;
            var heightMap = generator.Generate();

            _scene.Terrain.HeightFunc = (x, z) =>
            {
                if (x < 0)
                {
                    x = 0;
                }

                if (x >= heightMap.GetLength(0))
                {
                    x = heightMap.GetLength(0) - 1;
                }

                if (z < 0)
                {
                    z = 0;
                }

                if (z >= heightMap.GetLength(1))
                {
                    z = heightMap.GetLength(1) - 1;
                }

                var result = (heightMap[(int)x, (int)z] * 100) - 50;

                return(result);

/*				int r = (int)(x / 100) + (int)(z / 100);
 *
 *                              return r % 2 == 0 ? -10 : 10;*/
            };

            _scene.Terrain.SetTexture(grassy);

            // Water
            _scene.WaterTiles.Add(new WaterTile(0, 0, 0, _scene.Terrain.Size));

            // Skybox
            var skyboxFolder = Path.Combine(folder, "skybox");
            var texture      = new TextureCube(GraphicsDevice, 1024,
                                               false, SurfaceFormat.Color);

            byte[] data = null;
            LoadColors(Path.Combine(skyboxFolder, @"negX.png"), out data);
            texture.SetData(CubeMapFace.NegativeX, data);
            LoadColors(Path.Combine(skyboxFolder, @"negY.png"), out data);
            texture.SetData(CubeMapFace.NegativeY, data);
            LoadColors(Path.Combine(skyboxFolder, @"negZ.png"), out data);
            texture.SetData(CubeMapFace.NegativeZ, data);
            LoadColors(Path.Combine(skyboxFolder, @"posX.png"), out data);
            texture.SetData(CubeMapFace.PositiveX, data);
            LoadColors(Path.Combine(skyboxFolder, @"posY.png"), out data);
            texture.SetData(CubeMapFace.PositiveY, data);
            LoadColors(Path.Combine(skyboxFolder, @"posZ.png"), out data);
            texture.SetData(CubeMapFace.PositiveZ, data);

            _scene.Skybox = new Skybox(100)
            {
                Texture = texture
            };

            _scene.Lights.Add(new DirectLight
            {
                Color     = Color.White,
                Position  = new Vector3(10000, 10000, -10000),
                Direction = new Vector3(0, -1, 0)
            });

            _controller = new CameraInputController(_scene.Camera);
        }
Exemple #5
0
        protected override void LoadContent()
        {
            base.LoadContent();

            _spriteBatch = new SpriteBatch(GraphicsDevice);

            // UI
            MyraEnvironment.Game = this;
            _mainForm            = new MainForm();

            _propertyGrid = new PropertyGrid();
            _mainForm._panelProperties.Widgets.Add(_propertyGrid);

            _mainForm._listExplorer.SelectedIndexChanged += _listExplorer_SelectedIndexChanged;

            _desktop = new Desktop();
            _desktop.Widgets.Add(_mainForm);

            // Nursia
            Nrs.Game = this;

            var folder = @"D:\Projects\Nursia\samples";

            // Light
            _scene.Lights.Add(new DirectLight
            {
                Color     = Color.White,
                Position  = new Vector3(10000, 10000, -10000),
                Direction = new Vector3(0, -1, 0)
            });

            // Water
            _scene.WaterTiles.Add(new WaterTile(0, 0, 0, 100));

            // Skybox
            var skyboxFolder = Path.Combine(folder, "skybox");
            var texture      = new TextureCube(GraphicsDevice, 1024,
                                               false, SurfaceFormat.Color);

            Color[] data = null;
            LoadColors(Path.Combine(skyboxFolder, @"negX.png"), ref data);
            texture.SetData(CubeMapFace.NegativeX, data);
            LoadColors(Path.Combine(skyboxFolder, @"negY.png"), ref data);
            texture.SetData(CubeMapFace.NegativeY, data);
            LoadColors(Path.Combine(skyboxFolder, @"negZ.png"), ref data);
            texture.SetData(CubeMapFace.NegativeZ, data);
            LoadColors(Path.Combine(skyboxFolder, @"posX.png"), ref data);
            texture.SetData(CubeMapFace.PositiveX, data);
            LoadColors(Path.Combine(skyboxFolder, @"posY.png"), ref data);
            texture.SetData(CubeMapFace.PositiveY, data);
            LoadColors(Path.Combine(skyboxFolder, @"posZ.png"), ref data);
            texture.SetData(CubeMapFace.PositiveZ, data);

            _scene.Skybox = new Skybox(500)
            {
                Texture = texture
            };

            // Set camera
            _scene.Camera.SetLookAt(new Vector3(10, 10, 10), Vector3.Zero);

            _controller = new CameraInputController(_scene.Camera);

            RefreshExplorer();
        }
        void applyButton_MouseButtonClick(Widget source, EventArgs e)
        {
            switch (cameraSpeedCombo.SelectedIndex)
            {
            case 0:
                MedicalConfig.CameraTransitionTime = 0.01f;
                break;

            case 1:
                MedicalConfig.CameraTransitionTime = 0.25f;
                break;

            case 2:
                MedicalConfig.CameraTransitionTime = 0.5f;
                break;

            case 3:
                MedicalConfig.CameraTransitionTime = 1.0f;
                break;
            }
            MedicalConfig.EnableMultitouch            = enableMultitouchCheck.Checked;
            MedicalConfig.ShowDeveloperTools          = enableDeveloper.Checked;
            MedicalConfig.EngineConfig.ShowStatistics = showStatsCheck.Checked;
            MouseButtonCode cameraButtonCode = (MouseButtonCode)cameraButtonCombo.SelectedIndex;

            MedicalConfig.CameraMouseButton = cameraButtonCode;
            CameraInputController.changeMouseButton(cameraButtonCode);
            MedicalConfig.DefaultScene = defaultSceneCombo.SelectedItemData?.ToString() ?? MedicalConfig.DefaultScene;

            bool videoOptionsChanged = false;

            if (MedicalConfig.ExtraScaling != (UIExtraScale)uiSize.SelectedItemData)
            {
                MedicalConfig.ExtraScaling = (UIExtraScale)uiSize.SelectedItemData;
                videoOptionsChanged        = true;
            }

            if (OgreConfig.FSAA != aaCombo.getItemNameAt(aaCombo.SelectedIndex))
            {
                OgreConfig.FSAA     = aaCombo.getItemNameAt(aaCombo.SelectedIndex);
                videoOptionsChanged = true;
            }
            if (OgreConfig.VSync != vsyncCheck.Checked)
            {
                OgreConfig.VSync    = vsyncCheck.Checked;
                videoOptionsChanged = true;
            }
            if (MedicalConfig.EngineConfig.Fullscreen != fullscreenCheck.Checked)
            {
                MedicalConfig.EngineConfig.Fullscreen = fullscreenCheck.Checked;
                videoOptionsChanged = true;
            }
            String[] res      = resolutionCombo.getItemNameAt(resolutionCombo.SelectedIndex).Split(seps, StringSplitOptions.RemoveEmptyEntries);
            int      horizRes = NumberParser.ParseInt(res[0]);
            int      vertRes  = NumberParser.ParseInt(res[1]);

            if (MedicalConfig.EngineConfig.HorizontalRes != horizRes || MedicalConfig.EngineConfig.VerticalRes != vertRes)
            {
                MedicalConfig.EngineConfig.HorizontalRes = horizRes;
                MedicalConfig.EngineConfig.VerticalRes   = vertRes;
                videoOptionsChanged = true;
            }
            int maxFpsValue = maxFPS.IntValue;

            if (maxFpsValue < EngineConfig.MinimumAllowedFramerate && maxFpsValue != 0)
            {
                maxFpsValue = EngineConfig.MinimumAllowedFramerate;
            }
            if (MedicalConfig.EngineConfig.FPSCap != maxFpsValue)
            {
                MedicalConfig.EngineConfig.FPSCap = maxFpsValue;
                videoOptionsChanged = true;
            }
            if (videoOptionsChanged && VideoOptionsChanged != null)
            {
                VideoOptionsChanged.Invoke(this, EventArgs.Empty);
            }
            this.hide();
        }