我正在制作一个 2d 游戏,我需要一个 Sprite 实例在屏幕上随机飞行。它们会随机出现在 iPhone 屏幕边界之外,然后在屏幕内移动。当它们碰到边缘时,它们会出现在另一侧。我只需要知道如何让 Sprite 随机移动。
最佳答案
将此方法添加到您的图层类中 - 它接收一个 Sprite ,然后将其永远在屏幕上随机移动:
-(void)moveRandom:(CCSprite*)s
{
CGPoint randomPoint = ccp(arc4random()%480, arc4random()%320);
NSLog(@"%@", NSStringFromCGPoint(randomPoint));
[s runAction:
[CCSequence actions:
[CCMoveTo actionWithDuration:arc4random()%5+1 position: randomPoint],
[CCCallBlock actionWithBlock:^{
[self performSelector:@selector(moveRandom:) withObject:s afterDelay:0.5];
}],
nil]
];
}
如您所见,这非常简单 - 在屏幕上生成一个随机点,然后在 Sprite 上运行移动 Action 到该点。完成后 - 只需重复即可。
要在屏幕上添加一个 sprite 并启动该过程,请将其(可能)放在您的场景初始化方法中或您进行场景初始化的任何地方:
CCSprite* s = [CCSprite spriteWithFile:@"yourImage.png"];
[self addChild: s];
[self moveRandom:s];
关于objective-c - 让 Sprite 在屏幕上随机移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9225747/