private void GenerateMapChunk() { int width = (int)mapSize.x; int height = (int)mapSize.y; MapChunkGenerator generator = new MapChunkGenerator(); currentChunk = generator.generateInitial(width, height); }
public override void OnInspectorGUI() { MapChunkGenerator chunkGen = (MapChunkGenerator)target; if (DrawDefaultInspector()) { if (chunkGen.autoUpdate) { chunkGen.GenerateChunk(); } } if (GUILayout.Button("Generate")) { chunkGen.GenerateChunk(); } if (GUILayout.Button("Clear")) { chunkGen.ClearChunk(); } }
public void FixedUpdate() { int width = (int)mapSize.x; int height = (int)mapSize.y; int nbToCopy = 5; Rigidbody2D rb = player.GetComponent <Rigidbody2D>(); Vector3 localVelocity = player.transform.InverseTransformDirection(rb.velocity); MapChunkGenerator generator = new MapChunkGenerator(); // Debug.Log("x : " + localVelocity.x + " y : " + localVelocity.y); // Debug.Log("x/y : " + player.transform.position.x + "/" + player.transform.position.y); float borderTop = mapSize.y / 2; float borderBottom = -borderTop; float borderRight = mapSize.x / 2; float borderLeft = -borderRight; if (player.transform.position.y > borderTop && localVelocity.y > 0) { currentChunk = generator.generateTopOf( currentChunk, currentChunk.getPositionX(), currentChunk.getPositionY() - 1, width, height, nbToCopy ); FulfilTileMap(); Vector2 newPosition = new Vector2(player.transform.position.x, borderBottom); player.transform.position = newPosition; } else if (player.transform.position.y < borderBottom && localVelocity.y < 0) { currentChunk = generator.generateBottomOf( currentChunk, currentChunk.getPositionX(), currentChunk.getPositionY() + 1, width, height, nbToCopy ); FulfilTileMap(); Vector2 newPosition = new Vector2(player.transform.position.x, borderTop); player.transform.position = newPosition; } else if (player.transform.position.x < borderLeft && localVelocity.x < 0) { currentChunk = generator.generateLeftOf( currentChunk, currentChunk.getPositionX() - 1, currentChunk.getPositionY(), width, height, nbToCopy ); FulfilTileMap(); Vector2 newPosition = new Vector2(borderRight, player.transform.position.y); player.transform.position = newPosition; } else if (player.transform.position.x > borderRight && localVelocity.x > 0) { currentChunk = generator.generateRightOf( currentChunk, currentChunk.getPositionX() + 1, currentChunk.getPositionY(), width, height, nbToCopy ); FulfilTileMap(); Vector2 newPosition = new Vector2(borderLeft, player.transform.position.y); player.transform.position = newPosition; } }