WinForms рдкрд░ рд╡рд┐рдХрд╛рд╕ 2 рдбреА рдЗрдВрдЬрди рдХрд╛ рд╡рд┐рдХрд╛рд╕

рдкреГрд╖реНрдарднреВрдорд┐


рдХреБрдЫ рд╕рд╛рд▓ рдкрд╣рд▓реЗ рдореИрдВ WinForms рдкрд░ рдПрдХ рджреГрд╢реНрдп рдЙрдкрдиреНрдпрд╛рд╕ рдЗрдВрдЬрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд╡рд┐рдЪрд╛рд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред WinForms рдкрд░ рдХреНрдпреЛрдВ? рдХреНрдпреЛрдВрдХрд┐ рддрдм рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдерд╛ рдХрд┐ рдХреИрд╕реЗред рд╕рдордп-рд╕рдордп рдкрд░, рдЗрдВрдЬрди рдХреЛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдЖ рд╣реИ рдФрд░ рд╡рд░реНрддрдорд╛рди рджрд┐рди рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣рд╛ рд╣реИред рдЗрд╕ рд╕рдордп рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдЫреЛрдЯрд╛ рдЙрдкрдпреЛрдЧреА рдХреЛрдб рдЬрдорд╛ рд╣реБрдЖ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рд░ рдЬрдЧрд╣ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рдкрд╛рда рдХрд╛ рд╡рд┐рднрд╛рдЬрди


// string ActorText -  ,      (Split(' ')) // text_width -  ,     // StrSize -    // StrEndl -    string ActorText_str = ""; //     int old_y = 35, StrSize = 0, StrEndl = 0; MessBox_1.Image = (Image)new Bitmap(MessBox_1.Width, MessBox_1.Height); using (Graphics g = Graphics.FromImage(MessBox_1.Image)) { //   old_y -= 14; for (var i = 0; i <= ActorText.Length; i++) { if (StrSize < text_width & i != ActorText.Length) { StrSize += ActorText[i].Length; if (i != ActorText.Length - 1 & (StrSize + ActorText[i + 1].Length >= text_width)) StrSize = text_width + 12; } else { // String builder for (int CreatLineIter = StrEndl; CreatLineIter < i; CreatLineIter++) ActorText_str += ActorText[CreatLineIter] + " "; // Set endl pos StrEndl = i; if (i != ActorText.Length) StrSize = ActorText[i].Length; old_y += 14; // SetColor(lua.GetTextColor())) -    .   . g.DrawString(ActorText_str, new Font(lua.GetTextFont(), 10, FontStyle.Bold), new SolidBrush(SetColor(lua.GetTextColor())), new Point(10, old_y)); ActorText_str = ""; } } } 

рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдФрд░ рдкрд┐рдХреНрдЪрд░рдмреЙрдХреНрд╕


рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рдкрд┐рдХреНрдЪрд░рдмреЙрдХреНрд╕ рдореЗрдВ рджреЛ рдЗрдореЗрдЬ рд▓реЗрдпрд░ рд╣реИрдВред BackgroundImage рдФрд░ рдЫрд╡рд┐ред рдЗрдВрдЬрди рдХреЗ рдкрд╣рд▓реЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ, рдореИрдВрдиреЗ рд╕реНрдкреНрд░рд╛рдЗрдЯреНрд╕ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрднрдЧ 5 рдмрдХреНрд╕реЗ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред рдЗрд╕ рддрд░рд╣ рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреЗ рдХрдИ рдмрдбрд╝реЗ рдиреБрдХрд╕рд╛рди рдереЗ:

  • рдмрд╣реБ-рд╕реНрддрд░реАрдп рд╡рд┐рд░рд╛рд╕рдд рдХреЗ рдХрд╛рд░рдг рдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛рдПрдВ
  • рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╕рдордп рдкреНрд░рдкрддреНрд░реЛрдВ рдХреЛ рд░рдЦреЗрдВ

