public static dynamic GetTSObject(ViewCamera dynObject) { if (dynObject is null) { return(null); } return(dynObject.teklaObject); }
// Call CaseInsensitiveComparer.Compare with the parameters reversed. public int Compare(VisibleLight x, VisibleLight y) { //try to switch to Vector3 xDepthMin = ViewCamera.WorldToScreenPoint(x.light.transform.position - CameraForward * x.light.range); Vector3 yDepthMin = ViewCamera.WorldToScreenPoint(y.light.transform.position - CameraForward * y.light.range); return(xDepthMin.z < yDepthMin.z? -1:1); // screen space depth }
/// <summary> /// creates two cameras and viewports for split-screen. /// </summary> public void InitCamera() { // Make two mutiple cameras ViewCamera followViewCamera = new ViewCamera(); FollowCamera[] followCamera = new FollowCamera[2] { new FollowCamera(), new FollowCamera(), }; int playerCount = GameLevel.PlayerCountInLevel; for (int i = 0; i < playerCount; i++) { GamePlayer player = GameLevel.GetPlayerInLevel(i); followCamera[i].SetPespective( MathHelper.ToRadians(this.GameLevel.Info.FOV), (float)FrameworkCore.ViewWidth, (float)FrameworkCore.ViewHeight / playerCount, 1.0f, 1000.0f); // Follow camera offset position setting followCamera[i].TargetOffset = player.SpecData.CameraTargetOffset; followCamera[i].PositionOffset = player.SpecData.CameraPositionOffset; int splitX = 0; int splitY = 0; int splitWidth = 0; int splitHeight = 0; // 1P viewport area if (i == 0) { splitX = 0; splitY = 0; } // 2P viewport area else if (i == 1) { splitX = 0; splitY = FrameworkCore.ViewHeight / playerCount; } splitWidth = FrameworkCore.ViewWidth; splitHeight = FrameworkCore.ViewHeight / playerCount; followViewCamera.Add(followCamera[i], new Rectangle(splitX, splitY, splitWidth, splitHeight)); } Viewer.AddCamera("Follow", followViewCamera); Viewer.SetCurrentCamera("Follow"); }
protected override void CreateScene() { ViewCamera mainCamera = new ViewCamera("MainCamera", new Vector3(500, 500, 500), Vector3.Zero); mainCamera.BackgroundColor = Color.Black; EntityManager.Add(mainCamera.Entity); Entity drawable = new Entity("Drawable") .AddComponent(new DrawableLines(1)); EntityManager.Add(drawable); }
/// <summary> /// creates Hud images for versus game. /// </summary> public override void CreateHud() { ViewCamera viewCamera = FrameworkCore.CurrentCamera; int viewCount = viewCamera.Count; this.textKillScore = new GameText[viewCount]; this.textKillConditionScore = new GameText[viewCount]; Color scoreColor = new Color(136, 217, 224); // kill score and condition score for (int i = 0; i < viewCount; i++) { this.textKillScore[i] = new GameText( this.fontHud, "0", 0, 0, scoreColor); this.refSceneHudRoot.AddChild(this.textKillScore[i]); this.textKillConditionScore[i] = new GameText( this.fontHud, string.Format("/ {0}", RobotGameGame.VersusGameInfo.killPoint), 0, 0, scoreColor); this.refSceneHudRoot.AddChild(this.textKillConditionScore[i]); } this.spriteHudVersus = new GameSprite2D(); this.spriteHudVersus.Create(4, "Textures/VS_Text"); this.refSceneHudRoot.AddChild(this.spriteHudVersus); // 1P image this.spriteObjHudVersus1P = this.spriteHudVersus.AddSprite(0, "Versus 1P"); // 2P image this.spriteObjHudVersus2P = this.spriteHudVersus.AddSprite(1, "Versus 2P"); // You win this.spriteObjHudVersusWin = this.spriteHudVersus.AddSprite(2, "Versus Win"); this.spriteObjHudVersusWin.Visible = false; // You lose this.spriteObjHudVersusLose = this.spriteHudVersus.AddSprite(3, "Versus Lose"); this.spriteObjHudVersusLose.Visible = false; base.CreateHud(); }
protected override void CreateScene() { ViewCamera viewCamera = new ViewCamera("view", new Vector3(0f, 0f, 2.5f), Vector3.Zero); viewCamera.BackgroundColor = Color.CornflowerBlue; EntityManager.Add(viewCamera.Entity); var cube = new Entity("Cube") .AddComponent(new Transform3D()) .AddComponent(Model.CreateCube()) .AddComponent(new MaterialsMap()) .AddComponent(new ModelRenderer()); EntityManager.Add(cube); }
protected override void CreateScene() { RenderManager.BackgroundColor = Color.Black; //WaveServices.ScreenLayers.SetDiagnosticsActive(true); ViewCamera mainCamera = new ViewCamera("MainCamera", new Vector3(0f, 10f, 15f), Vector3.Zero); EntityManager.Add(mainCamera.Entity); RenderManager.SetActiveCamera(mainCamera.Entity); Entity drawable = new Entity("Drawable") .AddComponent(new DebugShapes()); EntityManager.Add(drawable); }
/// <summary> /// calling when screen size has changed. /// changes the sizes of camera and Hud when the screen size is changed. /// </summary> /// <param name="viewRect">new view area</param> public override void OnSize(Rectangle newRect) { base.OnSize(newRect); Viewport viewport = FrameworkCore.CurrentViewport; // Follow Camera ViewCamera followViewCamera = Viewer.GetViewCamera("Follow"); followViewCamera.Resize(0, viewport.X, viewport.Y, viewport.Width, viewport.Height); // Resizing Hud ResizeHud(); }
protected override void CreateScene() { this.CreateMaterials(); this.camera = new ViewCamera("camera", new Vector3(0, 5, 13), new Vector3(0, 5, 0)) { FieldOfView = 0.8f, NearPlane = 0.1f }; this.camera.Entity.AddComponent(this.skyboxMaps[this.currentEnv]); EntityManager.Add(camera); this.CreateVenus(); this.CreateUI(); this.UpdateMaterials(); }
protected override void CreateScene() { ViewCamera camera = new ViewCamera("Camera", new Vector3(0f, 0f, 5f), Vector3.Zero); RenderManager.SetActiveCamera(camera.Entity); EntityManager.Add(camera.Entity); CreateCube("Cube1", Vector3.Zero); CreateCube("Cube2", new Vector3(5f, 0f, 0f)); CreateCube("Cube3", new Vector3(-5f, 0f, 0f)); CreateCube("Cube4", new Vector3(5f, 0f, 5f)); CreateCube("Cube5", new Vector3(-5f, 0f, 5f)); CreateCube("Cube6", new Vector3(5f, 0f, -5f)); CreateCube("Cube7", new Vector3(-5f, 0f, -5f)); CreateCube("Cube8", new Vector3(0f, 0f, 5f)); CreateCube("Cube9", new Vector3(0f, 0f, -5f)); }
protected override void CreateScene() { ViewCamera camera = new ViewCamera("MainCamera", new Vector3(2, 1, 2), new Vector3(0, 1, 0)); camera.BackgroundColor = Color.CornflowerBlue; EntityManager.Add(camera.Entity); Entity animatedModel = new Entity("Isis") .AddComponent(new Transform3D()) .AddComponent(new BoxCollider()) .AddComponent(new SkinnedModel("Content/isis.wpk")) .AddComponent(new MaterialsMap(new BasicMaterial("Content/isis-difuse.wpk"))) .AddComponent(new Animation3D("Content/isis-animations.wpk")) .AddComponent(new SkinnedModelRenderer()); anim = animatedModel.FindComponent <Animation3D>(); EntityManager.Add(animatedModel); }
//This method is called every frame and updates everything in the game, then notifies the view. public void Timer_Tick(object sender, EventArgs e) { Ticks++; UpdatePlayer(); UpdateAI(); UpdateWells(); if (Ticks % WellSpawnFreq == 0) { SpawnWell(); } if (Ticks % 4 == 0 && Orbs.Count < 200) { SpawnOrb(); } if (AIShips.Count < 3) { SpawnAI(); } GameUpdatedEvent(this, ViewCamera.GetCameraFrame()); }
protected override void CreateScene() { ViewCamera camera = new ViewCamera("MainCamera", new Vector3(0, 0, 3), Vector3.Zero); camera.BackgroundColor = Color.CornflowerBlue; EntityManager.Add(camera.Entity); Entity primitive = new Entity("Primitive") .AddComponent(new Spinner() { AxisTotalIncreases = new Vector3(1f, 2f, 1f) }) .AddComponent(new Transform3D()) .AddComponent(Model.CreateTeapot()) .AddComponent(new BoxCollider()) .AddComponent(new ChangeModel()) .AddComponent(new MaterialsMap())//new BasicMaterial(Color.White))) .AddComponent(new ModelRenderer()); EntityManager.Add(primitive); }
protected override void CreateScene() { #region Scene creation // Create the camera ViewCamera camera = new ViewCamera("MainCamera", new Vector3(2, 1, 2), new Vector3(0, 1, 0)); EntityManager.Add(camera.Entity); RenderManager.SetActiveCamera(camera.Entity); // Create the model. Note of we add the Animation3D component. Entity animatedModel = new Entity("Isis") .AddComponent(new Transform3D()) .AddComponent(new BoxCollider()) .AddComponent(new SkinnedModel("Content/isis.wpk")) .AddComponent(new MaterialsMap(new BasicMaterial("Content/isis-difuse.wpk"))) .AddComponent(new Animation3D("Content/isis-animations.wpk")) .AddComponent(new SkinnedModelRenderer()) .AddComponent(new IsisBehavior()); // Create the sound bank SoundBank spankerSlamSounds = new SoundBank(); spankerSlamSounds.Add(SoundsManager.FootStep1); spankerSlamSounds.Add(SoundsManager.FootStep2); WaveServices.SoundPlayer.RegisterSoundBank(spankerSlamSounds); RenderManager.BackgroundColor = Color.CornflowerBlue; #endregion #region Key Events // Add the key frames. The first parameter is the name of the animation, the second the number of frames and the third the name of the event. As you can see, we raise two events when // the animation is "Attack" ( see the Animation3D example for further information ). The first event is raised on frame 10 and the second on frame 25. See the SpankerBehavior class animation = animatedModel.FindComponent <Animation3D>() .AddKeyFrameEvent("Jog", 1, "DoFootstep") .AddKeyFrameEvent("Jog", 14, "DoFootstep") .AddKeyFrameEvent("Jog", 26, "DoFootstep") .AddKeyFrameEvent("Jog", 39, "DoFootstep"); EntityManager.Add(animatedModel); #endregion }
private void CreateViewport() { Mogre.NameValuePairList parameters = new Mogre.NameValuePairList(); parameters["Name"] = "intViewCamera" + Mogre.StringConverter.ToString(ViewportIndex); parameters["ClipDistance"] = "0.1 40000"; BaseEditor scnMgr = MogitorsRoot.Instance.SceneManagerEditor; ViewCamera = CameraEditor.Factory.CreateObject(ref scnMgr, parameters) as CameraEditor; ViewCamera.Load(); this.handle = MogitorsRoot.Instance.RenderTarget.AddViewport(ViewCamera.Camera, (int)ViewportIndex, dimensions.x, dimensions.y, dimensions.z, dimensions.w); if (Name == "") { this.name = "Viewport" + Mogre.StringConverter.ToString(ViewportIndex); } ViewCamera.Camera.AspectRatio = (float)this.handle.ActualWidth / (float)this.handle.ActualHeight; ViewCamera.ShowHelper = false; ActiveCamera = ViewCamera; this.handle.BackgroundColour = this.colour; PopCompositors(); ProjectOptions opt = MogitorsRoot.Instance.ProjectOptions; if (opt.Cameras.Count > 0) { ViewCamera.Position = opt.Cameras[opt.Cameras.Count - 1].Position; ViewCamera.Orientation = opt.Cameras[opt.Cameras.Count - 1].Orientation; } LoadEditorObjects(); }
/// <summary> /// initializes the 3rd person view camera which follows player. /// </summary> public void InitCamera() { // Follow Camera FollowCamera followCamera = new FollowCamera(); followCamera.SetPespective(MathHelper.ToRadians(this.GameLevel.Info.FOV), (float)FrameworkCore.ViewWidth, (float)FrameworkCore.ViewHeight, 1.0f, 1000.0f); // Follow camera offset position setting followCamera.TargetOffset = GameLevel.SinglePlayer.SpecData.CameraTargetOffset; followCamera.PositionOffset = GameLevel.SinglePlayer.SpecData.CameraPositionOffset; ViewCamera followViewCamera = new ViewCamera(followCamera, new Rectangle(0, 0, FrameworkCore.ViewWidth, FrameworkCore.ViewHeight)); Viewer.AddCamera("Follow", followViewCamera); Viewer.SetCurrentCamera("Follow"); }
public override bool UnLoad() { if (!IsLoaded) { return(true); } UnLoadAllChildren(); DestroyBoundingBox(); if (this.handle != null) { //throw new NotImplementedException("this.viewGrid = null"); ViewCamera.Destroy(false); ViewCamera = null; MogitorsRoot.Instance.RenderTarget.RemoveViewport(this.handle.ZOrder); this.handle = null; } IsLoaded = false; return(true); }
protected override void CreateScene() { RenderManager.RegisterLayerBefore(new SkyLayer(this.RenderManager), DefaultLayers.Alpha); ViewCamera camera = new ViewCamera("camera", new Vector3(0, 5, 13), new Vector3(0, 5, 0)) { FieldOfView = 0.8f, NearPlane = 0.1f }; EntityManager.Add(camera); RenderManager.SetActiveCamera(camera.Entity); this.CreateMaterials(); this.CreateVenus(); this.CreateSky(); this.CreateUI(); this.UpdateMaterials(); }
public frmShowMaxCameral(ViewCamera viewCamera) { InitializeComponent(); mviewCamera = viewCamera; this.Controls.Add(viewCamera); }
/// <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() { string name = string.Empty; ViewCamera camera = new ViewCamera("MainCamera", new Vector3(0, 0, 3), Vector3.Zero); EntityManager.Add(camera.Entity); RenderManager.SetActiveCamera(camera.Entity); Entity primitive = new Entity("Primitive") .AddComponent(new Spinner() { AxisTotalIncreases = new Vector3(1f, 2f, 1f) }) .AddComponent(new Transform3D()) .AddComponent(new BoxCollider()) .AddComponent(new MaterialsMap()) .AddComponent(new ModelRenderer()); switch (this.index) { case (0): name = "Push"; primitive.AddComponent(Model.CreateTeapot()); RenderManager.BackgroundColor = Color.Black; break; case (1): name = "Color Fade"; primitive.AddComponent(Model.CreateCapsule()); RenderManager.BackgroundColor = Color.DarkBlue; break; case (2): name = "Doorway"; primitive.AddComponent(Model.CreateSphere()); RenderManager.BackgroundColor = Color.DarkCyan; break; case (3): name = "Comb"; primitive.AddComponent(Model.CreateTorus()); RenderManager.BackgroundColor = Color.DarkGoldenrod; break; case (4): name = "Cover"; primitive.AddComponent(Model.CreateCapsule()); RenderManager.BackgroundColor = Color.DarkGray; break; case (5): name = "Curtains"; primitive.AddComponent(Model.CreatePyramid()); RenderManager.BackgroundColor = Color.DarkGreen; break; case (6): name = "Falling Lines"; primitive.AddComponent(Model.CreatePlane()); RenderManager.BackgroundColor = Color.DarkKhaki; break; case (7): name = "Fan"; primitive.AddComponent(Model.CreateCone()); RenderManager.BackgroundColor = Color.DarkMagenta; break; case (8): name = "Rotate"; primitive.AddComponent(Model.CreateCube()); RenderManager.BackgroundColor = Color.DarkOliveGreen; break; case (9): name = "Scale"; primitive.AddComponent(Model.CreateTeapot()); RenderManager.BackgroundColor = Color.DarkOrange; break; case (10): name = "Shrink and Spin"; primitive.AddComponent(Model.CreateCapsule()); RenderManager.BackgroundColor = Color.DarkOrchid; break; case (11): name = "Spinning Squares"; primitive.AddComponent(Model.CreateSphere()); RenderManager.BackgroundColor = Color.DarkRed; break; case (12): name = "Uncover"; primitive.AddComponent(Model.CreateTorus()); RenderManager.BackgroundColor = Color.DarkSalmon; break; case (13): name = "Zoom"; primitive.AddComponent(Model.CreatePyramid()); RenderManager.BackgroundColor = Color.DarkSeaGreen; break; case (14): name = "Chequered"; primitive.AddComponent(Model.CreatePlane()); RenderManager.BackgroundColor = Color.DarkSlateBlue; break; case (15): name = "Cross Fade"; primitive.AddComponent(Model.CreateCube()); RenderManager.BackgroundColor = Color.DarkSlateGray; break; default: break; } Button button = new Button() { Text = string.Format("Next scene with {0} transition", name), HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Bottom, Width = 400, Margin = new Thickness(10), }; button.Click += this.OnClick; this.EntityManager.Add(button); this.EntityManager.Add(primitive); }
/// <summary> /// calling when screen size has changed. /// changes the sizes of camera and Hud when the screen size is changed. /// </summary> /// <param name="viewRect">new view area</param> public override void OnSize(Rectangle newRect) { base.OnSize(newRect); int playerCount = GameLevel.PlayerCountInLevel; Viewport viewport = FrameworkCore.CurrentViewport; // split-screen Camera ViewCamera followViewCamera = Viewer.GetViewCamera("Follow"); for (int i = 0; i < playerCount; i++) { GamePlayer player = GameLevel.GetPlayerInLevel(i); int splitX = 0; int splitY = 0; int splitWidth = 0; int splitHeight = 0; // 1P viewport area if (i == 0) { splitX = 0; splitY = 0; } // 2P viewport area else if (i == 1) { splitX = 0; splitY = viewport.Height / playerCount; } splitWidth = viewport.Width; splitHeight = viewport.Height / playerCount; // Resizing camera followViewCamera.Resize(i, splitX, splitY, splitWidth, splitHeight); } // Resize Hud { int posX = 0, posY = 0, scaledWidth = 0, scaledHeight = 0, offsetY = 0; ViewCamera viewCamera = FrameworkCore.CurrentCamera; int viewCount = viewCamera.Count; float scaleFactor = 1.0f; if (GameLevel.Info.GamePlayType == GamePlayTypeId.Versus) { scaleFactor = 0.8f; } // Scaling image size and positioning for screen resolution Vector2 sizeScale = new Vector2( (float)FrameworkCore.ViewWidth * scaleFactor / (float)ViewerWidth.Width1080, (float)FrameworkCore.ViewHeight * scaleFactor / (float)ViewerHeight.Height1080); Vector2 posScale = new Vector2( (float)FrameworkCore.ViewWidth * scaleFactor / (float)ViewerWidth.Width1080, (float)FrameworkCore.ViewHeight * scaleFactor / (float)ViewerHeight.Height1080); // if versus mode, apply width offset rate if (GameLevel.Info.GamePlayType == GamePlayTypeId.Versus) { posScale.X *= 1.3f; } for (int i = 0; i < viewCount; i++) { Viewport view = viewCamera.GetViewport(i); offsetY = (int)view.Y; // kill score and condition score this.textKillScore[i].PosX = (int)(215 * posScale.X); this.textKillScore[i].PosY = (int)((float)view.Height * 0.68f) + offsetY; this.textKillConditionScore[i].PosX = (int)(300 * posScale.X); this.textKillConditionScore[i].PosY = (int)((float)view.Height * 0.76f) + offsetY; this.textKillScore[i].Scale = 1.6f; this.textKillConditionScore[i].Scale = 0.8f; float textScale = 1.4f * (float)FrameworkCore.ViewWidth / (float)ViewerWidth.Width720; this.textKillScore[i].Scale *= textScale; this.textKillConditionScore[i].Scale *= textScale; } // 1P image this.spriteObjHudVersus1P.SourceRectangle = new Rectangle( 82, 560, image1PWidth, image1PHeight); this.spriteObjHudVersus1P.ScreenRectangle = new Rectangle( (int)(FrameworkCore.ViewWidth * 0.05f), (int)(FrameworkCore.ViewHeight / 2 * 0.76f), (int)((float)image1PWidth * sizeScale.X), (int)((float)image1PHeight * sizeScale.Y)); // 2P image this.spriteObjHudVersus2P.SourceRectangle = new Rectangle( 532, 560, image1PWidth, image1PHeight); offsetY = (FrameworkCore.ViewHeight / 2); this.spriteObjHudVersus2P.ScreenRectangle = new Rectangle( (int)(FrameworkCore.ViewWidth * 0.05f), (int)((FrameworkCore.ViewHeight / 2 * 0.76f) + offsetY), (int)((float)image1PWidth * sizeScale.X), (int)((float)image1PHeight * sizeScale.Y)); this.spriteObjHudVersusWin.SourceRectangle = new Rectangle(108, 55, imageWinWidth, imageWinHeight); this.spriteObjHudVersusLose.SourceRectangle = new Rectangle(48, 370, imageLoseWidth, imageLoseHeight); if (this.isFinishedVersus) { for (int i = 0; i < GameLevel.PlayerCountInLevel; i++) { GamePlayer player = GameLevel.GetPlayerInLevel(i); // You win if (RobotGameGame.VersusGameInfo.killPoint <= player.KillPoint) { scaledWidth = (int)((float)imageWinWidth * sizeScale.X); scaledHeight = (int)((float)imageWinHeight * sizeScale.Y); posX = (int)((FrameworkCore.ViewWidth / 2) - (scaledWidth / 2)); posY = (int)((FrameworkCore.ViewHeight / 2) - (scaledHeight / 2)); if (player.PlayerIndex == PlayerIndex.One) { posY -= FrameworkCore.ViewHeight / 4; } else if (player.PlayerIndex == PlayerIndex.Two) { posY += FrameworkCore.ViewHeight / 4; } this.spriteObjHudVersusWin.ScreenRectangle = new Rectangle( posX, posY, scaledWidth, scaledHeight); } // You lose else { scaledWidth = (int)((float)imageLoseWidth * sizeScale.X); scaledHeight = (int)((float)imageLoseHeight * sizeScale.Y); posX = (int)((FrameworkCore.ViewWidth / 2) - (scaledWidth / 2)); posY = (int)((FrameworkCore.ViewHeight / 2) - (scaledHeight / 2)); if (player.PlayerIndex == PlayerIndex.One) { posY -= FrameworkCore.ViewHeight / 4; } else if (player.PlayerIndex == PlayerIndex.Two) { posY += FrameworkCore.ViewHeight / 4; } this.spriteObjHudVersusLose.ScreenRectangle = new Rectangle(posX, posY, scaledWidth, scaledHeight); } } } // Resizing Hud ResizeHud(); } }