a が終了した後にメソッドを呼び出す方法CCAction
を考えていました(最初に呼び出された後、2.5秒ごとに呼び出したいと思います)。ランダムな位置に移動するスプライトがあり、ランダムな位置に移動した後、このメソッド (弾丸を撃つもの) を実行したいと考えています。これまでのところ、メソッドはまだ動いているときに呼び出されます。誰でも助けることができますか?
敵の作成方法は次のとおりです。
(void)enemy1{
gjk= arc4random()%6;
enemy1 = [CCSprite spriteWithFile:@"enemy1.png"];
int d = arc4random()%480+480;
int o = arc4random()%320+320;
x = arc4random()%480;
if( x <= 480 && x>= 460){
x=x-100;
}
if(x <= 100){
x = x+50;
}
y = arc4random()%320;
if(y <=320 && y >= 290){
y = y-100;
}
if(y < 100){
y = y + 100;
}
enemy1.position = ccp(o,d);
[enemy1 runAction:[CCMoveTo actionWithDuration:3 position: ccp(x,y)]];
CCRotateBy *rotation = [CCRotateBy actionWithDuration:20 angle:1080];
CCRepeatForever * repeatforever = [CCRepeatForever actionWithAction:rotation];
[enemy1 runAction:repeatforever];
[self addChild:enemy1];
[enemy addObject :enemy1];
}
そして、発射体を発射する方法:
(void)projectileShooting:(ccTime)dt {
projcount++;
if(enemy1.position.y < 320){
v = ccp(player.position.x,player.position.y);
for(CCSprite *enemies in enemy){
CCSprite * projectilebullet = [CCSprite spriteWithFile:@"Projectile.png"];
[proj addObject:projectilebullet];
[self addChild:projectilebullet];
CGPoint MyVector = ccpSub(enemies.position,player.position );
MyVector = ccpNormalize(MyVector);
MyVector = ccpMult(MyVector, enemies.contentSize.width/2);
MyVector = ccpMult(MyVector,-1);
projectilebullet.position = ccpAdd(enemies.position, MyVector);
}
}
撮影メソッドはコードで init メソッド内に呼び出されるので、2.5 秒ごとに呼び出されます。
[self schedule:@selector(projectileShooting:) interval:2.5];
y位置が < 320のときに発射されるようにすることで、発射を起こそうとしたことはわかっていますが、320 の位置を通過するときはまだ動いています。