рдмрд╛рдж рдореЗрдВ, рдореИрдВрдиреЗ рдЧреНрд░рд╛рдлрд┐рдХреНрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдмрдирд╛рдпрд╛, рдЗрд╕рд▓рд┐рдП рд╕реНрдкреНрд░рд╛рдЗрдЯ рдХреЛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд╣реАрдВ рднреА рдЦреАрдВрдЪрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЧрдпрд╛ред

 PictureBox ALeft; Bitmap SpriteListPic; //       // FreeMovePicture - ,    // posX, posY -    // Scale -  private void SpriteBoxesHolder(Image FreeMovePicture, int posX, int posY, float Scale = 2) { using(Graphics SpGr = Graphics.FromImage(SpriteListPic)) { SpGr.DrawImage(FreeMovePicture, posX * 2, posY * 2, FreeMovePicture.Size.Width / Scale, FreeMovePicture.Size.Height / Scale); } ALeft.Image = SpriteListPic; } 

LuaInterface рдФрд░ рдХреЛрд╢рд┐рд╢-рдХреИрдЪ рдЬреИрд╕реА рд╕реБрд╡рд┐рдзрд╛


LuaInterface рдХреЗ рд╕рд╛рде рдЕрдиреБрднрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛:

  • LuaTterface рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ LuaTable рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рдЕрдиреБрдкреВрд░рдХ: рдЕрдзрд┐рдХрд╛рдВрд╢ рдЪреАрдЬреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЗрд╡рд▓ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

     lua.NewTable("Scene"); //   //     TextColor public string GetTextColor() { return (string)lua.GetTable("Font")["TextColor"]; } 
  • рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╕рдордп рдореЗрдореЛрд░реА рд▓реАрдХ рдХреА рд╕рдорд╕реНрдпрд╛
     string TableReaderS(string Table, string Key) { string Ret = ""; using (LuaTable tabx = lua.GetTable(Table)) { Ret = (string)tabx[Key]; } return Ret; } int TableReaderI(string Table, string Key) { int Ret = -1; using (LuaTable tabx = lua.GetTable(Table)) { Ret = (int)(double)tabx[Key]; //   int ... } return Ret; } 

    рд╣рд░ рдмрд╛рд░ рдЬрдм рдЖрдк рдЧреЗрдЯрдЯреЗрдмрд▓ рдХрд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдПрдХ рдирдИ рд╕реАрдПрд▓рдЖрд░ рд╡рд╕реНрддреБ рдорд┐рд▓рддреА рд╣реИ рдЬреЛ рдЗрд╕ рд╡реИрд╢реНрд╡рд┐рдХ рд▓реБрдЖ рдЪрд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рд▓реБрдЖ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рд╕рдВрджрд░реНрдн рджреЗрддреА рд╣реИред
  • рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИрдВ рдХрд┐ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдореВрд▓реНрдп рдХреНрдпрд╛ рд╣реИ:

     try { Size = TableReaderI("Scene", "Image" + Convert.ToString(num) + "Scale"); } catch (Exception ex) { Size = 2; } 

    рд▓реБрдЖ рдПрдХ рдореВрд▓реНрдп рд▓реМрдЯрд╛рдПрдЧрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рддрдереНрдп рд╕реЗ рдирд╣реАрдВ рдХрд┐ рдпрд╣ рдПрдХ рд╕рдВрдЦреНрдпрд╛ рд╣реЛрдЧреАред рдЗрд╕рд▓рд┐рдП рдХреИрдЪ (рдЕрдкрд╡рд╛рдж) ред Double.TryParse рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд▓реНрдк рдпрд╣рд╛рдВ рдЙрдкрдпреБрдХреНрдд рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ lua.GetTable рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╣реАрдВ рд▓реМрдЯрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рдкреНрд░рдХрд╛рд░, рдЬреЛ LuaTable рд╣реИ рдФрд░ рдЗрд╕реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ рдЗрд╕реЗ рдРрд╕рд╛ рдорд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╡рд╣ рднреА рдПрдХ рд╕рдВрдЦреНрдпрд╛ рдХреЗ рд╕рд╛рдеред

Source: https://habr.com/ru/post/hi469599/


All Articles