gpt4 book ai didi

objective-c - 找到最近的CCSprite

转载 作者:搜寻专家 更新时间:2023-10-30 19:42:28 25 4
gpt4 key购买 nike

我试图找到离“球”最近的“玩家”,并且这些对象中的每一个都是 CCSprite 对象。这是我的第一个应用程序,所以如果有更好的方法,请随时提出建议:)

到目前为止,这是我的代码:

for(CCSprite *currentPlayer in players) {

// distance formula
CGFloat dx = ball.position.x - currentPlayer.position.x;
CGFloat dy = ball.position.y - currentPlayer.position.y;
CGFloat distance = sqrt(dx*dx + dy*dy);

// add the distance to the distances array
[distances addObject:[NSNumber numberWithFloat:distance]];

NSLog(@"This happen be 5 times before the breakpoint");
NSLog(@"%@", [NSNumber numberWithInt:distance]);

}

所以这似乎运作良好;它记录球员与球的每个距离。但是当我循环遍历我的“距离”数组时,像这样:

for(NSNumber *distance in distances ) {

NSLog(@"Distance loop");
NSLog(@"%@", [NSNumber numberWithInt:distance]);

}

这每次都会记录一个巨大的数字,比如 220255312。我这样声明我的距离数组:

// setting the distance array
NSMutableArray *distances = [[NSMutableArray alloc] init];

我做错了什么?

感谢您的宝贵时间!

最佳答案

像这样使用@"%@"的距离:

for(NSNumber *distance in distances ) {

NSLog(@"Distance loop");
NSLog(@"%@", distance);

}

[NSNumber numberWithInt:距离]

在你的第一部分 distance 是一个 CGFloat。

在第二部分 distance 是一个 NSNumber。

numberWithInt 不能将 NSNumber 作为其参数。

希望这对您有所帮助!

关于objective-c - 找到最近的CCSprite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6591357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com