내가 엑스 코드와 목표 - C의 초보자 그리고 난 아래에 부착 된 게임의 코드 샘플에 대한 몇 가지 질문이 있습니다. 그것은 객관적인 C, iphone4 시뮬레이터를위한 Xcode로 작성되었습니다. IB에서 이미지를 만드는 대신 코드는 4 가지 종류의 벽돌 그림 (bricktype1.png ...)을 사용하여 (프로그래밍 방식으로) 5 X 4 크기의 벽돌을 만드는 것으로 가정합니다. . 나는 벽돌이하는 .m 작성 .H 제대로 파일 및 방법에 정의 된컴파일 오류가
내 질문에 다음과 같은 코드입니다.
- (void)initializeBricks
{
brickTypes[0] = @"bricktype1.png";
brickTypes[1] = @"bricktype2.png";
brickTypes[2] = @"bricktype3.png";
brickTypes[3] = @"bricktype4.png";
int count = 0;
for (int y = 0; y < BRICKS_HEIGHT; y++)
{
for (int x = 0; x < BRICKS_WIDTH; x++)
{
UIImage *image = [ImageCache loadImage:brickTypes[count++ % 4]]; - Line1
bricks[x][y] = [[[UIImageView alloc] initWithImage:image] autorelease];
CGRect newFrame = bricks[x][y].frame;
newFrame.origin = CGPointMake(x * 64, (y * 40) + 50);
bricks[x][y].frame = newFrame;
[self.view addSubview:bricks[x][y]];
}
}
}
1)가에서, 오류 "ImageCache 선언되지 않은"컴파일되면 라인 1.하지만 난 이미 프로젝트에 PNG로 추가했습니다. 문제가 무엇 그것을 해결하는 방법? (가능하면 코드를 제안하고 수행하고 어디를 넣어하는 것을 설명해주십시오.)
2) 1 호선의 다음 내용은 어떻게 작동합니까? 이미지에 brickType의 요소 (.png 이름)를 지정합니까?
brickTypes [카운트 ++ 4 %] 예를 들어
가 화상 객체에 파일명 bricktype1.png 중 하나를 리턴? true의 경우, "count"의 최대치는 5로 끝납니다. (X는 각 Y에 대해 5 번씩 증가합니다). 그러나 "개수"는 brickTypes의 최대 '색인 값'인 3을 초과합니다! 라인 2에서
3)
, 전에이 라인 에서 이미 .PNG에 할당 된 이름을 가지며 연결되는 이미지 오브젝트가 벽돌 [X] [Y]에 할당 하는가?4) 3 호선과 5 호선은 어떻게해야합니까? 왜 Line3의 왼쪽에 newFrame이 있지만 Line5의 오른쪽에 나타나는가?
5) 4 호선은 무엇입니까?
'벽돌 [X] [Y] = [[[ UIImageView alloc] initWithImage : image] autorelease]; ' 죄송합니다, 무엇이 반환되는지 혼란스러워하십시오. 위 코드에서 각 부분과 이름에 무엇이 반환되는지 알아야합니다. 좋아요 : UIImageView alloc이 클래스 객체를 반환합니까? 그런 다음 클래스 메서드 initWithImage를 호출합니까? 1 행에서 생성 된 포인터 인 'image'라는 매개 변수를 전달합니까? 그리고 'image'는 'ImageCache'객체를 가리 킵니까? ImageCache에는 bricktype1.png가 포함되어 있습니까? 마지막으로 벽돌 [0] [0] = * 이미지? 왼쪽은 배열 포인터입니까? 오른쪽 "이미지"라는 포인터를 보유하고 개체 UIImageView 무엇입니까? – NorthKyut