public override void Initialize() { base.Initialize(); // Camera var camera = new CameraPrefab("camera"); camera.AddComponent <OrbitController>(); camera.AddComponent <DemoBehaviour>(); Add(camera); // Light var lightPrefab = new LightPrefab("lightPrefab", LightType.Directional); lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); Add(lightPrefab); var sceneObject = new SceneObject("HexaGrid"); sceneObject.AddComponent <HexaGridBuilder>(); Add(sceneObject); // Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox); Screen.ShowCursor = true; }
private void InternalAddSceneObject(string type) { GameObject sceneObject = null; switch (type) { case "Cube": sceneObject = new MeshPrefab(type, new CubeGeometry()); break; case "Cylinder": sceneObject = new MeshPrefab(type, new CylinderGeometry()); break; case "Quad": sceneObject = new MeshPrefab(type, new QuadGeometry()); break; case "Plane": sceneObject = new MeshPrefab(type, new PlaneGeometry()); break; case "Pyramid": sceneObject = new MeshPrefab(type, new PyramidGeometry()); break; case "Sphere": sceneObject = new MeshPrefab(type, new SphereGeometry()); break; case "Torus": sceneObject = new MeshPrefab(type, new TorusGeometry()); break; case "Terrain": var terrain = new TerrainPrefab(type); terrain.Flatten(); terrain.Renderer.Material = DefaultMaterial; sceneObject = terrain; break; case "Water": var water = new WaterPrefab(type); Add(water); water.Generate(string.Empty, string.Empty, new Vector3(10)); water.Renderer.Material = GetMaterialByName("WaterMaterial"); sceneObject = water; break; case "Directional": sceneObject = CreateLightNode(type, LightType.Directional); break; case "Point": sceneObject = CreateLightNode(type, LightType.Point); break; case "Spot": sceneObject = CreateLightNode(type, LightType.Spot); break; case "Camera": sceneObject = new CameraPrefab(type); sceneObject.AddComponent <EDBoxCollider>(); var camRenderer = sceneObject.AddComponent <EDMeshRenderer>(); camRenderer.CastShadow = false; camRenderer.ReceiveShadow = false; camRenderer.Geometry = new QuadGeometry(); camRenderer.Geometry.Build(); camRenderer.Material = GetMaterialByName("Camera"); break; default: break; } InternalAddSceneObject(sceneObject); }
public override void Initialize() { base.Initialize(); // Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.BlueSkybox); // Camera var camera = new CameraPrefab("camera"); camera.AddComponent <ControllerSwitcher>(); camera.AddComponent <DemoBehaviour>(); Add(camera); // Light var lightPrefab = new LightPrefab("light", LightType.Directional); lightPrefab.Transform.Translate(0, 10, 0); lightPrefab.Light.Range = 25; lightPrefab.Light.Intensity = 1.0f; lightPrefab.Light.FallOf = 5f; lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.Angle = MathHelper.PiOver4; lightPrefab.Light.ShadowGenerator.ShadowStrength = 0.6f; lightPrefab.Light.ShadowGenerator.SetShadowMapSize(Application.GraphicsDevice, 1024); lightPrefab.EnableShadows = true; Add(lightPrefab); // Finally a terrain var terrainMat = new TerrainMaterial(scene); var terrain = new TerrainPrefab("terrain"); terrain.Randomize(4, 12); terrain.Renderer.Material = terrainMat; terrain.Transform.Translate(-terrain.Width >> 1, 0, -terrain.Depth / 2); Add(terrain); terrain.SetWeightData(0.5f, 4, 15, 30); terrainMat.Texture = Application.Content.Load <Texture2D>("Textures/Terrain/Grass"); terrainMat.SandTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Sand"); terrainMat.SnowTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Snow"); terrainMat.RockTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock"); terrainMat.WeightTexture = terrain.GenerateWeightMap(); terrainMat.Tiling = new Vector2(4); // Water ! var water = new WaterPrefab("water"); Add(water); water.Generate("Textures/water", "Textures/wavesbump", new Vector3(terrain.Width * 0.5f)); var waterMat = water.Renderer.Material as WaterMaterial; waterMat.ReflectiveMap = scene.RenderSettings.Skybox.Texture; waterMat.WaterTransparency = 0.6f; }
public override void Initialize() { base.Initialize(); var camera = new CameraPrefab("Camera"); camera.AddComponent <UIWidgetDemo>(); camera.AddComponent <DemoBehaviour>(); Add(camera); }
public override void Initialize() { base.Initialize(); // Add a camera with a FPS controller var camera = new CameraPrefab("camera"); camera.Setup(new Vector3(0, 2, -10), new Vector3(0, 0, 0), Vector3.Up); camera.AddComponent <ControllerSwitcher>(); Add(camera); // And a light var lightPrefab = new LightPrefab("light", LightType.Directional); Add(lightPrefab); lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.Color = Color.LightSkyBlue; lightPrefab.Light.Intensity = 1.0f; lightPrefab.AddComponent <DemoBehaviour>(); lightPrefab.EnableShadows = true; // Finally a terrain var terrainMat = new TerrainMaterial(scene); var terrain = new TerrainPrefab("terrain"); scene.Add(terrain); terrain.LoadHeightmap("Textures/heightmap"); terrain.Renderer.Material = terrainMat; terrain.Transform.Translate(-terrain.Width >> 1, -10, -terrain.Depth >> 1); terrain.AddComponent <WeightMapViewer>(); var map = terrain.GenerateWeightMap(); terrainMat.Texture = Application.Content.Load <Texture2D>("Textures/Terrain/Grass"); terrainMat.SandTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Sand"); terrainMat.SnowTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Snow"); terrainMat.RockTexture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock"); terrainMat.WeightTexture = map; terrainMat.Tiling = new Vector2(4); // With water ! var water = new WaterPrefab("water"); scene.Add(water); water.Generate("Textures/water", "Textures/wavesbump", new Vector3(terrain.Width * 0.5f)); Screen.ShowCursor = true; // Don't miss the Skybox ;) RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.BlueSkybox); // And fog RenderSettings.FogDensity = 0.0085f; RenderSettings.FogMode = FogMode.Exp2; }
public override void Initialize() { base.Initialize(); GUI.Skin = DemoGame.CreateSkin(Application.Content, false); var camera = new CameraPrefab("cam"); camera.AddComponent <MenuBehaviour>(); camera.AddComponent <PointerCoordDebug>(); Add(camera); }
public override void Initialize() { base.Initialize(); // First we add a Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox); // And a camera with some components var camera = new CameraPrefab("camera"); camera.AddComponent <ControllerSwitcher>(); camera.AddComponent <DemoBehaviour>(); Add(camera); // A light is required to illuminate objects. var lightPrefab = new LightPrefab("light", LightType.Directional); lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.ShadowGenerator.SetShadowMapSize(Application.GraphicsDevice, 1024); lightPrefab.EnableShadows = true; Add(lightPrefab); // A terrain with its material. var terrainMaterial = new StandardMaterial(scene); terrainMaterial.Texture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock"); terrainMaterial.Shininess = 150; terrainMaterial.Tiling = new Vector2(8); var terrain = new TerrainPrefab("terrain"); terrain.Renderer.Geometry.Size = new Vector3(2); terrain.Renderer.ReceiveShadow = true; terrain.Randomize(4, 12); terrain.Renderer.Material = terrainMaterial; terrain.Transform.Translate(-terrain.Width >> 1, 0, -terrain.Depth / 2); Add(terrain); // Lava ! var lavaMaterial = new LavaMaterial(this); lavaMaterial.Texture = Application.Content.Load <Texture2D>("Textures/lava_texture"); lavaMaterial.NormalMap = Application.Content.Load <Texture2D>("Textures/lava_bump"); var lava = new WaterPrefab("water"); lava.Renderer.Material = lavaMaterial; lava.Renderer.ReceiveShadow = true; lava.Renderer.Geometry.Size = new Vector3(terrain.Width * 0.5f); lava.Renderer.Geometry.Build(); Add(lava); }
protected override void LoadContent() { #if USE_KINECT _kinectChooser.LoadContent(); #endif PrefabRepository.Instance.RegisterPrefab("Robot", RobotPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("DamagedRobot1", DamagedRobot1Prefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Crate", CratePrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Mesh", SimpleMeshPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Camera", CameraPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab(MenuCubePrefab.PrefabName, MenuCubePrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Button", ButtonPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Floor", FloorPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Wall", WallPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("LiftedDoor", LiftedDoorPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Trigger", TriggerPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Saf", SafPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("FloorBridge", FloorBridgePrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("UpgradePlatform", UpgradePlatformPrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("Pipe", PipePrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("SafCollectible", SafCollectiblePrefab.CreatePrefab()); PrefabRepository.Instance.RegisterPrefab("WallBackground", SimpleMeshPrefab.CreatePrefab("models/quad", "WallMaterial", "wall-node")); PrefabRepository.Instance.RegisterPrefab("WallMenu", SimpleMeshPrefab.CreatePrefab("models/quad", "WallMenuMaterial", "wall-node-2")); PrefabRepository.Instance.RegisterPrefab("WallMenu2", SimpleMeshPrefab.CreatePrefab("models/quad", "WallMenuMaterial2", "wall-node-3")); MaterialRepository.Instance.RegisterMaterial("MenuCubeMaterial", args => MenuCubeMaterial.CreateMaterial(args)); MaterialRepository.Instance.RegisterMaterial("SafMaterial", args => SafMaterial.CreateMaterial()); MaterialRepository.Instance.RegisterMaterial("HighlightMaterial", args => HighlightMaterial.CreateMaterial()); // Unlit materials for style2.0 MaterialRepository.Instance.RegisterMaterial("ButtonMaterial", args => TexturedMaterial.CreateMaterial("color_button")); MaterialRepository.Instance.RegisterMaterial("RobotMaterial", args => TexturedMaterial.CreateMaterial("color_robo")); MaterialRepository.Instance.RegisterMaterial("UPlatformMaterial", args => TexturedMaterial.CreateMaterial("color_uplatform")); MaterialRepository.Instance.RegisterMaterial("CrateMaterial", args => TexturedMaterial.CreateMaterial("color_crate")); MaterialRepository.Instance.RegisterMaterial("CelShadingMaterial", args => TexturedMaterial.CreateMaterial("color_crate")); MaterialRepository.Instance.RegisterMaterial("InnerDoorMaterial", args => TexturedMaterial.CreateMaterial("color_door_inner")); MaterialRepository.Instance.RegisterMaterial("OuterDoorMaterial", args => TexturedMaterial.CreateMaterial("color_door_outer")); MaterialRepository.Instance.RegisterMaterial("WallMaterial", args => TexturedMaterial.CreateMaterial("empty_gray")); MaterialRepository.Instance.RegisterMaterial("TileMaterial", args => TexturedMaterial.CreateMaterial("empty_dark_gray")); MaterialRepository.Instance.RegisterMaterial("FloorBridgeMaterial", args => TexturedMaterial.CreateMaterial("color_bridge")); MaterialRepository.Instance.RegisterMaterial("PipeMaterial", args => TexturedMaterial.CreateMaterial("color_pipe")); MaterialRepository.Instance.RegisterMaterial("PowerupSphereMaterial", args => TexturedMaterial.CreateMaterial("empty_dark_gray")); }
protected override void OnTriggerEnter2D(Collider2D _col) { if (!IsLaunching) { return; } base.OnTriggerEnter2D(_col); switch (_col.gameObject.tag) { case "Player": MyAudio.PlaySound(HitAduio); EffectEmitter.EmitParticle("bloodEffect", transform.position, new Vector3(0, 0, 180 - MyMath.GetAngerFormTowPoint2D(BattleManager.MyPlayerRole.transform.position, transform.position)), null); BattleManager.MyPlayerRole.BeStruck(Damage); SelfDestroy(); break; case "PlayerShield": MyAudio.PlaySound(HitShieldAduio); EffectEmitter.EmitParticle("shieldhit", transform.position, new Vector3(0, 0, 180 - MyMath.GetAngerFormTowPoint2D(BattleManager.MyPlayerRole.transform.position, transform.position)), null); BattleManager.MyPlayerRole.ShieldBeSruck(Damage); SelfDestroy(); break; case "LeftCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 180), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, 0); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); Vector2 dir = MyRigi.velocity; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + 180; AmmoSR.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); TrailEffect.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); } break; case "RightCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, Vector3.zero, null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, 0); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); Vector2 dir = MyRigi.velocity; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + 180; AmmoSR.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); TrailEffect.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); } break; case "TopCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 90), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, 0); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); Vector2 dir = MyRigi.velocity; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + 180; AmmoSR.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); TrailEffect.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); } break; case "BotCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 270), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, 0); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); Vector2 dir = MyRigi.velocity; float angle = Mathf.Atan2(dir.y, dir.x) * Mathf.Rad2Deg + 180; AmmoSR.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); TrailEffect.transform.rotation = Quaternion.Euler(AmmoSR.transform.localRotation.x, AmmoSR.transform.localRotation.y, angle); } break; default: break; } }
public override void Initialize() { base.Initialize(); // Camera var camera = new CameraPrefab("camera"); camera.AddComponent <OrbitController>(); camera.AddComponent <RayPickingTester>(); Add(camera); // Light var lightPrefab = new LightPrefab("lightPrefab", LightType.Point); Add(lightPrefab); lightPrefab.Transform.Position = new Vector3(0, 15, 15); lightPrefab.Light.Range = 105; lightPrefab.Light.Intensity = 2.0f; lightPrefab.Light.FallOf = 5f; lightPrefab.Light.Color = Color.Violet; lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.Angle = 0.1f; lightPrefab.Light.ShadowGenerator.ShadowStrength = 0.6f; // FIXME need to be inverted lightPrefab.Light.ShadowGenerator.SetShadowMapSize(Application.GraphicsDevice, 1024); lightPrefab.EnableShadows = true; lightPrefab.AddComponent <LightSwitcher>(); lightPrefab.AddComponent <LightMover>(); lightPrefab.AddComponent <DemoBehaviour>(); var lightPrefabSphere = lightPrefab.AddComponent <MeshRenderer>(); lightPrefabSphere.Geometry = new SphereGeometry(2f, 4); lightPrefabSphere.Geometry.Build(); lightPrefabSphere.CastShadow = false; lightPrefabSphere.ReceiveShadow = false; lightPrefabSphere.Material = new SimpleMaterial(scene); lightPrefabSphere.Material.Texture = GraphicsHelper.CreateTexture(Color.Yellow, 1, 1); // Terrain var terrainMaterial = new StandardMaterial(scene); terrainMaterial.Texture = GraphicsHelper.CreateBorderTexture(Color.LightGreen, Color.LightSeaGreen, 128, 128, 4); terrainMaterial.Shininess = 10; terrainMaterial.Tiling = new Vector2(16); var terrain = new TerrainPrefab("terrain"); terrain.Renderer.Geometry.Size = new Vector3(4); terrain.Renderer.Geometry.Build(); terrain.Flatten(); terrain.Renderer.Material = terrainMaterial; terrain.Transform.Translate(-terrain.Width >> 1, 0, -terrain.Depth / 2); Add(terrain); // Cube var cubeSuperMaterial = new StandardMaterial(scene); cubeSuperMaterial.Texture = GraphicsHelper.CreateCheckboardTexture(Color.FloralWhite, Color.DodgerBlue); cubeSuperMaterial.DiffuseColor = Color.WhiteSmoke; cubeSuperMaterial.SpecularColor = new Color(0.8f, 0.8f, 0.8f, 1.0f); cubeSuperMaterial.Shininess = 10; cubeSuperMaterial.EmissiveColor = new Color(0f, 0.0f, 0.2f, 1.0f); var cubeScene = new SceneObject(); cubeScene.Transform.Translate(0, 6f, 0); cubeScene.Transform.LocalScale = new Vector3(4.0f); cubeScene.Transform.Rotate((float)Math.PI / 4, 0, (float)Math.PI / 4); var autoRot = cubeScene.AddComponent <AutoRotation>(); autoRot.Rotation = new Vector3(0, 0.01f, 0); Add(cubeScene); var cube = cubeScene.AddComponent <MeshRenderer>(); cube.ReceiveShadow = false; cube.Geometry = new CubeGeometry(); cube.Geometry.Build(); cube.Material = cubeSuperMaterial; cubeScene.AddComponent <BoxCollider>(); // Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox, 500); Screen.ShowCursor = true; }
public virtual void BeStruck(int _dmg) { EffectEmitter.EmitParticle("hitEffect", transform.position, Vector3.zero, null); CameraPrefab.DoAction("Shake2", 0); ReceiveDmg(_dmg); }
public override void Initialize() { base.Initialize(); Application.Engine.Renderer = new PreLightRenderer(); // Camera var camPrefab = new CameraPrefab("camera"); camPrefab.AddComponent <DemoBehaviour>(); var camera = camPrefab.GetComponent <Camera>(); camera.Far = 50000; var orbit = camPrefab.AddComponent <OrbitController>(); orbit.MaxDistance = 250; Add(camPrefab); // Terrain var groundMaterial = new PreLightMaterial(scene); groundMaterial.Texture = GraphicsHelper.CreateCheckboardTexture(Color.LightGreen, Color.LightSeaGreen, 128, 128); groundMaterial.Tiling = new Vector2(16); var ground = new TerrainPrefab("terrain"); ground.Renderer.Geometry.Size = new Vector3(4, 1, 4); ground.Flatten(); ground.Renderer.Material = groundMaterial; ground.Transform.Translate(-ground.Width >> 1, 0, -ground.Depth / 2); Add(ground); MeshRenderer cube = null; var maxCubes = 24; var limits = 250; for (int i = 0; i < maxCubes; i++) { var size = RandomHelper.GetVector3(0.5f, 0.5f, 0.5f, 16, 16, 16); cube = CreateCube(size, RandomHelper.GetVector3(-limits, size.Y, -limits, limits, size.Y, limits)); cube.Material = new PreLightMaterial(this); cube.Material.Texture = GraphicsHelper.CreateCheckboardTexture(RandomHelper.GetColor(), RandomHelper.GetColor()); Add(cube.SceneObject); } for (int i = 0; i < 4; i++) { AddObject(); } // Skybox RenderSettings.AmbientColor = new Color(0.15f, 0.15f, 0.15f, 1.0f); RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox, 1500.0f); Screen.ShowCursor = true; var margin = 80; AddBackedLight(new Vector3(0, 15, 0), Color.DarkCyan, 35); AddBackedLight(new Vector3(margin, 15, margin), Color.Red); AddBackedLight(new Vector3(-margin, 15, margin), Color.Blue); AddBackedLight(new Vector3(margin, 15, -margin), Color.Green); AddBackedLight(new Vector3(-margin, 15, -margin), Color.Yellow); }
void Start() { MyCameraPrefab = this.GetComponent <CameraPrefab>(); }
public override void Initialize() { base.Initialize(); // Skybox RenderSettings.Skybox.Generate(Application.GraphicsDevice, Application.Content, DemoGame.StarsSkybox); // Camera var camera = new CameraPrefab("camera"); camera.Transform.Translate(0, 25, 0); camera.AddComponent <DemoBehaviour>(); camera.AddComponent <PostProcessSwitcher>(); Add(camera); var orbitController = camera.AddComponent <OrbitController>(); // Light var lightPrefab = new LightPrefab("light", LightType.Directional); lightPrefab.Transform.Rotation = new Vector3(-1, 1, 0); lightPrefab.Light.ShadowGenerator.SetShadowMapSize(Application.GraphicsDevice, 1024); lightPrefab.EnableShadows = true; lightPrefab.Light.Intensity = 0.5f; lightPrefab.Light.FallOf = 5.0f; Add(lightPrefab); // Terrain var terrainMaterial = new StandardMaterial(scene); terrainMaterial.Texture = Application.Content.Load <Texture2D>("Textures/Terrain/Rock"); terrainMaterial.Shininess = 50; terrainMaterial.Tiling = new Vector2(8); var terrain = new TerrainPrefab("terrain"); terrain.Renderer.Geometry.Size = new Vector3(2); terrain.Renderer.ReceiveShadow = true; terrain.Randomize(4, 15, 0.086, 0.25, true); terrain.Renderer.Material = terrainMaterial; terrain.Transform.Translate(-terrain.Width >> 1, 0, -terrain.Depth / 2); Add(terrain); // Lava var lava = new LavaPrefab("water"); Add(lava); lava.Generate("Textures/lava_texture", "Textures/lava_bump", new Vector3(terrain.Width * 0.5f)); var jack = new ModelPrefab("Jack"); jack.Transform.Rotate(-MathHelper.PiOver2, MathHelper.Pi, 0); jack.Transform.Translate(0, 35, 0); jack.Transform.LocalScale = new Vector3(4); jack.LoadModel("Models/Jack/JackOLantern"); var jackMaterial = new StandardMaterial(this); jackMaterial.EmissiveColor = new Color(0.2f, 0.005f, 0); jackMaterial.Texture = Application.Content.Load <Texture2D>("Models/Jack/PumpkinColor"); jack.Renderer.Material = jackMaterial; Add(jack); orbitController.LookAt(jack.Transform); orbitController.Distance = 150.0f; }
protected override void OnTriggerEnter2D(Collider2D _col) { base.OnTriggerEnter2D(_col); switch (_col.gameObject.tag) { case "BounceWall": MyAudio.PlaySound(HitHardWallAduio); PowerUp(); MyRigi.velocity = _col.GetComponent <BounceWallObj>().GetVelocity(MyRigi.velocity); break; case "LeftCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 180), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, Dragproportion); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); } break; case "RightCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, Vector3.zero, null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, Dragproportion); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); } break; case "TopCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 90), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, Dragproportion); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); } break; case "BotCol": MyAudio.PlaySound(HitWallAduio); EffectEmitter.EmitParticle("bounceEffect", transform.position, new Vector3(0, 0, 270), null); CameraPrefab.DoAction("Shake", 0); if (CurBounceTimes == 0) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetDragForce(MyRigi.velocity, Dragproportion); } if (Bounce()) { MyRigi.velocity = _col.GetComponent <NormalWallObj>().GetVelocity(MyRigi.velocity); } break; case "EnemyShield": if (IsHitTarget) { return; } MyAudio.PlaySound(HitShieldAduio); Vector2 effectPos = Vector2.Lerp(BattleManager.MyEnemyRole.transform.position, transform.position, 0.8f); EffectEmitter.EmitParticle("shieldhit", effectPos, new Vector3(0, 0, 180 - MyMath.GetAngerFormTowPoint2D(BattleManager.MyEnemyRole.transform.position, transform.position)), null); BattleManager.MyEnemyRole.ShieldBeSruck(Damage); AmmoHitCondition = HitCondition.HitShell; SelfDestroy(); IsHitTarget = true; break; case "Monster": if (IsHitTarget) { return; } MyAudio.PlaySound(HitAduio); EffectEmitter.EmitParticle("bloodEffect", transform.position, new Vector3(0, 0, 180 - MyMath.GetAngerFormTowPoint2D(BattleManager.MyEnemyRole.transform.position, transform.position)), null); BattleManager.MyEnemyRole.BeStruck(Damage); AmmoHitCondition = HitCondition.Hit; SelfDestroy(); IsHitTarget = true; break; default: break; } }