예제 #1
0
        public void OnMouseEvent(MouseEvent e)
        {
            if (e.Type == EventType.Click)
            {
                GameScreen currentScreen = GameApp.GetGurrentScreen();

                ScreenEntity entity = null;

                if (type == ObjectType.Sprite)
                {
                    Sprite s;
                    if (obj != null)
                        s = (Sprite)obj;
                    else s = new Sprite();
                    entity = s;

                    s.InstanceName = "sprite";

                    currentScreen.AddSprite(s);
                    s.ShowPropsPanel();

                }
                else
                {
                    Text t;
                    if (obj != null)
                        t = (Text)obj;
                    else t = new Text();
                    entity = t;

                    t.InstanceName = "text";
                    currentScreen.AddText(t);
                    t.ShowPropPanel();
                }

                entity.X = e.MouseX - entity.ClipWidth / 2;
                entity.Y = e.MouseY - entity.ClipHeight / 2;

                FocusHandler.SetFocusComponent(entity.GetFocusComponent());
                ToolManager.SetCurrentTool(new InteractionTool());
            }
        }
예제 #2
0
        public void RemoveText(Text text)
        {
            texts.Remove(text);
            drawables.Remove(text);
            iArea.RemoveEntity(text.GetIntractionComponent());

            RemoveChild(text);
        }
예제 #3
0
        public void AddText(Text text)
        {
            texts.Add(text);
            drawables.Add(text);

            iArea.AddEntity(text.GetIntractionComponent());

            AddChild(text);
        }
예제 #4
0
        private static void WriteText(StringBuilder sb, Text text)
        {
            sb.AppendLine(text.InstanceName + " = AddText()");
            sb.AppendLine(text.InstanceName + ":SetPosition(" + text.X.ToString() + "," + text.Y.ToString() + ")");
            sb.AppendLine(text.InstanceName + ":SetText('" + text.TextValue + "')");
            sb.AppendLine(text.InstanceName + ":SetColor(" + text.Color.r.ToString() + "," +
                                                             text.Color.g.ToString() + "," +
                                                             text.Color.b.ToString() + ")");

            sb.AppendLine(text.InstanceName + ":SetSize(" + text.Size.ToString() + ")");

            string fontFileName = GetFileNameFromPath(text.Font);
            string newFontPath = GetFullDir() + "\\Assets\\Fonts\\" + fontFileName;

            if (File.Exists(newFontPath) == false)
                File.Copy(text.Font, newFontPath);

            sb.AppendLine(text.InstanceName + ":SetFont('../Assets/Fonts/" + fontFileName + "')");
        }
예제 #5
0
        private static Text CreateTextFromElement(XElement el)
        {
            Text t = new Text();
            t.InstanceName = el.Element("instanceName").Value;
            t.TextValue = el.Element("text").Value;
            t.X = int.Parse(el.Element("x").Value);
            t.Y = int.Parse(el.Element("y").Value);
            t.Font = el.Element("fontPath").Value;
            t.Color = CreateColorFromElement(el.Element("color"));
            t.Size = uint.Parse(el.Element("size").Value);
            t.CharOffset = uint.Parse(el.Element("charSpacing").Value);

            return t;
        }
예제 #6
0
        private static XElement CreateTextElement(Text t)
        {
            XElement el = new XElement("text");
            el.Add(new XElement("instanceName", t.InstanceName));
            el.Add(new XElement("text", t.TextValue));
            el.Add(new XElement("x", t.X));
            el.Add(new XElement("y", t.Y));
            el.Add(new XElement("fontPath", t.Font));
            XElement colorEl = new XElement("color");
            colorEl.Add(new XAttribute("r",t.Color.r));
            colorEl.Add(new XAttribute("g",t.Color.g));
            colorEl.Add(new XAttribute("b",t.Color.b));

            el.Add(colorEl);
            el.Add(new XElement("size", t.Size));
            el.Add(new XElement("charSpacing", t.CharOffset));

            return el;
        }