public async ValueTask CreateScene() { var canvas = await Canvas.GetElementById( "game-window" ); var engine = await Engine.NewEngine( canvas, true ); var scene = await Scene.NewScene( engine ); var light0 = await PointLight.NewPointLight( "Omni", await Vector3.NewVector3( 0, 100, 8 ), scene ); var light1 = await HemisphericLight.NewHemisphericLight( "HemisphericLight", await Vector3.NewVector3( 0, 100, 8 ), scene ); var house = await SceneLoader.ImportMesh( null, "assets/", "House.gltf", scene ); var freeCamera = await FreeCamera.NewFreeCamera( "FreeCamera", await Vector3.NewVector3( 0, 0, -100 ), scene ); await freeCamera.set_rotation(await Vector3.NewVector3( 0, 0, 0 )); await scene.set_activeCamera(freeCamera); await freeCamera.attachControl( canvas, false ); await engine.runRenderLoop(() => Task.Run(() => scene.render(true, false))); _engine = engine; }
/// <summary> /// Creates the scene. /// </summary> /// <remarks> /// This method is called before all /// <see cref="T:WaveEngine.Framework.Entity" /> instances in this instance are initialized. /// </remarks> protected override void CreateScene() { // Insert your scene definition here. #region Simple test // Creates a 3D camera var camera3D = new FreeCamera("Camera3D", new Vector3(0, 2, 2), Vector3.Zero) { BackgroundColor = Color.CornflowerBlue }; this.EntityManager.Add(camera3D); var kinectService = WaveServices.GetService <KinectService>(); kinectService.StartSensor(KinectSources.Color | KinectSources.Depth | KinectSources.Body | KinectSources.Face); // Draw cubes // Color Sensor Cube Entity cube = new Entity() .AddComponent(new Transform3D() { LocalPosition = new Vector3(-1, 0, 0) }) .AddComponent(Model.CreateCube()) .AddComponent(new Spinner() { AxisTotalIncreases = new Vector3(1, 2, 3) / 10 }) .AddComponent(new MaterialsMap(new BasicMaterial(kinectService.ColorTexture))) .AddComponent(new ModelRenderer()); this.EntityManager.Add(cube); // Depth Sensor Cube Entity cube2 = new Entity() .AddComponent(new Transform3D() { LocalPosition = new Vector3(1, 0, 0) }) .AddComponent(Model.CreateCube()) .AddComponent(new Spinner() { AxisTotalIncreases = new Vector3(1, 2, 3) / 10 }) .AddComponent(new MaterialsMap(new BasicMaterial(kinectService.DepthTexture))) .AddComponent(new ModelRenderer()); this.EntityManager.Add(cube2); // Create a 2D camera var camera2D = new FixedCamera2D("Camera2D") { ClearFlags = ClearFlags.DepthAndStencil }; // Transparent background need this clearFlags. this.EntityManager.Add(camera2D); // Skeleton Control Entity skeletonEntity = new Entity() .AddComponent(new Transform2D()) .AddComponent(new KinectSkeletonsBehavior() { CurrentSource = KinectSources.Color }) .AddComponent(new KinectSkeletonsDrawable()); this.EntityManager.Add(skeletonEntity); // Face control Entity faceEntity = new Entity() .AddComponent(new Transform2D()) .AddComponent(new KinectFaceBehavior() { CurrentSource = KinectSources.Color }) .AddComponent(new KinectFaceDrawable2D()); this.EntityManager.Add(faceEntity); #endregion }
protected override void LoadContent() { spriteBatch = new SpriteBatch(GraphicsDevice); Random rnd = new Random(); input = new Input(); font = Content.Load<SpriteFont>("fonts/font"); shootEffect = Content.Load<SoundEffect>("sounds/fire"); mineEffect = Content.Load<SoundEffect>("sounds/bangSmall"); shipDeadEffect = Content.Load<SoundEffect>("sounds/bangLarge"); enemyDeadEffect = Content.Load<SoundEffect>("sounds/bangMedium"); background2 = Content.Load<Song>("sounds/Enter Sandman"); level = new Level(Content.Load<Map>("maps/" + mapNames[lev]), Content, GraphicsDevice, shootEffect, mineEffect, shipDeadEffect, enemyDeadEffect); MediaPlayer.IsRepeating = true; //MediaPlayer.Play(background2); freeCamera = new FreeCamera(GraphicsDevice, new Vector3(level.Columns / 2, 10, level.Rows / 2), new Vector3(0, 5, 0), Vector3.Up, MathHelper.PiOver4, 0.1f, 1000f); Matrix shipWorld = level.ship.World; Vector3 look = shipWorld.Forward; look.Normalize(); camera1 = new Camera(GraphicsDevice, shipWorld.Translation + (1.2f * -look) + (0.3f * shipWorld.Up), shipWorld.Translation + shipWorld.Forward, shipWorld.Up, MathHelper.PiOver4, 0.1f, 1000f); camera2 = new Camera(GraphicsDevice, shipWorld.Translation + camera2Offset, shipWorld.Translation, Vector3.Up, MathHelper.ToRadians(40), 0.1f, 100f); if(drawGrid) grid = new Grid(level.Rows, level.Columns, GraphicsDevice); if (drawXYZ) xyz = new XYZ(level.Rows, level.Columns, GraphicsDevice); if (drawPaths) paths = new Paths(level.Rows, level.Columns, level.graph.GetLinks(), GraphicsDevice); if (drawPath) path = new Path(level.getEnemyPath(), GraphicsDevice); }
public void CreateScene() { var canvas = Canvas.GetElementById( "game-window" ); var engine = new Engine( canvas, true ); var scene = new Scene( engine ); var light0 = new PointLight( "Omni", new Vector3( 0, 100, 8 ), scene ); var light1 = new HemisphericLight( "HemisphericLight", new Vector3( 0, 100, 8 ), scene ); var house = SceneLoader.ImportMesh( null, "assets/", "House.gltf", scene ); var freeCamera = new FreeCamera( "FreeCamera", new Vector3( 0, 0, -100 ), scene ) { rotation = new Vector3( 0, 0, 0 ), }; scene.activeCamera = freeCamera; freeCamera.attachControl( false ); engine.runRenderLoop(new ActionCallback( () => Task.Run(() => scene.render(true, false)) )); _engine = engine; }
/// <inheritdoc /> public override void Initialize() { Camera = new FreeCamera(GraphicsDevice.Viewport.AspectRatio, new Vector3(0f, 50f, 400f)); time = 0; base.Initialize(); }
public void CreateScene() { var canvas = Canvas.GetElementById( "game-window" ); var engine = new Engine( canvas, true ); var scene = new Scene( engine ); var light0 = new PointLight( "Omni", new Vector3( 0, 100, 8 ), scene ); var light1 = new HemisphericLight( "HemisphericLight", new Vector3( 0, 100, 8 ), scene ); var advancedTexture = AdvancedDynamicTexture.CreateFullscreenUI("UI"); var button = Button.CreateSimpleButton( "button", "Click Me" ); button.width = "90%"; button.height = "90%"; button.color = "white"; button.background = "green"; button.onPointerClickObservable.add(async(Vector2WithInfo arg1, EventState state) => { var x = arg1.x.ToString(); var fds = arg1.buttonIndex; var vector = new Vector3(2.1m, 3.2m, 4.1m); Console.WriteLine( $"Clicked: {arg1.x}, {arg1.y}" ); var xx = vector.getClassName(); ClickPosition = arg1; await InvokeAsync(StateHasChanged); }); advancedTexture.addControl( button ); var freeCamera = new FreeCamera( "FreeCamera", new Vector3( 0, 0, -100 ), scene ) { rotation = new Vector3( 0, 0, 0 ), }; scene.activeCamera = freeCamera; freeCamera.attachControl( canvas, false ); engine.runRenderLoop(() => Task.Run(() => scene.render(true, false))); _engine = engine; }
public SelectCamera(FreeCamera freeCamera, FixedCamera fixedCamera) : base("SelectCameraBehavior") { this.freeCamera = freeCamera; this.fixedCamera = fixedCamera; }
/// <summary> /// Här drawar Enemy /// </summary> /// <param name="spriteBatch"></param> /// <param name="cam"></param> public void Draw(SpriteBatch spriteBatch, FreeCamera cam) { Enemy.ForEach(x => x.Draw(spriteBatch, cam)); }
public void SetCamera(CameraType cameraType) { switch (cameraType) { case CameraType.FreeCamera: Camera = new FreeCamera(this, Settings); break; case CameraType.StaticCamera: Camera = new StaticCamera(this, Settings); break; case CameraType.TestCamera: Camera = new TestCamera(this, Settings); break; default: throw new ArgumentOutOfRangeException(SystemResources.InvalidCameraType); } currentCameraType = cameraType; Camera.Initialize(); }
/// <summary> /// Allows the game to run logic such as updating the world, /// checking for collisions, gathering input, and playing audio. /// </summary> /// <param name="gameTime">Provides a snapshot of timing values.</param> protected override void Update(GameTime gameTime) { MouseState mouseState = Mouse.GetState(); KeyboardState keyboardState = Keyboard.GetState(); // Allows the game to exit if (keyboardState.IsKeyDown(Keys.Escape)) { this.Exit(); } //Change camera mode if (keyboardState.IsKeyDown(Keys.D1)) { CameraMode = ECameraMode.Target; } if (keyboardState.IsKeyDown(Keys.D2)) { CameraMode = ECameraMode.Free; } if (keyboardState.IsKeyDown(Keys.D3)) { CameraMode = ECameraMode.ArcBall; } if (keyboardState.IsKeyDown(Keys.D4)) { CameraMode = ECameraMode.Chase; } //mouseState float deltaX = (float)LastMouseState.X - (float)mouseState.X; float deltaY = (float)LastMouseState.Y - (float)mouseState.Y; float scrollDelta = (float)LastMouseState.ScrollWheelValue - (float)mouseState.ScrollWheelValue; //Update camera base on mod and input switch (CameraMode) { case ECameraMode.Free: FreeCamera fc = (FreeCamera)Cam; //handle camera rotation fc.Rotate(deltaX * CAMERA_MOVE_FACTOR, deltaY * CAMERA_MOVE_FACTOR); //Handle camera movement Vector3 translation = Vector3.Zero; if (keyboardState.IsKeyDown(Keys.W)) { translation += Vector3.Forward; } if (keyboardState.IsKeyDown(Keys.S)) { translation += Vector3.Backward; } if (keyboardState.IsKeyDown(Keys.A)) { translation += Vector3.Left; } if (keyboardState.IsKeyDown(Keys.D)) { translation += Vector3.Right; } //move 3 units per millisecond translation *= 1.5f * (float)gameTime.ElapsedGameTime.TotalMilliseconds; fc.Move(translation); break; case ECameraMode.ArcBall: ArcBallCamera abc = (ArcBallCamera)Cam; //rotate cam abc.Rotate(deltaX * CAMERA_MOVE_FACTOR, deltaY * CAMERA_MOVE_FACTOR); //move cam abc.Move(scrollDelta); break; case ECameraMode.Chase: ChaseCamera cc = (ChaseCamera)Cam; BasicActor ship = Actors[1]; //Handle rotation Vector3 rotationChange = Vector3.Zero; if (keyboardState.IsKeyDown(Keys.W)) { rotationChange += new Vector3(-1, 0, 0); } if (keyboardState.IsKeyDown(Keys.S)) { rotationChange += new Vector3(1, 0, 0); } if (keyboardState.IsKeyDown(Keys.A)) { rotationChange += new Vector3(0, 1, 0); } if (keyboardState.IsKeyDown(Keys.D)) { rotationChange += new Vector3(0, -1, 0); } ship.Rotation += rotationChange * 0.025f; //handle movement if (keyboardState.IsKeyDown(Keys.Space)) { Matrix rotation = Matrix.CreateFromYawPitchRoll(ship.Rotation.Y, ship.Rotation.X, ship.Rotation.Z); ship.Position += Vector3.Transform(Vector3.Forward, rotation) * (float)gameTime.ElapsedGameTime.TotalMilliseconds * 4; } //Update camera cc.Move(ship.Position, ship.Rotation); break; } //Update camera Cam.Update(); LastMouseState = mouseState; base.Update(gameTime); }
void Start() { freecam = GameObject.FindGameObjectWithTag("Helper").GetComponent <FreeCamera>(); }
protected override void CreateScene() { WaveServices.ScreenLayers.SetDiagnosticsActive(true); //RenderManager.DebugLines = true; RenderManager.BackgroundColor = Color.CornflowerBlue; //Create the camera FreeCamera camera = new FreeCamera("freeCamera", new Vector3(42.60071f, 10.3373f, -45.83459f), new Vector3(41.77419f, 10.37616f, -45.27303f)) { Speed = 10 }; //Add some light! PointLight light = new PointLight("light", Vector3.Zero) { Position = new Vector3(0, 5, 0), Attenuation = 750, Color = new Color(1, 0.6f, 0.4f), IsVisible = true }; EntityManager.Add(light); EntityManager.Add(camera); Material columnMaterialA = new NormalMappingMaterial("Content/column1.wpk", "Content/column1_normal_spec.wpk") { AmbientColor = Color.White * 0.3f }; Material columnMaterialB = new NormalMappingMaterial("Content/column2.wpk", "Content/column2_normal_spec.wpk") { AmbientColor = Color.White * 0.3f }; bool isStatic = true; float columnSpacing = 8; int nCols = 10; int nColumns = 0; for (int i = 0; i < 2; i++) { for (int j = 0; j < nCols; j++) { Entity column = new Entity("column_" + nColumns++) { IsStatic = isStatic } .AddComponent(new Transform3D() { Position = new Vector3(-j * columnSpacing, 0, (i - 1) * columnSpacing), Rotation = new Vector3(0, (WaveServices.Random.NextInt() % 4) * MathHelper.PiOver4, 0) }) .AddComponent(new ModelRenderer()) .AddComponent(new Model("Content/mainColumn.wpk")) .AddComponent(new MaterialsMap(columnMaterialB)); EntityManager.Add(column); } } for (int i = 0; i < 3; i++) { for (int j = 0; j < nCols; j++) { Entity column = new Entity("column_" + nColumns++) { IsStatic = isStatic } .AddComponent(new Transform3D() { Position = new Vector3(-j * columnSpacing, 0, (i - 4) * columnSpacing), Rotation = new Vector3(0, (WaveServices.Random.NextInt() % 4) * MathHelper.PiOver2, 0) }) .AddComponent(new ModelRenderer()) .AddComponent(new Model("Content/column.wpk")) .AddComponent(new MaterialsMap(columnMaterialA)); EntityManager.Add(column); } } for (int i = 0; i < 3; i++) { for (int j = 0; j < nCols; j++) { Entity column = new Entity("column_" + nColumns++) { IsStatic = isStatic } .AddComponent(new Transform3D() { Position = new Vector3(-j * columnSpacing, 0, (i + 1) * columnSpacing) }) .AddComponent(new ModelRenderer()) .AddComponent(new Model("Content/column.wpk")) .AddComponent(new MaterialsMap(columnMaterialA)); EntityManager.Add(column); } } }
private MovementManager getMovementFor(Train train, bool isLocalTrain, NetworkTrainPlayer networkPlayer, GuiPlayersPointsElement playersPoints, NetworkEntityPlaying network) { float rotationSpeed = train.RotationSpeed; float translationSpeed = train.TranslationSpeed * GameMapSizeFactor.GetFactorForCurrentMapRelativeToFirstMap(); int maxPassengers = train.MaxPassengers; Transform mover = train.transform.parent ?? train.transform; TransformOperations.To(mover).SetRotationTo(FirstStation.transform.position); Route route = new Route(); route.Add(null); route.Add(FirstStation); if (isLocalTrain) { FirstStation.StartHighlight(); } Player player = networkPlayer == null?PlayerFactory.CreateLocal(train) : networkPlayer; TrainPassengersLimit trainPassengersLimit = TrainPassengersLimitFactory.Get(TrainPassengersLimitType); trainPassengersLimit.SetLimit(maxPassengers); TrainPassengers passengers = new TrainPassengers(trainPassengersLimit, player); TimeCounter timeCounter = new TimeCounter(); timeCounters.Add(timeCounter); CurrentPoints points = new CurrentPoints(CurrentMap.GetCurrentMap(), passengers, timeCounter); playersPoints.AddPoints(player, points); GuiButtonRendererControl backToMenuButton = null; GuiButtonRendererControl showRankingButton = null; Movement firstMovement, normalMovement, goOutMovement; if (isLocalTrain) { Camera camera = Camera.main; Vector3 cameraOffset = -(mover.position - camera.transform.position); firstMovement = new ParallelMovement() .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationStartStepType, TERRESTRIAL, cameraOffset)); //firstMovement.Update(FirstStation.transform.position); normalMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new ParallelMovement() .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationDefaultStepType, TERRESTRIAL, cameraOffset))); goOutMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)); MapCamera trainCamera = new TrainCamera(Camera.main); MapCamera freeCamera = new FreeCamera(Camera.main); CameraManager cameraManager = new CameraManager(trainCamera); backToMenuButton = new GuiButtonRendererControl(() => Application.LoadLevel(SceneNames.MENU)); showRankingButton = new GuiButtonRendererControl(() => SocialManager.ForegroundActions.ShowLeaderboard(CurrentMap.GetCurrentMap())); GuiButtonRendererControl setTrainCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(trainCamera)); GuiButtonRendererControl setFreeCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(freeCamera)); gui.AddElement(new GuiHudElement(passengers, timeCounter)); gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Train\nCam", GuiPosition.DOWN_LEFT, setTrainCameraButton)); gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Free\nCam", GuiPosition.DOWN_RIGHT, setFreeCameraButton)); input.AddLocal(route, cameraManager); input.AddButtons(backToMenuButton, showRankingButton, setTrainCameraButton, setFreeCameraButton); } else { firstMovement = new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL); //firstMovement.Update(FirstStation.transform.position); goOutMovement = normalMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)); networkPlayer.SetRoute(route); } return(new MovementManager(FirstStation, LastStation, route, firstMovement, normalMovement, goOutMovement, passengers, timeCounter, points, gui, backToMenuButton, showRankingButton, isLocalTrain, playersPoints, network)); }
/// <summary> /// Load content here. /// </summary> protected override void LoadContent() { // Load our teapot and ground models. Model teapotModel = Game.Content.Load<Model>("Model\\teapot"); Model groundModel = Game.Content.Load<Model>("Model\\ground"); Texture2D bricks = Game.Content.Load<Texture2D>("Texture\\brick"); Texture2D checkers = Game.Content.Load<Texture2D>("Texture\\checker"); mEffect = Game.Content.Load<Effect>("Effect\\Model"); mEffect.Parameters["t_Basic"].SetValue(bricks); mEffect.Parameters["TextureEnabled"].SetValue(true); mCamera = new FreeCamera("Main", MathHelper.PiOver4, this.GraphicsDevice.Viewport.AspectRatio, new Vector3(1000f, 650f, 1000f), MathHelper.ToRadians(-50f), MathHelper.ToRadians(-5f)); ModelInstance teapot = new ModelInstance(teapotModel, Vector3.Zero, Vector3.Zero, new Vector3(60f)); teapot.SetModelMaterial(new Material()); teapot.SetModelEffect(mEffect, true); teapot.SetSingleParameter("t_Basic", bricks); teapot.SetSingleParameter("TextureEnabled", true); ModelInstance ground = new ModelInstance(groundModel, Vector3.Zero, Vector3.Zero, Vector3.One); ground.SetModelMaterial(new Material()); ground.SetModelEffect(mEffect, true); // Create a single teapot and just one instance of the ground model. mModels.Add(teapot); mModels.Add(ground); foreach (ModelInstance modelInstance in mModels) { modelInstance.SetModelEffect(mEffect, true); } mRenderer = new PrePassRenderer(this.Game, this.GraphicsDevice, this.Game.Content); mLights.Add(new PrePointLight(new Vector3(-1000, 1000, 0), Color.Red, 1500)); mLights.Add(new PrePointLight(new Vector3(1000, 1000, 0), Color.Orange, 1500)); mLights.Add(new PrePointLight(new Vector3(0, 1000, 1000), Color.Yellow, 1500)); mLights.Add(new PrePointLight(new Vector3(0, 1000, -1000), Color.Green, 1500)); mLights.Add(new PrePointLight(new Vector3(1000, 1000, 1000), Color.Blue, 1500)); mLights.Add(new PrePointLight(new Vector3(-1000, 1000, 1000), Color.Indigo, 1500)); mLights.Add(new PrePointLight(new Vector3(1000, 1000, -1000), Color.Violet, 1500)); mLights.Add(new PrePointLight(new Vector3(-1000, 1000, -1000), Color.White, 1500)); // Input. mCamera.Update(); mX = -MathHelper.Pi / 10f; mY = MathHelper.PiOver2; Mouse.SetPosition(this.GraphicsDevice.Viewport.Width / 2, this.GraphicsDevice.Viewport.Height / 2); mPrevMouse = Mouse.GetState(); base.LoadContent(); }
public async Task CreateScene() { var canvas = await Canvas.GetElementById( "game-window" ); var engine = await Engine.NewEngine( canvas, true ); var scene = await Scene.NewScene( engine ); var light0 = await PointLight.NewPointLight( "Omni", await Vector3.NewVector3( 0, 100, 8 ), scene ); var light1 = await HemisphericLight.NewHemisphericLight( "HemisphericLight", await Vector3.NewVector3(0, 100, 8), scene ); var advancedTexture = await AdvancedDynamicTexture.CreateFullscreenUI("UI"); var button = await Button.CreateSimpleButton( "button", "Click Me" ); await button.set_width("90%"); await button.set_height("90%"); await button.set_color("white"); await button.set_background("green"); await(await button.get_onPointerClickObservable()).add(async(Vector2WithInfo arg1, EventState state) => { var x = (await arg1.get_x()).ToString(); var fds = await arg1.get_buttonIndex(); var vector = await Vector3.NewVector3(2.1m, 3.2m, 4.1m); //Console.WriteLine( // $"Clicked: {await arg1.get_x()}, {await arg1.get_y()}" //); var xx = await vector.getClassName(); ClickPosition = arg1; ClickPosition_X = await ClickPosition.get_x(); ClickPosition_Y = await ClickPosition.get_y(); await InvokeAsync(StateHasChanged); //Console.WriteLine("Clicked: "); }); await advancedTexture.addControl( button ); var freeCamera = await FreeCamera.NewFreeCamera( "FreeCamera", await Vector3.NewVector3( 0, 0, -100 ), scene ); await freeCamera.set_rotation( await Vector3.NewVector3( 0, 0, 0 ) ); await scene.set_activeCamera(freeCamera); await freeCamera.attachControl(false); await engine.runRenderLoop(new ActionCallback(() => Task.Run(() => scene.render(true, false)))); _engine = engine; await Canvas.RemoveBlur( "game-window" ); }
public void Draw(SpriteBatch spriteBatch, FreeCamera cam) { model.Draw(cam.View, cam.Projection, cam.Position); }
protected override void CreateScene() { FreeCamera camera = new FreeCamera("camera", new Vector3(-3.8f, 2.2f, 5.6f), new Vector3(0, 0.8f, 2.2f)) { Speed = 5, NearPlane = 0.1f }; EntityManager.Add(camera); this.Video1 = WaveServices.VideoPlayer.VideoInfoFromPath("Content/Video/bunny.mp4"); this.Video2 = WaveServices.VideoPlayer.VideoInfoFromPath("Content/Video/bear.mp4"); WaveServices.VideoPlayer.IsLooped = true; WaveServices.VideoPlayer.Play(this.Video1); Entity tvRoomEntity = new Entity("tvRoom") .AddComponent(new Transform3D()) .AddComponent(new Model("Content/TvRoom.wpk")) .AddComponent(new ModelRenderer()) .AddComponent(new MaterialsMap(new System.Collections.Generic.Dictionary <string, Material> { { "floor", new DualTextureMaterial("Content/parketFloor_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "tv", new DualTextureMaterial("Content/Tv_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "table", new DualTextureMaterial("Content/table_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "chair", new DualTextureMaterial("Content/Chair_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "tv_screen", new BasicMaterial(WaveServices.VideoPlayer.VideoTexture) } } )); EntityManager.Add(tvRoomEntity); StackPanel controlPanel = new StackPanel() { VerticalAlignment = WaveEngine.Framework.UI.VerticalAlignment.Bottom, HorizontalAlignment = WaveEngine.Framework.UI.HorizontalAlignment.Right, Margin = new WaveEngine.Framework.UI.Thickness(0, 0, 30, 30), BorderColor = Color.White, IsBorder = true, }; ToggleSwitch muteToggle = new ToggleSwitch() { OnText = "Mute", OffText = "Mute", Margin = new WaveEngine.Framework.UI.Thickness(5, 5, 5, 10) }; muteToggle.Toggled += (e, s) => { WaveServices.VideoPlayer.IsMuted = muteToggle.IsOn; }; controlPanel.Add(muteToggle); RadioButton radioButton1 = new RadioButton() { GroupName = "Videos", Text = "Channel 1", Margin = new WaveEngine.Framework.UI.Thickness(5, 0, 5, 0), IsChecked = true }; radioButton1.Checked += (e, s) => { WaveServices.VideoPlayer.Play(this.Video1); }; controlPanel.Add(radioButton1); RadioButton radioButton2 = new RadioButton() { GroupName = "Videos", Text = "Channel 2", Margin = new WaveEngine.Framework.UI.Thickness(5, 0, 5, 10) }; radioButton2.Checked += (e, s) => { WaveServices.VideoPlayer.Play(this.Video2); }; controlPanel.Add(radioButton2); PlayBtn = new Button("playBtn") { Text = "Play", Opacity = 0.5f, Margin = new WaveEngine.Framework.UI.Thickness(5, 0, 5, 0), Width = 170 }; PlayBtn.Click += (e, s) => { WaveServices.VideoPlayer.Resume(); PlayBtn.Opacity = 0.5f; PauseBtn.Opacity = 1f; }; controlPanel.Add(PlayBtn); PauseBtn = new Button("pauseBtn") { Text = "Pause", Width = 170, Margin = new WaveEngine.Framework.UI.Thickness(5, 0, 5, 5), }; PauseBtn.Click += (e, s) => { WaveServices.VideoPlayer.Pause(); PlayBtn.Opacity = 1f; PauseBtn.Opacity = 0.5f; }; controlPanel.Add(PauseBtn); EntityManager.Add(controlPanel); }
private void Awake() { _freeCam = GetComponent <FreeCamera>(); _zCam = GetComponent <TargetingCamera>(); _fCam = GetComponent <FirstPersonCamera>(); }
// Update is called once per frame private void Start() { _freeCamera = GetComponent <FreeCamera>(); }
private MovementManager getMovementFor(Train train, bool isLocalTrain, NetworkTrainPlayer networkPlayer, GuiPlayersPointsElement playersPoints, NetworkEntityPlaying network) { float rotationSpeed = train.RotationSpeed; float translationSpeed = train.TranslationSpeed * GameMapSizeFactor.GetFactorForCurrentMapRelativeToFirstMap(); int maxPassengers = train.MaxPassengers; Transform mover = train.transform.parent ?? train.transform; TransformOperations.To(mover).SetRotationTo(FirstStation.transform.position); Route route = new Route(); route.Add(null); route.Add(FirstStation); if (isLocalTrain) { FirstStation.StartHighlight(); } Player player = networkPlayer == null ? PlayerFactory.CreateLocal(train) : networkPlayer; TrainPassengersLimit trainPassengersLimit = TrainPassengersLimitFactory.Get(TrainPassengersLimitType); trainPassengersLimit.SetLimit(maxPassengers); TrainPassengers passengers = new TrainPassengers(trainPassengersLimit, player); TimeCounter timeCounter = new TimeCounter(); timeCounters.Add(timeCounter); CurrentPoints points = new CurrentPoints(CurrentMap.GetCurrentMap(), passengers, timeCounter); playersPoints.AddPoints(player, points); GuiButtonRendererControl backToMenuButton = null; GuiButtonRendererControl showRankingButton = null; Movement firstMovement, normalMovement, goOutMovement; if (isLocalTrain) { Camera camera = Camera.main; Vector3 cameraOffset = -(mover.position - camera.transform.position); firstMovement = new ParallelMovement() .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationStartStepType, TERRESTRIAL, cameraOffset)); //firstMovement.Update(FirstStation.transform.position); normalMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new ParallelMovement() .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(camera.transform, translationSpeed, TranslationDefaultStepType, TERRESTRIAL, cameraOffset))); goOutMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)); MapCamera trainCamera = new TrainCamera(Camera.main); MapCamera freeCamera = new FreeCamera(Camera.main); CameraManager cameraManager = new CameraManager(trainCamera); backToMenuButton = new GuiButtonRendererControl(() => Application.LoadLevel(SceneNames.MENU)); showRankingButton = new GuiButtonRendererControl(() => SocialManager.ForegroundActions.ShowLeaderboard(CurrentMap.GetCurrentMap())); GuiButtonRendererControl setTrainCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(trainCamera)); GuiButtonRendererControl setFreeCameraButton = new GuiButtonRendererControl(() => cameraManager.SetCamera(freeCamera)); gui.AddElement(new GuiHudElement(passengers, timeCounter)); gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Train\nCam", GuiPosition.DOWN_LEFT, setTrainCameraButton)); gui.AddElement(GuiElementFactory.GetSwitchCameraElement("Free\nCam", GuiPosition.DOWN_RIGHT, setFreeCameraButton)); input.AddLocal(route, cameraManager); input.AddButtons(backToMenuButton, showRankingButton, setTrainCameraButton, setFreeCameraButton); } else { firstMovement = new TranslationMovement(mover, translationSpeed, TranslationStartStepType, TERRESTRIAL); //firstMovement.Update(FirstStation.transform.position); goOutMovement = normalMovement = new SequentialMovement() .AddMovement(new RotationMovement(mover, rotationSpeed, RotationDefaultStepType, TERRESTRIAL)) .AddMovement(new TranslationMovement(mover, translationSpeed, TranslationDefaultStepType, TERRESTRIAL)); networkPlayer.SetRoute(route); } return new MovementManager(FirstStation, LastStation, route, firstMovement, normalMovement, goOutMovement, passengers, timeCounter, points, gui, backToMenuButton, showRankingButton, isLocalTrain, playersPoints, network); }
protected override void CreateScene() { FreeCamera camera = new FreeCamera("MainCamera", new Vector3(0, 4, 12), new Vector3(0, 4, 0)) { Speed = 5, BackgroundColor = Color.Black, }; EntityManager.Add(camera.Entity); PointLight Light0 = new PointLight("Light0", new Vector3(-5, 8, 10)) { Color = Color.White, Attenuation = 20, }; Light0.Entity.AddComponent(new MoveBehavior() { Speed = 0.2f }); EntityManager.Add(Light0.Entity); float value = 0.0f; Color c = new Color(value, value, value, 1); Entity cubeModel = new Entity("Cube") .AddComponent(new Transform3D() { Scale = new Vector3(6) }) //.AddComponent(new Spinner() { IncreaseY = 0.02f }) .AddComponent(new BoxCollider()) .AddComponent(new Model("Content/Cube.wpk")) .AddComponent(new MaterialsMap(new NormalMappingMaterial("Content/floor.wpk", "Content/floor_normal_spec.wpk", "Content/lightmap.wpk") { AmbientColor = c })) // "Content/lightmap.wpk" .AddComponent(new ModelRenderer()); EntityManager.Add(cubeModel); #region UI Slider slider1 = new Slider() { Margin = new Thickness(10, 90, 0, 0), Width = 500, Minimum = 4, Maximum = 40, Value = 30 }; slider1.RealTimeValueChanged += (s, e) => { var entity = EntityManager.Find("Light0"); var component = entity.FindComponent <PointLightProperties>(); component.Attenuation = e.NewValue; }; EntityManager.Add(slider1); Slider slider2 = new Slider() { Margin = new Thickness(10, 140, 0, 0), Width = 500, Minimum = 1, Maximum = 100 }; slider2.RealTimeValueChanged += (s, e) => { var entity = EntityManager.Find("Cube"); var component = entity.FindComponent <MaterialsMap>(); var material = (component.DefaultMaterial as NormalMappingMaterial); float v = (float)e.NewValue / 100.0f; Color c1 = new Color(v, v, v, 1); material.AmbientColor = c1; }; EntityManager.Add(slider2); ToggleSwitch lightmapEnabled = new ToggleSwitch() { Margin = new Thickness(10, 10, 0, 0), IsOn = true, OnText = "LightMap On", OffText = "LightMap Off", }; lightmapEnabled.Toggled += (s, e) => { var entity = EntityManager.Find("Cube"); var component = entity.FindComponent <MaterialsMap>(); var material = (component.DefaultMaterial as NormalMappingMaterial); material.LightMapEnabled = !material.LightMapEnabled; }; EntityManager.Add(lightmapEnabled); ToggleSwitch textureEnabled = new ToggleSwitch() { Margin = new Thickness(10, 40, 0, 0), IsOn = true, OnText = "Texture On", OffText = "Texture Off" }; textureEnabled.Toggled += (s, o) => { var entity = EntityManager.Find("Cube"); var component = entity.FindComponent <MaterialsMap>(); var material = (component.DefaultMaterial as NormalMappingMaterial); material.TextureEnabled = !material.TextureEnabled; }; EntityManager.Add(textureEnabled); ToggleSwitch normalMapEnabled = new ToggleSwitch() { Margin = new Thickness(300, 10, 0, 0), IsOn = true, OnText = "NormalMap On", OffText = "NormalMap Off" }; normalMapEnabled.Toggled += (s, o) => { var entity = EntityManager.Find("Cube"); var component = entity.FindComponent <MaterialsMap>(); var material = (component.DefaultMaterial as NormalMappingMaterial); material.NormalMappingEnabled = !material.NormalMappingEnabled; }; EntityManager.Add(normalMapEnabled); #endregion }
protected override void CreateScene() { FreeCamera camera = new FreeCamera("camera", new Vector3(-1.3f, 1.6f, 2.5f), new Vector3(-0.25f, 1.375f, 1.275f)) { Speed = 5, NearPlane = 0.1f }; EntityManager.Add(camera); this.TvRoomEntity = new Entity("tvRoom") .AddComponent(new Transform3D()) .AddComponent(new Model("Content/TvRoom.wpk")) .AddComponent(new ModelRenderer()) .AddComponent(new MaterialsMap(new System.Collections.Generic.Dictionary <string, Material> { { "floor", new DualTextureMaterial("Content/parketFloor_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "tv", new DualTextureMaterial("Content/Tv_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "table", new DualTextureMaterial("Content/table_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, { "chair", new DualTextureMaterial("Content/Chair_Diffuse.wpk", "Content/TvRoomLightingMap.wpk", DefaultLayers.Opaque) }, // Camera preview texture used in a basic material { "tv_screen", new BasicMaterial(Color.Black) } } )); EntityManager.Add(this.TvRoomEntity); if (WaveServices.CameraCapture.IsConnected) { StackPanel controlPanel = new StackPanel() { VerticalAlignment = WaveEngine.Framework.UI.VerticalAlignment.Bottom, HorizontalAlignment = WaveEngine.Framework.UI.HorizontalAlignment.Right, Margin = new WaveEngine.Framework.UI.Thickness(0, 0, 30, 30), BorderColor = Color.White, IsBorder = true, }; this.RecBtn = new Button("RecBtn") { Text = "Start Rec", Margin = new WaveEngine.Framework.UI.Thickness(5, 5, 5, 0), Width = 170 }; controlPanel.Add(this.RecBtn); this.PlayRecordedBtn = new Button("PlayRecordedBtn") { Text = "Play", Width = 170, Margin = new WaveEngine.Framework.UI.Thickness(5, 0, 5, 5), Opacity = 0.5f }; controlPanel.Add(this.PlayRecordedBtn); this.RecBtn.Click += (e, s) => { if (!this.isRecording) { this.StartRecording(); } else { this.StopRecording(); } }; this.PlayRecordedBtn.Click += (e, s) => { if (!this.isVideoPlaying) { this.PlayVideo(); } else { this.StopVideo(); } }; EntityManager.Add(controlPanel); } else { TextBlock text = new TextBlock() { Text = "There is no connected camera", Width = 300, VerticalAlignment = WaveEngine.Framework.UI.VerticalAlignment.Bottom, HorizontalAlignment = WaveEngine.Framework.UI.HorizontalAlignment.Right, Margin = new WaveEngine.Framework.UI.Thickness(0, 0, 30, 30) }; EntityManager.Add(text); } }
public void AsyRAMG(int z_cam, FreeCamera Camera) { }
/// <summary> /// Rulare inainte de start /// </summary> void Awake() { playPause = GameObject.Find("Buttons/UtilityButtons/PlayPause").GetComponent <Button>(); utilButtons = GameObject.Find("Buttons/UtilityButtons").GetComponent <UitilityButtons>(); freeCamera = GameObject.Find("/Main Camera").GetComponent <FreeCamera>(); }
public override void LoadContent() { //colors for debug rndColors = new Color[20]; for (int i = 0; i < 20; i++) { rndColors[i] = new Color((float)RandomManager.TheRandom.NextDouble(), (float)RandomManager.TheRandom.NextDouble(), (float)RandomManager.TheRandom.NextDouble()); } //Content manager if (Content == null) { Content = new ContentManager(ScreenManager.Game.Services, "Content"); screenContentManager = new ScreenContentManager(Content); } DebugDrawer = new DebugDrawer(ScreenManager.Game, this); ScreenManager.Game.Components.Add(DebugDrawer); //Load models screenContentManager.AddModel("ground", @"Models\Ground"); screenContentManager.AddModel("ship", @"Models\ship"); screenContentManager.AddModel("teapot", @"Models\teapot"); //Set graphics graphics = ScreenManager.GraphicsDevice; graphics.BlendState = BlendState.Opaque; graphics.DepthStencilState = DepthStencilState.Default; //Load fonts screenContentManager.AddFont("kootenay14", @"Fonts\kootenay14"); //setup camera if (Cam == null) { Cam = new FreeCamera(new Vector3(0, 100, -250), MathHelper.ToRadians(180), MathHelper.ToRadians(5), graphics); } //set mouse to invisible ScreenManager.Game.IsMouseVisible = false; //set up game state foreach (Entity e in GameStateManager.GameManager.Entities) { Actors.Add(new BasicActor(e, screenContentManager.GetModel(e.Name))); } screenContentManager.AddEffect("lightingEffect", @"Models\LightingEffect"); LightingMaterial mat = new LightingMaterial(); //mat.LightColor = Color.Red.ToVector3(); mat.AmbientColor = new Vector3(0.1f, 0.1f, 0.1f); foreach (BasicActor actor in Actors) { actor.SetModelEffect(screenContentManager.GetEffect("lightingEffect"), true); actor.Material = mat; } //setup overlays Overlays.Add(new DebugOverlay(this)); Overlays[0].IsActive = true; }
protected override void CreateScene() { //Create a 3D camera var camera3D = new FreeCamera("Camera3D", new Vector3(0, 2, 4), Vector3.Zero) { BackgroundColor = Color.CornflowerBlue, Speed = 2, NearPlane = 0.1f }; EntityManager.Add(camera3D); // Ground Entity cube = new Entity() .AddComponent(new Transform3D()) .AddComponent(Model.CreatePlane()) .AddComponent(new MaterialsMap(new BasicMaterial("Content/ground.png") { SamplerMode = AddressMode.PointClamp })) .AddComponent(new ModelRenderer()); EntityManager.Add(cube); // Tree Billboard Entity tree = new Entity() .AddComponent(new Transform3D() { LocalPosition = new Vector3(0, 0.75f, 0), LocalScale = new Vector3(1.5f, 1.5f, 1.5f) }) .AddComponent(new Billboard("Content/tree.png") { BillboardType = BillboardType.Axial_Orientation }) .AddComponent(new BillboardRenderer(DefaultLayers.Alpha, AddressMode.PointClamp)); EntityManager.Add(tree); // Flares int nflares = 6; for (int i = 0; i < nflares; i++) { float angle = ((float)i / 6) * MathHelper.TwoPi; Entity flare = new Entity() .AddComponent(new Transform3D() { LocalPosition = new Vector3(0, 0.75f, 0), LocalScale = Vector3.One * 0.25f }) .AddComponent(new FlareBehavior(angle, 1)) .AddComponent(new Billboard("Content/flare.png") { BillboardType = BillboardType.PointOrientation }) .AddComponent(new BillboardRenderer(DefaultLayers.Alpha, AddressMode.PointClamp)); EntityManager.Add(flare); } }