我编写了一个扩展 UIImageView 的类,以便让我在屏幕上动态生成砖块。砖是 20x10 PNG。
这是我的代码:
- (id) initBrick:(NSInteger *)str x:(float)ptX y:(float)ptY {
int brickIndex = arc4random() % 10 + 1;
NSString *filename = [NSString stringWithFormat:@"brick%d.png", brickIndex];
UIImage *brickImage = [UIImage imageNamed:filename];
CGRect imageRect = CGRectMake(0.0f, 0.0f, 20.0f, 10.0f);
[self initWithFrame:imageRect];
[self setImage:brickImage];
self.center = CGPointMake(ptX, ptY);
self.opaque = YES;
self.isDead = NO;
return self;
}
然后,我在同一个类中有一个简单的碰撞检测功能:
- (BOOL)checkHit:(CGRect)frame {
if(CGRectIntersectsRect(self.frame, frame)) {
isDead = YES;
return YES;
} else {
return NO;
}
}
但是碰撞检测没有很好地执行。边界框似乎比我的图像低一点。如何显示边界框以便我检查碰撞?
如果代码不清楚,我可以提供更多信息。