2014-11-25 8 views
0

다음 코드가 있는데 내 코드에 포함 된 배열에 brickImage 속성을 할당 할 수있는 방법이 있는지 알고 싶습니다. 그렇다면 어떻게해야합니까? 나는 기본적으로 여러 행 등으로 표시되는 벽돌의 배열을 만들사각형 배열에 이미지 추가 - C#

public class Brick 
    { 
     private int x, y, width, height; 
     private Image brickImage; 
     private Rectangle brickRec; 
     private Rectangle[] brickRecs; 

     public Rectangle BrickRec 
     { 
      get { return brickRec; } 
     } 


     public Brick() 
     { 
      x = 0; 
      y = 0; 
      width = 60; 
      height = 20; 


      brickImage = Breakout.Properties.Resources.brick_fw; 

      brickRec = new Rectangle(x, y, width, height); 

      Rectangle[] brickRecs = 
      { 
       new Rectangle(0, 0, 60, 20), 
       new Rectangle(0, 0, 121, 20), 
       new Rectangle(0, 0, 242, 20) 

      }; 

     } 


     public void drawBrick(Graphics paper) 
     { 
      paper.DrawImage(brickImage, brickRec); 

      //paper.DrawImage(brickImage, brickRecs); 
     } 

    } 
+0

"코드에 등장하는 배열"- 코드에 어떤 배열이 등장 했습니까? 네가 여기서 보여준 Brick 강의에있는 사람? 그 클래스가 왜 Rectangle []을 가지고 있는지 명확하지 않습니다. 거기에'Image'의 인스턴스가 무엇을 의미하는지 결코 신경 쓰지 마십시오. 다른 곳에서'Brick' 객체 배열을 가지고 있다면'Brick' 객체에 대해 원하는 'Image'에 대한 참조를 전달하지 않고 다른 'Brick' 객체에 대해 다른 이미지를 사용할 수있게할까요? –

답변

0

당신은 단순히 자신의 클래스 만들 사각형에 이미지를 첨부 할 경우 : 다음

public class MyBrick 
{ 
    public Image Image {get; set;} 
    public Point[] Locations {get; set;} 
} 

을 이 코드를 어딘가에 코드에 추가하십시오.

MyBrick[] brickRecs = 
{ 
    new MyBrick() 
    { 
     Locations = 
     { 
      new Point(60, 20), 
      new Point(10, 10), 
      //.... 
     }, 
     Image = ... // ADD IMAGE REFERENCE HERE 
    }, 

    new MyBrick() 
    { 
     Locations = 
     { 
      new Point(90, 90), 
      new Point(5, 5), 
      //.... 
     }, 
     Image = ... 
    }, 
}; 
+0

이것은 자원 낭비를 초래할 수 있습니다. 대신 참조 만 저장해야합니다. 아마도 'ImageList'를 사용하고 키나 인덱스 만 저장할 수 있습니다! 모든 이미지의 크기가 동일한 경우 가장 좋은 방법입니다. 그렇지 않으면'List '이 도움이 될 것입니다 .. – TaW

+0

@TaW 코드에서 이것을 나타낼 수 있습니까? –

+0

@Boris, 조금 더 알려주세요 : 얼마나 많은 벽돌 이미지와 얼마나 많은 이미지 크기를 가질 수 있습니까? – TaW