public static Button AddButton(Node scene, string text, ref Vector2 pos, System.Action action) { var b = new Button(UICamera, UIFontMap) { Text = text }; pos -= new Vector2(0.0f, b.CharWorldHeight + (1.0f * b.HeightScale)); b.Position = UICamera.CalcBounds().Point01 + pos; b.Action = action; scene.AddChild(b.Background); scene.AddChild(b); return(b); }
// draw all style and highlight the selected one // clicking in empty space triggers erase mode void DrawTilesForSelection() { m_tile_select_camera.Push(); Director.Instance.GL.SetBlendMode(BlendMode.None); Vector4 col = Colors.White; Director.Instance.SpriteRenderer.DefaultShader.SetColor(ref col); Director.Instance.SpriteRenderer.DefaultShader.SetUVTransform(ref Math.UV_TransformFlipV); Director.Instance.SpriteRenderer.BeginSprites(TileMap, TextureInfo.NumTiles.Product()); for (int j = 0; j < TextureInfo.NumTiles.Y; ++j) { for (int i = 0; i < TextureInfo.NumTiles.X; ++i) { Director.Instance.SpriteRenderer.FlipU = false; Director.Instance.SpriteRenderer.FlipV = false; TRS quad = TRS.Quad0_1; quad.T = new Vector2((float)i, (float)j) * TextureInfo.TileSizeInPixelsf; quad.S = TextureInfo.TileSizeInPixelsf; Director.Instance.SpriteRenderer.AddSprite(ref quad, new Vector2i(i, j)); } } Director.Instance.SpriteRenderer.EndSprites(); if (!is_erase_mode()) { // highlight selected tile TRS quad = TRS.Quad0_1; quad.T = m_selected_tile.Vector2() * TextureInfo.TileSizeInPixelsf; quad.S = TextureInfo.TileSizeInPixelsf; Director.Instance.DrawHelpers.SetColor(Colors.Pink); Director.Instance.DrawHelpers.DrawBounds2(quad.Bounds2()); } { Director.Instance.GL.SetBlendMode(BlendMode.Normal); Director.Instance.DrawHelpers.DrawDefaultGrid(m_tile_select_camera.CalcBounds() , TextureInfo.TileSizeInPixelsf, Math.SetAlpha(Colors.LightBlue, 0.2f), Colors.LightBlue); } m_tile_select_camera.Pop(); }