Dictionary<Material, List<MeshRendererTrait>> GroupMeshRenderersByMaterials(Scene scene, String pass) { // TODO, make this fast var grouping = new Dictionary<Material, List<MeshRendererTrait>> (); foreach (var go in scene.SceneGraph.GetAllObjects()) { if (!go.Enabled) continue; var mr = go.GetTrait<MeshRendererTrait>(); if (mr == null) continue; if (!mr.Active) continue; if (mr.Material == null) continue; // if the material is for this pass if (mr.Material.RenderPass == pass) { if (!grouping.ContainsKey (mr.Material)) grouping [mr.Material] = new List<MeshRendererTrait> (); grouping [mr.Material].Add (mr); } } return grouping; }
internal CameraManager(Scene scene) { var settings = scene.Configuration; foreach (var renderPass in settings.RenderPasses) { var go = scene.SceneGraph.CreateSceneObject("RenderPass(" + renderPass + ") Provided Camera"); var cam = go.AddTrait<CameraTrait>(); if (renderPass.Configuration.CameraProjectionType == CameraProjectionType.Perspective) { go.Transform.Position = new Vector3(2, 1, 5); var orbit = go.AddTrait<OrbitAroundSubjectTrait>(); orbit.CameraSubject = Transform.Origin; var lookAtSub = go.AddTrait<LookAtSubjectTrait>(); lookAtSub.Subject = Transform.Origin; } else { cam.Projection = CameraProjectionType.Orthographic; go.Transform.Position = new Vector3(0, 0, 1f); go.Transform.LookAt(Vector3.Zero); } _defaultCameras.Add(renderPass.Name, go); _activeCameras.Add(renderPass.Name, go); } }
public SceneManager(Platform platform, Engine engine, Scene startScene) { this.platform = platform; this.engine = engine; nextScene = startScene; sceneRenderer = new SceneRenderer(platform); }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.DarkSlateGrey; returnScene = this; ShaderAsset shaderAsset = this.Engine.Assets.Load<ShaderAsset> ("assets/unlit.bba"); TextureAsset texAsset = this.Engine.Assets.Load <TextureAsset> ("assets/bg1.bba"); SpriteTrait.SpriteShader = this.Platform.Graphics.CreateShader (shaderAsset); tex = this.Platform.Graphics.CreateTexture (texAsset); var cam = this.CameraManager.GetRenderPassCamera ("Default"); cam.GetTrait <OrbitAroundSubjectTrait> ().Active = false; // create a sprite var so = this.SceneGraph.CreateSceneObject ("billboard"); var spr = so.AddTrait <SpriteTrait> (); spr.Width = 256f; spr.Height = 256f; spr.Texture = tex; // TODO: Material Offset has not been implemented in Engine yet, // if it were we could use it to adjust the UVs used to render // this SpriteTrait's texture. //spr.Material.Offset = new Vector2 (0.5f, 0.5f); spr.Material.SetColour ("MaterialColour", Rgba32.Yellow); shader = this.Platform.Graphics.CreateShader (shaderAsset); this.Engine.InputEventSystem.DoubleTap += this.OnDoubleTap; }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.Black; CommonDemoResources.Create (Platform, Engine); Entity camSo = SceneGraph.CreateSceneObject ("Scene 3 Camera"); camSo.AddTrait <CameraTrait> (); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = Transform.Origin; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(1f,0.5f,5f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); _returnScene = this; this.Engine.InputEventSystem.Tap += this.OnTap; teapotGPUMesh = new TeapotPrimitive(Platform.Graphics).Mesh; AddTeapot(0); AddTeapot(-1.5f); AddTeapot(1.5f); }
internal void Render(Scene scene) { // Clear the background colour if the scene settings want us to. if (scene.Configuration.BackgroundColour.HasValue) { this.platform.Graphics.ClearColourBuffer(scene.Configuration.BackgroundColour.Value); } foreach (var renderPass in scene.Configuration.RenderPasses) { this.RenderPass(scene, renderPass); } }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.LightSlateGrey; CommonDemoResources.Create (Platform, Engine); returnScene = this; // create a sprite var billboard = new BillboardPrimitive(this.Platform.Graphics); billboardGo = this.SceneGraph.CreateSceneObject("billboard"); var mr = billboardGo.AddTrait<MeshRendererTrait>(); mr.Mesh = billboard.Mesh; mr.Material = new Material("Default", CommonDemoResources.UnlitShader); mr.Material.SetColour("MaterialColour", RandomGenerator.Default.GetRandomColour()); target = billboardGo.Transform; markerGo = this.SceneGraph.CreateSceneObject ("marker"); markerGo.Transform.LocalScale = new Vector3 (0.05f, 0.05f, 0.05f); var markerMR = markerGo.AddTrait<MeshRendererTrait> (); markerMR.Mesh = new CubePrimitive(this.Platform.Graphics).Mesh; markerMR.Material = new Material("Default", CommonDemoResources.UnlitShader); markerMR.Material.SetColour("MaterialColour", Rgba32.Red); cam = this.CameraManager.GetRenderPassCamera ("Default"); this.SceneGraph.DestroySceneObject(this.CameraManager.GetRenderPassCamera ("Debug")); this.SceneGraph.DestroySceneObject(this.CameraManager.GetRenderPassCamera ("Gui")); this.RuntimeConfiguration.SetRenderPassCameraTo ("Debug", cam); cam.Transform.Position = new Vector3(2, 1, 5); cam.RemoveTrait<OrbitAroundSubjectTrait> (); las = cam.GetTrait<LookAtSubjectTrait> (); las.Subject = billboardGo.Transform; this.Engine.InputEventSystem.Tap += this.OnTap; }
void OnTap(Gesture gesture) { returnScene = new Scene_Shapes3(); }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.DarkSlateGrey; //var goBoardMesh = new CubePrimitive (this.Platform.Graphics).Mesh; MeshAsset mushMeshAsset0 = this.Engine.Assets.Load<MeshAsset> ("assets/big_mushroom.bba"); vb0 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset0.VertexDeclaration, mushMeshAsset0.VertexData.Length); ib0 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset0.IndexData.Length); vb0.SetDataEx (mushMeshAsset0.VertexData); ib0.SetData (mushMeshAsset0.IndexData); var mushMesh0 = new Mesh (vb0, ib0); MeshAsset mushMeshAsset1 = this.Engine.Assets.Load<MeshAsset> ("assets/small_mushroom_1.bba"); vb1 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset1.VertexDeclaration, mushMeshAsset1.VertexData.Length); ib1 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset1.IndexData.Length); vb1.SetDataEx (mushMeshAsset1.VertexData); ib1.SetData (mushMeshAsset1.IndexData); var mushMesh1 = new Mesh (vb1, ib1); MeshAsset mushMeshAsset2 = this.Engine.Assets.Load<MeshAsset> ("assets/small_mushroom_2.bba"); vb2 = Platform.Graphics.CreateVertexBuffer (mushMeshAsset2.VertexDeclaration, mushMeshAsset2.VertexData.Length); ib2 = Platform.Graphics.CreateIndexBuffer (mushMeshAsset2.IndexData.Length); vb2.SetDataEx (mushMeshAsset2.VertexData); ib2.SetData (mushMeshAsset2.IndexData); var mushMesh2 = new Mesh (vb2, ib2); // set up the debug renderer ShaderAsset unlitShaderAsset = this.Engine.Assets.Load<ShaderAsset> ("assets/pixel_lit.bba"); shader = this.Platform.Graphics.CreateShader (unlitShaderAsset); TextureAsset woodTexAsset = this.Engine.Assets.Load <TextureAsset> ("assets/toadstool_diffuse.bba"); woodTex = this.Platform.Graphics.CreateTexture (woodTexAsset); mush0 = SceneGraph.CreateSceneObject ("mush0"); mush0.Transform.LocalPosition = new Vector3 (0f, 0f, 0f); mush0.Transform.LocalScale = new Vector3 (1f, 1f, 1f); mush1 = SceneGraph.CreateSceneObject ("mush1"); mush1.Transform.LocalPosition = new Vector3 (0.8f, 0f, 0.8f); mush1.Transform.LocalScale = new Vector3 (1f, 1f, 1f); mush2 = SceneGraph.CreateSceneObject ("mush2"); mush2.Transform.LocalPosition = new Vector3 (0.5f, 0f, 0f); mush2.Transform.LocalScale = new Vector3 (1f, 1f, 1f); var mat = new Material ("Default", shader); mat.SetTexture ("TextureSampler", woodTex); MeshRendererTrait meshRendererTrait0 = mush0.AddTrait<MeshRendererTrait> (); meshRendererTrait0.Material = mat; meshRendererTrait0.Mesh = mushMesh0; meshRendererTrait0.CullMode = CullMode.None; MeshRendererTrait meshRendererTrait1 = mush1.AddTrait<MeshRendererTrait> (); meshRendererTrait1.Material = mat; meshRendererTrait1.Mesh = mushMesh1; meshRendererTrait1.CullMode = CullMode.None; MeshRendererTrait meshRendererTrait2 = mush2.AddTrait<MeshRendererTrait> (); meshRendererTrait2.Material = mat; meshRendererTrait2.Mesh = mushMesh2; meshRendererTrait2.CullMode = CullMode.None; returnScene = this; var t = SceneGraph.CreateSceneObject ("T"); t.Transform.LocalPosition = new Vector3 (0, 1f, 0); Entity camSo = SceneGraph.CreateSceneObject ("Scene X Camera"); camSo.AddTrait<CameraTrait>(); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = t.Transform; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(6f,3f,6f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); this.Engine.InputEventSystem.Tap += this.OnTap; }
public override Scene Update(AppTime time) { this.Engine.DebugRenderer.AddGrid ("Debug", 1f, 10); if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown (FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown (FunctionalKey.Backspace)) { returnScene = new Scene_MainMenu (); } return returnScene; }
public override void Start() { _alternateCamera = this.SceneGraph.CreateSceneObject("Alternate Camera"); CommonDemoResources.Create (Platform, Engine); _alternateCamera.AddTrait<CameraTrait>(); _alternateCamera.Transform.Position = new Vector3(0.65f, 1f, -2.50f) * 3; _alternateCamera.Transform.LookAt(Vector3.Zero); _objects = RandomObjectHelper.Generate(this); var landmarkGo = this.CreateLandmark(); _objects.Add(landmarkGo); _returnScene = this; this.Engine.InputEventSystem.Tap += this.OnTap; }
public static List<Entity> Generate(Scene scene) { var objects = new List<Entity>(); var cubeModel = new CubePrimitive(scene.Platform.Graphics); var billboardModel = new BillboardPrimitive(scene.Platform.Graphics); var teapotModel = new TeapotPrimitive(scene.Platform.Graphics); var cylinderModel = new CylinderPrimitive(scene.Platform.Graphics); var sphereModel = new SpherePrimitive(scene.Platform.Graphics); var torusModel = new TorusPrimitive(scene.Platform.Graphics); objects.Add(CreateShapeGO(scene, "Default", cubeModel.Mesh, 2)); objects.Add(CreateShapeGO(scene, "Default", billboardModel.Mesh)); objects.Add(CreateShapeGO(scene, "Default", teapotModel.Mesh, 1)); objects.Add(CreateShapeGO(scene, "Default", cylinderModel.Mesh)); objects.Add(CreateShapeGO(scene, "Default", sphereModel.Mesh)); objects.Add(CreateShapeGO(scene, "Default", torusModel.Mesh, 1)); objects.Add(CreateShapeGO(scene, "Default", torusModel.Mesh, 2)); objects.Add(CreateShapeGO(scene, "Default", torusModel.Mesh, 0)); return objects; }
public override void Start() { this.Configuration.BackgroundColour = Rgba32.DarkSlateGrey; TextAsset fntUvAsset = this.Engine.Assets.Load <TextAsset> ("assets/blimey_fnt_uv.bba"); TextureAsset fntTexAsset = this.Engine.Assets.Load <TextureAsset> ("assets/blimey_fnt_tex.bba"); fntTex = this.Platform.Graphics.CreateTexture (fntTexAsset); sprFnt = new SpriteFont (this.Platform, this.Engine, fntUvAsset, fntTexAsset); returnScene = this; this.CameraManager.GetRenderPassCamera ("Debug").GetTrait<CameraTrait> ().Projection = CameraProjectionType.Orthographic; this.CameraManager.GetRenderPassCamera ("Default").GetTrait<CameraTrait> ().Projection = CameraProjectionType.Orthographic; this.CameraManager.GetRenderPassCamera ("Gui").GetTrait<CameraTrait> ().Projection = CameraProjectionType.Orthographic; /* var newCamSo = this.SceneGraph.CreateSceneObject("ortho"); newCamSo.Transform.LocalPosition = new Vector3(0, 0, 1); var orthoCam = newCamSo.AddTrait<CameraTrait>(); orthoCam.NearPlaneDistance = 0; orthoCam.FarPlaneDistance = 2; orthoCam.Projection = CameraProjectionType.Orthographic; orthoCam.ortho_width = this.Platform.Status.Width; orthoCam.ortho_height = this.Platform.Status.Height; orthoCam.ortho_zoom = 8f; this.RuntimeConfiguration.SetRenderPassCameraTo("Default", newCamSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Gui", newCamSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", newCamSo); */ this.Engine.InputEventSystem.Tap += this.OnTap; }
public override void Start() { CommonDemoResources.Create (Platform, Engine); var lines = Engine.Assets.Load <TextAsset> ("assets/airports.bba") .Text .Split ('\n') .ToList (); foreach (var line in lines) { string[] items = line.Split(','); if (items.Length == 11) { airports.Add(new Airport(items)); } } airports.Shuffle (); airports = airports.GetRange (0, 250); Console.WriteLine("num airports: " + airports.Count); this.Configuration.BackgroundColour = Rgba32.Red; returnScene = this; float radius = 1.5f; // create a sprite var sphereMesh = new SpherePrimitive(this.Platform.Graphics); var mat = new Material("Default",CommonDemoResources.VertexLitShader); mat.SetColour("MaterialColour", Rgba32.LightGrey); earthGo = this.SceneGraph.CreateSceneObject("earth"); Entity camSo = SceneGraph.CreateSceneObject ("Scene 5 Camera"); camSo.AddTrait<CameraTrait>(); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = Transform.Origin; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(10f,4f,10f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); earthGo.Transform.LocalScale = new Vector3(2 * radius, 2 * radius, 2 * radius); var mr = earthGo.AddTrait<MeshRendererTrait>(); mr.Mesh = sphereMesh.Mesh; mr.Material = mat; //var mat2 = new Material("Default", CommonDemoResources.UnlitShader); //mat2.SetColour("MaterialColour", Rgba32.Blue); foreach (var airport in airports) { var so = this.SceneGraph.CreateSceneObject(airport.Iata); so.Transform.Parent = earthGo.Transform; var sodr = so.AddTrait<DebugRendererTrait>(); //sodr.RenderPass = "******"; sodr.Colour = Rgba32.Blue; //var somr = so.AddTrait<MeshRenderer>(); //somr.Mesh = sphereMesh; //somr.Material = mat2; var lat = airport.Latitude; var lon = airport.Longitude; Vector3 pos = new Vector3( radius * Maths.Cos(Maths.ToRadians(lat)), radius * Maths.Sin(Maths.ToRadians(lat)), 0f); Single t = Maths.ToRadians (lon); Matrix44 rot; Matrix44.CreateRotationY(ref t, out rot); Vector3 r; Vector3.Transform(ref pos, ref rot, out r); so.Transform.Position = r; so.Transform.LocalScale = new Vector3(0.015f, 0.015f, 0.015f); } this.Engine.InputEventSystem.Tap += this.OnTap; }
public override void Start() { //var meshAsset = Engine.Assets.Load <MeshAsset> (); //var vb = Platform.Graphics.CreateVertexBuffer (meshAsset.VertexDeclaration, meshAsset.VertexCount); //vb.SetData <REFLECTION> () var ta = Engine.Assets.Load <TextureAsset> ("assets/cvan01.bba"); tex1 = Platform.Graphics.CreateTexture (ta); var tb = Engine.Assets.Load <TextureAsset> ("assets/bg2.bba"); tex2 = Platform.Graphics.CreateTexture (tb); q = new Triple (); q.blend = BlendMode.Default; q.tex = tex1; q.v [0].Colour = Rgba32.Blue; q.v [0].Position.X = 0.0f; q.v [0].Position.Y = 0.0f; q.v [0].UV = new Vector2 (0, 0); q.v [1].Colour = Rgba32.Green; q.v [1].Position.X = 0.5f; q.v [1].Position.Y = 0.5f; q.v [1].UV = new Vector2 (1f, 1f); q.v [2].Colour = Rgba32.Red; q.v [2].Position.X = 0f; q.v [2].Position.Y = 0.5f; q.v [2].UV = new Vector2 (0, 1f); returnScene = this; s = new SpritePrimitive (this.Engine.PrimitiveRenderer, tex2, 64, 64, 256, 256); s.SetBlendMode (BlendMode.Default); var psi = new PrimitiveParticleSystemInfo (); psi.sprite = s; psi.fLifetime = 3f; psi.colColourStart = Rgba32.Red; psi.colColourEnd = Rgba32.Yellow; psi.nEmission = 10; psi.fSpinStart = 0.3f; psi.fRadialAccel = 0.1f; psi.fSpeed = 3f; psi.fSizeVar = 0.1f; ps = new PrimitiveParticleSystem (psi); }
public override Scene Update(AppTime time) { //this.Engine.PrimitiveRenderer.AddTriple ("Debug", q); //this.Engine.PrimitiveRenderer.AddTriple ("Gui", q); //s.Draw4V ("Gui", // 0.0f, 0.0f, // 0.5f, 0.0f, // 0.0f, 0.5f, // 0.5f, 0.5f); s.DrawEx ("Gui", 0f, 0f, 0.5f, 1f / 256f / 4f, 1f / 256f / 4f); //s.Draw ("Gui", 0f, 0f); ps.Fire (); ps.Draw ("Default"); this.Engine.DebugRenderer.AddGrid ("Debug"); if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Backspace)) { returnScene = new Scene_MainMenu(); } return returnScene; }
public override void Start() { var ta = Engine.Assets.Load <TextureAsset> ("assets/blimey_fnt_tex.bba"); tex = Platform.Graphics.CreateTexture (ta); q = new Triple (); q.blend = BlendMode.Default; q.tex = tex; q.v [0].Colour = Rgba32.Blue; q.v [0].Position.X = -0.5f; q.v [0].Position.Y = 0f; q.v [0].UV = new Vector2 (0, 1); q.v [1].Colour = Rgba32.Green; q.v [1].Position.X = 0f; q.v [1].Position.Y = 0.5f; q.v [1].UV = new Vector2 (1, 0); q.v [2].Colour = Rgba32.Red; q.v [2].Position.X = -0.5f; q.v [2].Position.Y = 0.5f; q.v [2].UV = new Vector2 (0, 0); _returnScene = this; CommonDemoResources.Create (Platform, Engine); this.Configuration.BackgroundColour = _startCol; var teaPotModel = new TeapotPrimitive(this.Platform.Graphics); var so1 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so2 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so3 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so4 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so5 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so6 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so7 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); var so8 = RandomObjectHelper.CreateShapeGO(this, "Gui", teaPotModel.Mesh, 1); so1.Transform.LocalPosition = new Vector3(-0.35f, 0f, 0f); so2.Transform.LocalPosition = new Vector3(-0.25f, 0f, 0f); so3.Transform.LocalPosition = new Vector3(-0.15f, 0f, 0f); so4.Transform.LocalPosition = new Vector3(-0.05f, 0f, 0f); so5.Transform.LocalPosition = new Vector3(+0.05f, 0f, 0f); so6.Transform.LocalPosition = new Vector3(+0.15f, 0f, 0f); so7.Transform.LocalPosition = new Vector3(+0.25f, 0f, 0f); so8.Transform.LocalPosition = new Vector3(+0.35f, 0f, 0f); _menuItemMaterials.Add(so1.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so2.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so3.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so4.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so5.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so6.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so7.GetTrait<MeshRendererTrait>().Material); _menuItemMaterials.Add(so8.GetTrait<MeshRendererTrait>().Material); _menuSceneObjects.Add(so1); _menuSceneObjects.Add(so2); _menuSceneObjects.Add(so3); _menuSceneObjects.Add(so4); _menuSceneObjects.Add(so5); _menuSceneObjects.Add(so6); _menuSceneObjects.Add(so7); _menuSceneObjects.Add(so8); this.Engine.InputEventSystem.Tap += this.OnTap; this.Engine.InputEventSystem.Flick += this.OnFlick; }
void OnTap(Gesture gesture) { _returnScene = GetSceneForCurrentSelection(); }
/// <summary> /// Initializes a new instance of the <see cref="Blimey.Blimey"/> class. /// </summary> public App(Scene startScene) { this.startScene = startScene; }
public override Scene Update(AppTime time) { if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Backspace)) { _returnScene = new Scene_MainMenu(); } this.Engine.DebugRenderer.AddGrid ("Debug"); this.Engine.DebugRenderer.AddLine( "Gui", new Vector3(-0.5f, -0.5f, 0), new Vector3(0.5f, 0.5f, 0), Rgba32.Yellow); return _returnScene; }
public static Entity CreateShapeGO(Scene scene, string renderPass, Mesh modelpart, int shaderIndex = 0) { // create a game object Entity testGO = scene.SceneGraph.CreateSceneObject ("test-" + c++); Single scale = RandomGenerator.Default.GetRandomSingle(0.25f, 0.5f); // size it testGO.Transform.LocalPosition = new Vector3( RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f), RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f), RandomGenerator.Default.GetRandomSingle(-1.28f, 1.28f)); testGO.Transform.LocalScale = new Vector3(scale, scale, scale); testGO.AddTrait<RandomLocalRotate>(); // load a texture //Texture tex = null;//scene.Engine.Resources.Load<Texture> (new Uri("\\Textures\\recycle")); Shader shader = null; if (shaderIndex == 0) shader = CommonDemoResources.PixelLitShader; else if (shaderIndex == 1) shader = CommonDemoResources.VertexLitShader; else shader = CommonDemoResources.UnlitShader; // create a material on the fly var mat = new Material(renderPass, shader); //mat.SetTexture("_texture", tex); // add a mesh renderer MeshRendererTrait meshRendererTrait = testGO.AddTrait<MeshRendererTrait> (); // set the mesh renderer's material meshRendererTrait.Material = mat; // and it's model meshRendererTrait.Mesh = modelpart; testGO.AddTrait<ColourChanger>(); return testGO; }
internal SceneRuntimeConfiguration(Scene parent) { this.parent = parent; }
void OnTap(Gesture gesture) { _returnScene = new Scene_MainMenu(); }
public SceneSceneGraph(Scene parent) { this.parent = parent; }
public override Scene Update(AppTime time) { if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Backspace)) { _returnScene = new Scene_MainMenu(); } this.Engine.DebugRenderer.AddGrid ("Debug"); _timer -= time.Delta; if( _timer < 0f ) { _timer = _cameraChangeTime; if( _defaultCamIsCurrent ) { this.RuntimeConfiguration.SetRenderPassCameraTo("Default", _alternateCamera); } else { this.RuntimeConfiguration.SetRenderPassCameraToDefault("Default"); } _defaultCamIsCurrent = !_defaultCamIsCurrent; } return _returnScene; }
public override Scene Update(AppTime time) { AppWidth = this.Platform.Status.Width; AppHeight = this.Platform.Status.Height; bgSprite.DrawEx ("Debug", 0f, 0f, 0.0f, 1f / 100f, 1f / 100f); if (timer > 0f) { timer -= time.Delta; } if (timer <= 0f) { if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown (FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown (FunctionalKey.Backspace)) { returnScene = new Scene_MainMenu (); } if (Platform.Input.GenericGamepad.Buttons.North == ButtonState.Pressed || Platform.Input.Keyboard.IsCharacterKeyDown ('d')) { debugLinesOn = !debugLinesOn; hares.ForEach (x => x.EnabledDebugRenderer (debugLinesOn)); } if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsCharacterKeyDown ('b')) { hares.ForEach (x => x.NextBlendMode ()); } if (Platform.Input.GenericGamepad.Buttons.South == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown (FunctionalKey.Spacebar)) { ChangeNumHares (); } timer = 0.2f; } if (debugLinesOn) this.Engine.DebugRenderer.AddGrid ("Debug"); if (debugLinesOn) { Single left = -(Single)(AppWidth / 2) * Settings.PixelToWorldSpace; Single right = (Single)(AppWidth / 2) * Settings.PixelToWorldSpace; Single top = (Single)(AppHeight / 2) * Settings.PixelToWorldSpace; Single bottom = -(Single)(AppHeight / 2) * Settings.PixelToWorldSpace; this.Engine.DebugRenderer.AddQuad ( "Default", new Vector3 (left, bottom, 0), new Vector3 (right, bottom, 0), new Vector3 (right, top, 0), new Vector3 (left, top, 0), Rgba32.Yellow); } return returnScene; }
void OnTap(Gesture gesture) { returnScene = new Scene_MainMenu (); woodTex.Dispose (); // Clean up the things we allocated on the GPU. this.Platform.Graphics.DestroyShader (shader); shader = null; }
public override Scene Update(AppTime time) { this.Engine.DebugRenderer.AddGrid ("Debug", 1f, 10); timer -= time.Delta; if (timer < 0f) { timer = timeWindow; goOut = !goOut; if (goOut) x = !x; } float f = timer / timeWindow; if (goOut) f = 1f - f; f = f * 2f; target.Position = new Vector3 ( x ? f : 0f, 0, x ? 0f : f); this.Engine.DebugRenderer.AddLine ( "Default", target.Position, target.Position + new Vector3 (0f, 10f, 0f), Rgba32.Orange); this.Engine.DebugRenderer.AddLine ( "Default", las.Subject.Position, new Vector3(cam.Transform.Position.X, 0f, cam.Transform.Position.Z), Rgba32.Lime); markerGo.Transform.Position = target.Position + new Vector3 (0f, 0.2f, 0f); if (Platform.Input.GenericGamepad.Buttons.East == ButtonState.Pressed || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Escape) || Platform.Input.Keyboard.IsFunctionalKeyDown(FunctionalKey.Backspace)) { returnScene = new Scene_Shapes3(); } return returnScene; }
public Scene_Sprites() { returnScene = this; }
void OnDoubleTap(Gesture gesture) { returnScene = new Scene_MainMenu (); // Clean up the things we allocated on the GPU. this.Platform.Graphics.DestroyShader (shader); this.Platform.Graphics.DestroyTexture (tex); shader = null; }