2017-12-17 2 views
-1

저는 현재 재미있는 게임을 위해 Windows 게임에서 약간의 게임을 만들고 있습니다.모든 버튼에 대한 C# 개별 변수

버튼을 클릭하여 피해를 입히고 충분한 체력을 잃으면 파손됩니다. 은 모두 잘 작동하지만 I 각 버튼받은 단독 따라서 레벨 1에서 약 50 버튼 얻었다 :

3 변수 모피 RGB 컬러가, 1 button_click 이벤트에 대한 방법 및 1 타이머 + 방법 건강 재생을 위해서.

클래스를 만들고 단추 클래스를 편집하여 각 단추에 이러한 속성을 지정하고 싶습니다.

이 코드 줄은 양식의 모든 단추에 색상이 표시되지만, 그다지 도움이되지 않습니다. GetSelfAndChildrenRecursive(this).OfType<Button>().ToList().ForEach(b.BackColor = Color.FromArgb(255, 0, 0));

각 버튼에 대한 나의 코드 : (단추 1의 RGB 색상에 대한 변수)

public int btn1r = 0; 
public int btn1g = 255; 
public int btn1b = 0; 

Button1_Click 이벤트 :

버튼 클래스 변수 (클릭에, 그것은 녹색에서 빨간색 색상의 변경)

if (btn1g > 11) 
      btn1g = btn1g - 10; 
     if (btn1r < 245) 
      btn1r = btn1r + 10; 
     if (btn1r > 245) 
      button1.Visible = false; 

     button1.BackColor = Color.FromArgb(btn1r, btn1g, btn1b); 

timer_tick 이벤트 : 는 (에서 다시 색상을 변경 시간이 지남에 따라 빨강에서 녹색까지)

if (btn1g > 11 && btn1g < 245) 
      btn1g += 2; 
     if (btn1r < 245 && btn1r > 11) 
      btn1r -= 2; 

     button1.BackColor = Color.FromArgb(btn1r, btn1g, btn11b); 

나는 지금 내 코드가 멍청하다. : D

게임 보드의 스크린 샷입니다. 보시다시피 버튼이 많아서 더 많은 게임을 할 수 있습니다. 정말 각 버튼의 색상 변수, 타이머 및 이벤트 수백 무엇을하지 않습니다 .. ^^ enter image description here

+0

"수업을 만들거나 버튼 클래스를 수정하고 싶습니다." 그리고 그 일을 막으려는 것이 무엇입니까? –

+0

Hey Dour, form1의 모든 Button에이 속성을 제공하는 방법을 모르거나 클래스를 통해 그룹 상자의 버튼에 더 이상 말한 적이 있습니다. –

답변

0

귀하의 질문은 세부 누락하지만 난 당신을 추측하고있어 뭔가처럼 원하는 :

public class GameButton : System.Windows.Forms.Button 
{ 
    System.Windows.Forms.Timer timer; 

    public GameButton(string text, Rectangle rect, Color backgroundColor, TimeSpan interval) 
     : base() 
    { 
     Location = rect.Location; 
     Size = rect.Size; 
     Text = text; 
     BackColor = backgroundColor; 

     timer = new Timer(); 
     timer.Interval = Convert.ToInt32(interval.TotalMilliseconds); 
     timer.Tick += Button_Tick; 
     timer.Start(); 
    } 

    private void Button_Tick(object sender, EventArgs e) 
    { 
     BackColor = ????; 
    } 

    public new void Dispose() 
    { 
     timer.Dispose(); 
     base.Dispose(); 
    } 
} 

게임 로직 내부에서 당신은 같은 것을 할 수 있습니다 :

this.Controls.Remove(gb); 
gb.Dispose(); 
:

다음
gb = new GameButton("One", new Rectangle(120, 12, 80, 20), 
     new Color(???), new TimeSpan(0, 0, 2)); 
this.Controls.Add(gb); 

게임 버튼 제거하기를

+0

Thanks Dour! 나는 지금부터 그 일을하려고 노력할 것이다. 당신이 컨트롤이있는 아이 클래스를 만들 수 있다는 것을 몰랐습니다. 그것은 큰 도움입니다! :) –

관련 문제