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); } }
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; } }
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); }
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(); }