请帮帮忙,这是我在这里的三个错误之一,我只是找不到它们在哪里:我知道它们与我的结构有关,但我不知道如何找到它们……下面是代码的第一部分,其中有一个错误:
-(BOOL)detectCollisionBetweenEntityAtIndex:(int)index1 andEntityAtIndex:(int)index2
{
if ((([entityArray objectAtIndex:index1].entityX >= [entityArray objectAtIndex:index2].entityX) && ([entityArray objectAtIndex:index1].entityX <= ([entityArray objectAtIndex:index2].entityX + [entityArray objectAtIndex:index2].entityWidth)) && ([entityArray objectAtIndex:index1].entityY >= [entityArray objectAtIndex:index2].entityY) && ([entityArray objectAtIndex:index1].entityY <= ([entityArray objectAtIndex:index2].entityY + [entityArray objectAtIndex:index2].entityLength))) || (([entityArray objectAtIndex:index1].entityX + [entityArray objectAtIndex:index1].entityWidth >= [entityArray objectAtIndex:index2].entityX) && ([entityArray objectAtIndex:index1].entityX + [entityArray objectAtIndex:index1].entityWidth <= ([entityArray objectAtIndex:index2].entityX + [entityArray objectAtIndex:index2].entityWidth)) && ([entityArray objectAtIndex:index1].entityY + [entityArray objectAtIndex:index1].entityLength >= [entityArray objectAtIndex:index2].entityY) && ([entityArray objectAtIndex:index1].entityY + [entityArray objectAtIndex:index1].entityLength <= ([entityArray objectAtIndex:index2].entityY+ [entityArray objectAtIndex:index2].entityLength))))
{
return TRUE;
}
else
{
return FALSE;
}
}entityArray是一个NSMutable数组,填充了我创建的一个结构的实例:
struct Entity
{
int entityX;
int entityY;
int entityLength;
int entityWidth;
int entityType;
int entitySpeed;
bool isDead;
};发布于 2012-05-06 05:27:55
大致是这样的:
-(BOOL)detectCollisionBetweenEntityAtIndex:(int)index1 andEntityAtIndex:(int)index2
{
bool hasDetected = false;
if (...)
{
hasDetected = TRUE;
}
else
{
hasDetected = FALSE;
}
return hasDetected ;
}应该把它弄清楚!
发布于 2012-05-06 01:27:58
NSMutableArray只能存储Objective-C对象,而不能存储C结构。将实体包装在NSValue对象中,以将它们存储在数组中:
Entity entity;
// populate entity...
NSValue *value = [NSValue valueWithBytes:&entity objCType:@encode(struct Entity)];
[array addObject:value];要获取返回值,请使用-[NSValue getValue:],如下所示:
NSValue *value = [array objectAtIndex:index];
Entity entity;
[value getValue:&entity];https://stackoverflow.com/questions/10464187
复制相似问题