Използвам Spritekit, за да създам игра за iOS 7. Играта има кръгове, движещи се по екрана, използвайки този код
_enemy = [SKSpriteNode spriteNodeWithImageNamed:@"greeny"];
_enemy.position = CGPointMake(CGRectGetMidX(self.frame)+300,
CGRectGetMidY(self.frame));
_enemy.size = CGSizeMake(70, 70);
_enemy.physicsBody = [SKPhysicsBody bodyWithCircleOfRadius:35];
_enemy.physicsBody.mass = 0;
_enemy.physicsBody.categoryBitMask = Collisiongreen;
[_enemies addObject:_enemy];
NSLog(@"Enemies%lu",(unsigned long)_enemies.count);
[self addChild:_enemy];
[_enemy runAction:[SKAction moveByX:-900 y:0 duration:4]];
[self runAction:[SKAction playSoundFileNamed:@"Spawn.wav" waitForCompletion:NO]];
[self runAction:[SKAction sequence:@[
[SKAction waitForDuration:1.4],
[SKAction performSelector:@selector(move)
onTarget:self],
]]];
Бих искал, когато потребителят докосне един от обектите, движещи се по екрана, да може да го движи с пръст нагоре или надолу (затова използвам преместени докосвания) Кодът, който съм настроил в момента, е
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
if(_dead)
return;
UITouch *touch = [touches anyObject];
CGPoint location = [touch locationInNode:self];
if(CGRectContainsPoint(_enemy.frame, location)){
[_enemy runAction:[SKAction moveTo:[[touches anyObject] locationInNode:self] duration:0.01]];
}
Проблемът ми е, че ако го докосна, обектът ще се премести с няколко пиксела, но ще спре веднага след това. Как мога да го накарам да се движи с пръста ми и ако го пусна, той ще продължи да се движи наляво, както е програмирано преди? Благодаря!!