Hi Leute, für mein Spiel stehe ich derzeit vor einem großen Problem:
Ich habe im Code erzeugt, dass sich Sprites mit einer Textur in einer Endlosschleife von links nach rechts bewegen auf sozusagen 2 Linien. Jetzt will ich programmieren, dass man die Position der Sprites vertauschen kann. Das heißt, wenn der User auf ein Sprite auf der ersten Ebene klickt und dann seinen Finger nach unten auf ein anderen Sprite zieht, soll der TouchBegan Sprite und der TouchEnd Sprite sozusagen ihre Position ändern. Weiß jemand ob so etwas möglich ist?
Vielen Dank
Alles anzeigen
Ich habe im Code erzeugt, dass sich Sprites mit einer Textur in einer Endlosschleife von links nach rechts bewegen auf sozusagen 2 Linien. Jetzt will ich programmieren, dass man die Position der Sprites vertauschen kann. Das heißt, wenn der User auf ein Sprite auf der ersten Ebene klickt und dann seinen Finger nach unten auf ein anderen Sprite zieht, soll der TouchBegan Sprite und der TouchEnd Sprite sozusagen ihre Position ändern. Weiß jemand ob so etwas möglich ist?
Vielen Dank
Quellcode
- -(void)addSprite2
- {
- SKSpriteNode *sprite2 = [SKSpriteNode spriteNodeWithImageNamed:@"Test.png"];
- sprite2.position = CGPointMake(-40, 10);
- sprite2.size = CGSizeMake(100, 50);
- [self addChild:sprite2];
- SKAction *actionMove = [SKAction moveTo:CGPointMake(400, 268) duration:10];
- SKAction *actionMoveDone = [SKAction removeFromParent];
- [sprite2 runAction:[SKAction sequence:@[actionMove, actionMoveDone]]];
- }
- -(void)addSprite3
- {
- SKSpriteNode *sprite3 = [SKSpriteNode spriteNodeWithImageNamed:@"Test1.png"];
- sprite3.position = CGPointMake(-2, 200);
- sprite3.size = CGSizeMake(32, 20);
- [self addChild:sprite3];
- SKAction *actionMove = [SKAction moveTo:CGPointMake(400, 358) duration:10];
- SKAction *actionMoveDone = [SKAction removeFromParent];
- [sprite3 runAction:[SKAction sequence:@[actionMove, actionMoveDone]]];
- }
- - (void)updateWithTimeSinceLastUpdate:(CFTimeInterval)timeSinceLast
- {
- self.lastSpawnTime += timeSinceLast;
- if (self.lastSpawnTime > 1.5)
- {
- self.lastSpawnTime = 0;
- [self addSprite2];
- [self addSprite3];
- }
- }
- -(void)update:(CFTimeInterval)currentTime
- {
- CFTimeInterval timeSinceLast = currentTime - self.lastUpdateTime;
- self.lastUpdateTime = currentTime;
- if (timeSinceLast > 1.5)
- {
- timeSinceLast = 1.0 /60.0;
- self.lastUpdateTime = currentTime;
- }
- [self updateWithTimeSinceLastUpdate:timeSinceLast];
- }