2013-04-23 2 views
2

나는 공간 침략자를 만들고 있으며 내 총알이 내 대포가있는 위치에서 나오길 바래. 내가 공간을 누르면, 총알이 터지 겠지만 공간을 누를 때마다 대포의 위치에 액세스 할 수 있어야하므로 정보에 액세스 할 수 없습니다.다른 방법으로 내 컨트롤에 액세스하는 방법

public void tsbtnStart_Click(object sender, EventArgs e) 
    { 

     // Make invader 

      Invader invaderX = new Invader(); 
      pnlBattleField.Controls.Add(invaderX); 

     // Mke UFO 

      Ufo ufoX = new Ufo(); 
      pnlBattleField.Controls.Add(ufoX); 


     // Make cannon 
      Cannon cannonX = new Cannon(this.pnlBattleField.Height - 80); 

     if (made == false) 
     { 
      pnlBattleField.Controls.Add(cannonX); 
      made = true; 

     } 
     Point location = cannonX.PointToScreen(Point.Empty); 


     tmrClock.Interval = 200; 
     tmrClock.Start(); 
     tmrClock2.Interval = 100; 
     tmrClock2.Start(); 
    } 

    public void Form1_KeyPress(object sender, KeyPressEventArgs e) 
    { 

     if (e.KeyChar == (char)Keys.Space) 
     { 

      Bullet bulletX = new Bullet(this.pnlBattleField.Height - 80, location.x); 
      // "location does not exist in current context 

      pnlBattleField.Controls.Add(bulletX); 
     } 

    } 
+0

당신에 대한 참조를 얻기 위해 필요한 '그 곳 pnlBattleField.Controls''에서 현재 형태에의 객체 Cannon'. – David

+0

개체를 참조해야합니다. 그래서 당신은 접근 할 수 있습니다. X 축과 Y 축의 좌표 값도 전달해야합니다. – Greg

+0

개체를 어떻게 참조해야합니까? –

답변

0

locationcannonXtsbtnStart_Click에서 지역 변수, 그래서 그들은 한 번 tsbtnStart_Click 수익을 멸망. Form1_KeyPress 및 다른 방법으로 계속 사용하고 액세스 할 수 있도록 클래스의 속성을 만듭니다.

+0

안녕하세요, 귀하의 도움에 감사드립니다. 제 수업 시간에 학생들이 수업에 참여할 수있게 도와 주 시겠어요? 나는 그들을 캐논 수업에 추가해야합니까? 내가 이런 짓을 : 공공 INT 위치 { { 반환 위치를 얻을; } } 도와주세요. –

+0

@Sebastien처럼 게시 : 'private Point location; '을 클래스 자체에 추가합니다. 당신은 당신의 방법 앞이나 뒤에 이것을 넣을 수 있습니다. 그러면 두 방법 모두에서 동일한 '위치'에 액세스 할 수 있습니다. –

0

글쎄, 당신은 당신의 방법에

Point location = cannonX.PointToScreen(Point.Empty); 

를 선언 :

public void tsbtnStart_Click(object sender, EventArgs e) 

당신은 처음에 클래스 멤버에이 위치를 선언해야합니다. 그 후 값을 올바른 값으로 덮어 씁니다.

지금처럼 :

private Point location = new Point(); 
location = cannonX.PointToScreen(Point.Empty); // in your method 
관련 문제