コード例 #1
0
ファイル: MapGenerator.cs プロジェクト: MarcelSansuer/BA2017
// show the result to the screen
    private void getDisplay()
    {
        MapData mapData = GenerateMap(Vector2.zero);

        if (FindObjectOfType <MapDisplay>())
        {
            MapDisplay display = FindObjectOfType <MapDisplay>();

            if (mode == DrawMode.Noise)
            {
                display.drawTexture2D(GenerateTexture.TextureFromNoiseMap(mapData.noiseMap));
            }
            else if (mode == DrawMode.Color)
            {
                display.drawTexture2D(GenerateTexture.textureFromColorMap(mapChunkSize
                                                                          , mapChunkSize, mapData.colorMap));
            }
            else if (mode == DrawMode.Mesh)
            {
                display.drawMesh(MashGenerator.GenerateMash(mapData.noiseMap, heightMultiplier, meshHeightCurve, previewLOD), GenerateTexture.textureFromColorMap(mapChunkSize
                                                                                                                                                                  , mapChunkSize, mapData.colorMap));
            }
        }
        else
        {
            print("Not found");
        }
    }
コード例 #2
0
    /// <summary>
    /// Gets the sprite used for the given type
    /// </summary>
    public static Sprite GetSprite(BlockType type)
    {
        Texture2D texture = GenerateTexture.CreateRandomTexture(GenerateTexture.GetAvailableColors(GenerateTexture.GetPallete(type)), 10, 10);

        return(Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), new Vector2(0.5f, 0.5f), Mathf.Max(new int[2] {
            texture.height, texture.width
        })));
    }
    // Use this for initialization
    public void Initialize()
    {
        palleteColors = GenerateTexture.GetAvailableColors(color);
        render        = gameObject.GetComponent <SpriteRenderer> ();
        Texture2D texture = GenerateTexture.CreateRandomTexture(palleteColors, textureSize, textureSize);

        render.sprite = Sprite.Create(texture, new Rect(0, 1, texture.width, texture.height), new Vector2(0.5f, 0.5f), Mathf.Max(new int[2] {
            texture.width,
            texture.height
        }));
    }
コード例 #4
0
        void OnMapDataReceived(MapData mapData)
        {
            //mapGenerator.RequestMeshData (mapData, OnMeshDataReceived);
            this.mapData    = mapData;
            mapDataReceived = true;

            Texture2D texture = GenerateTexture.textureFromColorMap(MapGenerator.mapChunkSize, MapGenerator.mapChunkSize, mapData.colorMap);

            meshRenderer.material.mainTexture = texture;

            UpdateTerrainChunk();
        }
 public void SetColor(GenerateTexture.PalleteType color)
 {
     this.color    = color;
     palleteColors = GenerateTexture.GetAvailableColors(color);
     render.sprite.texture.SetPixels(GenerateTexture.CreateRandomTexture(palleteColors, textureSize, textureSize).GetPixels());
     render.sprite.texture.Apply();
     if (color == GenerateTexture.PalleteType.sand || color == GenerateTexture.PalleteType.grey)
     {
         flowingTexture = false;
     }
     else
     {
         flowingTexture = true;
     }
 }
コード例 #6
0
    public override void OnInspectorGUI()
    {
        GenerateTexture mapGen = (GenerateTexture)target;

        if (DrawDefaultInspector())
        {
            if (mapGen.autoUpdate)
            {
                mapGen.UpdateTexture();
            }
        }
        if (GUILayout.Button("Generate"))
        {
            mapGen.UpdateTexture();
        }
    }
 // Update is called once per frame
 protected void CallOnFixedUpdate()
 {
     if (flowingTexture)
     {
         updatesSinceLastMove++;
         updatesSinceLastCleanup++;
         if (updatesSinceLastMove >= requiredUpdatesSinceLastMove)
         {
             if (updatesSinceLastCleanup >= requiredUpdatesSinceLastCleanup)
             {
                 GenerateTexture.ProgressTexture(render.sprite.texture, true, palleteColors);
                 updatesSinceLastCleanup = Random.Range(0, 20);
             }
             else
             {
                 GenerateTexture.ProgressTexture(render.sprite.texture, false, palleteColors);
             }
             updatesSinceLastMove = 0;
         }
     }
 }
コード例 #8
0
    /// <summary>
    /// Displays a block with the blocks type at position x,y. If the block is already displayed, the previous displayer will be destroyed
    /// </summary>
    public void DisplayObject(int x, int y)
    {
        if (visualiser == null)
        {
            SpriteRenderer renderer = MonoBehaviour.Instantiate(visualiserPrefab) as SpriteRenderer;
            renderer.transform.position = new Vector3((float)x, (float)y, 0);
            if (parent == null)
            {
                parent = new GameObject().transform;
                parent.gameObject.name = "Blocks";
            }
            if (type == BlockType.player)
            {
                renderer.name = "PLAYER";
            }
            renderer.transform.SetParent(parent);
            BlockVisualManager manager = renderer.GetComponent <BlockVisualManager>();
            manager.block = this;
            manager.posx  = x;
            manager.posy  = y;

            visualiser = renderer;
            Sprite sprite = GetSprite(type);
            visualiser.sprite = sprite;

            visualiser.gameObject.GetComponent <RandomlyTexturedObjectController>().Initialize();
            visualiser.gameObject.GetComponent <RandomlyTexturedObjectController> ().SetColor(GenerateTexture.GetPallete(type));
        }
    }
コード例 #9
0
 /// <summary>
 /// Sets the type of the block, and updates it's display (if any) to reflect the new type
 /// </summary>
 public void SetType(BlockType newType)
 {
     if (newType != type)
     {
         if (isAlsoGoal && newType == BlockType.background)
         {
             type = BlockType.goal;
             if (visualiser != null)
             {
                 visualiser.sprite = GetSprite(BlockType.goal);
             }
             return;
         }
         type = newType;
         if (visualiser != null)
         {
             visualiser.sprite = GetSprite(type);
             visualiser.gameObject.GetComponent <RandomlyTexturedObjectController> ().SetColor(GenerateTexture.GetPallete(type));
         }
     }
 }