void Start() { _terrian = new Terrian(size); Game.Instance.Planet = this; Game.Instance.Terrian = _terrian; chunks = GetComponent <Chunks> (); Debug.Assert(chunks != null); water = GetComponent <Water> (); Debug.Assert(water != null); var center = new Vector3(-size / 2, -size / 2, -size / 2) + (new Vector3() * 0.5f); gameObject.transform.position = center; Terrian.Generate(); trees = new Trees(this, _terrian); trees.treesNum = treesNum; if (!hideTrees) { trees.Generate(); } loadData(); chunks.UpdateMesh(); water.Load(chunks); }
public Perlin(IListener <IGameObject> scoreListener, IListener <ISoundable> soundListener) : base(scoreListener, soundListener) { perlinNoiseGenerator = new PerlinNoiseGenerator(5120); noiseConverter = new NoiseConverter(); noiseConverter.SetSize(40, 16); terrian = new Terrian(scoreListener, soundListener, noiseConverter); noiseConverter.NewData(); }
/// <summary> /// Draws everything that has been created /// </summary> public void RenderScene() { while (!shutdown) { if (!IsDeviceLost()) { DeviceManager.LocalDevice.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.Black, 1.0f, 0); DeviceManager.LocalDevice.BeginScene(); lock (Meshes) { foreach (var item in Meshes) { item.RenderMesh(); if (Gravity) { float speed = (gravityTimer.ElapsedMilliseconds * .05f) / 1000; float newPosition = item.ObjectPosition.Y - speed; if (Terrian != null && item.ObjectPosition.X >= 0 && item.ObjectPosition.X < Terrian.Height.Length) { float terrainHeight = Terrian.Height[(int)item.ObjectPosition.X, (int)item.ObjectPosition.Z] + (item.ObjectScale.Y / 2); newPosition = newPosition < terrainHeight ? terrainHeight : newPosition; } item.Translate(item.ObjectPosition.X, newPosition, item.ObjectPosition.Z); } } } lock (Lights) { if (!IsGlobalLightOn) { foreach (var item in Lights) { item.Render(); } } } if (Terrian != null) { Terrian.Render(); } DeviceManager.LocalDevice.EndScene(); DeviceManager.LocalDevice.Present(); } } }
/* * public void set_type(int _type){ * type = _type; * * blocksprite.set_sprite(BlockSprites.get().dungeonSprite[type]); * //spriteRenderer.sprite = BlockSprites.get().dungeonSprite[type]; * } */ public void set_terrian(Terrian _terrian) { if (terrian != null) { Destroy(terrian.transform.gameObject); terrian = null; } terrian = _terrian;//TerrianCreator.create_terrian(type) terrian.transform.SetParent(gameObject.transform); terrian.transform.position = gameObject.transform.position; terrian.transform.localScale = gameObject.transform.localScale; }
public void init(int x, int y) { cur_obj = gameObject; pos_x = x; pos_y = y; building = null; terrian = null; //Debug.Log("name="+cur_obj.name); //GameObject obj = GameObject.Find("Front"); //if (obj != null)front = obj.GetComponent<Front>(); /* * for(int i = 0; i < cur_obj.transform.childCount; i++){ * GameObject obj = gameObject.transform.GetChild(i).gameObject; * if (obj.name == "Front"){ * front = obj.GetComponent<Front>(); * Debug.Log("init front"); * break; * } * } * type = Random.Range(0, BlockSprites.get().frontSprite.Length); * front.set_sprite(BlockSprites.get().frontSprite[type]); */ midsprite = SpriteR.new_sprite(); midsprite.set_sorting_layer("mid"); midsprite.transform.SetParent(cur_obj.transform); mid_type = Random.Range(0, BlockSprites.get().midSprite.Length); midsprite.set_sprite(BlockSprites.get().midSprite[mid_type]); frontsprite = SpriteR.new_sprite(); frontsprite.set_sorting_layer("front"); frontsprite.transform.SetParent(cur_obj.transform); front_type = Random.Range(0, BlockSprites.get().frontSprite.Length); frontsprite.set_sprite(BlockSprites.get().frontSprite[front_type]); front2sprite = SpriteR.new_sprite(); front2sprite.set_sorting_layer("front2"); front2sprite.transform.SetParent(cur_obj.transform); //front2_type = Random.Range(0, BlockSprites.get().front2Sprite.Length); front2_type = 1; front2sprite.set_sprite(BlockSprites.get().front2Sprite[front2_type]); front3sprite = SpriteR.new_sprite(); front3sprite.set_sorting_layer("front3"); front3sprite.transform.SetParent(cur_obj.transform); front3sprite.set_sprite(BlockSprites.get().transparent); }
public static Terrian create_terrian(int i) { Terrian ins = Instantiate(instance.terrians[i].GetComponent <Terrian>()) as Terrian; return(ins); }