我使用 spriteclass 创建了一些 Sprite ,并将它们加载到一个数组中。在我的应用程序中,我循环遍历数组检查特定条件(位置等)。我想创建一个爆炸方法,我可以将其中一个对象传递给该方法,然后使用指针拉动该对象在屏幕上的位置并在那里显示爆炸。我不知道如何将数组中的指针/对象传递给要使用的方法。
这基本上是我的想法:
for (int i=1; i<4; i++) {
EnemySprite *currentenemy = [enemies objectAtIndex:i-1];
//Blow this guy up
[self explosion:currentenemy]
}
-(void)explosion someobject {
explosion.position = someobject.position
someobject.setHidden=YES;
}
最佳答案
对于一个参数你可以这样写
// definition
-(void) explosion:(EnemySprite*) someObject
{
}
// usage
[self explosion: object];
对于两个参数,事情有点复杂。考虑一下;
// definition
-(void) explosion:(EnemySprite*) someObject radius:(float)explosionRadius
{
...
if (pos < explosionRadius)
...
}
// usage
[self explosion: object radius:10.0f];
: 之前的所有内容都用于外部名称,之后的所有内容都是函数内部的名称。
这就是为什么你经常会看到 Objective-C 函数的函数名以第一种类型的名称结尾:
-(void) explodeSprite:(EnemySprite*) sprite radius:(float)radius;
在编写函数时, Sprite 和半径参数似乎都已“命名”;
[self explodeSprite:sprite radius:10.0f];
关于objective-c - Objective-C 中指向对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/647028/