I want a snow particle effect to follow my sprite and I tried some methods but all that ends up happening is the snow will just stay still instead of following. I did this one tutorial (will post as soon as I find it) thats shows how it do it with fire but didn't work out at all. Any tutorials or suggestions will be appreciated. I believe i have to add some kind of code to the snippet part where it says create enemy off screen.
[self schedule:@selector(gameLogicboss:) interval:180 ]; [self schedule:@selector(updateboss:)]; -(void)addTarget1 { Boss *target1 = nil; if ((arc4random() % 2) == 0) {{ target1 = [WeakAndFastBoss boss]; }} else { target1 = [WeakAndFastBoss boss]; } // Determine where to spawn the target along the Y axis CGSize winSize = [[CCDirector sharedDirector] winSize]; int minY = target1.contentSize.height/2; int maxY = winSize.height - target1.contentSize.height/2; int rangeY = maxY - minY; int actualY = (arc4random() % rangeY) + minY; // Create the target slightly off-screen along the right edge, // and along a random position along the Y axis as calculated above target1.position = ccp(winSize.width + (target1.contentSize.width/2), actualY); [self addChild:target1 ]; // Determine speed of the target int minDuration = target1.minMoveDuration; int maxDuration = target1.maxMoveDuration; int rangeDuration = maxDuration - minDuration; int actualDuration = (arc4random() % rangeDuration) + minDuration; // Create the actions id actionMove = [CCMoveTo actionWithDuration:actualDuration position:ccp(-target1.contentSize.width/2, actualY)]; id actionMoveDone = [CCCallFuncN actionWithTarget:self selector:@selector(spriteMoveFinished:)]; [target1 runAction:[CCSequence actions:actionMove, actionMoveDone, nil]]; target1.tag = 1; [_targets addObject:target1]; } -(void)gameLogicboss:(ccTime)dt { [self addTarget1]; iterations_++; } - (void)updateboss:(ccTime)dt { CGRect projectileRect = CGRectMake(projectile.position.x - (projectile.contentSize.width/2), projectile.position.y - (projectile.contentSize.height/2), projectile.contentSize.width, projectile.contentSize.height); BOOL bossHit = FALSE; NSMutableArray *targetsToDelete = [[NSMutableArray alloc] init]; for (CCSprite *target1 in _targets) { CGRect target1Rect = CGRectMake(target1.position.x - (target1.contentSize.width/2), target1.position.y - (target1.contentSize.height/2), target1.contentSize.width, target1.contentSize.height); if (CGRectIntersectsRect(projectileRect, target1Rect)) { //[targetsToDelete addObject:target]; bossHit = TRUE; Boss *boss = (Boss *)target1; boss.hp--; if (boss.hp <= 0) { _score ++; [targetsToDelete addObject:target1]; } break; } } for (CCSprite *target in targetsToDelete) { [_targets removeObject:target]; [self removeChild:target cleanup:YES]; _projectilesDestroyed++; if (_projectilesDestroyed > 2) { } } if (bossHit) { //[projectilesToDelete addObject:projectile]; [[SimpleAudioEngine sharedEngine] playEffect:@"explosion.caf"]; } [targetsToDelete release]; } -(void)spriteMoveFinishedboss:(id)sender { CCSprite *sprite = (CCSprite *)sender; [self removeChild:sprite cleanup:YES]; GameOverScene *gameOverScene = [GameOverScene node]; [gameOverScene.layer.label setString:@"You Lose"]; [[CCDirector sharedDirector] replaceScene:gameOverScene]; if (sprite.tag == 1) { // target [_targets removeObject:sprite]; } else if (sprite.tag == 2) { // projectile [_projectiles removeObject:sprite]; } }