objective-c - 让 Sprite 在屏幕上随机移动

标签 objective-c ios xcode xcode4 sprite

我正在制作一个 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/

相关文章:

ios - 从 TableView 转到导航 Controller 前面的 View

android - OnLocationStateChange Cordova 应用程序崩溃

iphone - UIView autoResizing 有时会起作用

objective-c - 如何根据对象字符串属性在 Xcode 中设置条件断点?

objective-c - 带 case/switch 的 Objective C 全局常量

iphone - 开发 iPhone 游戏需要什么?

ios - 从 Testflight 安装同一应用程序的不同构建版本时,UserDefaults 被清除

iphone - 自定义表格单元格加载数据 Objective C iOS -

ios - 带有 ipv6 的 libssh2 lib 不工作

ios - 恢复并保留从 UINavigationController 推送的 UIViewController,没有 Storyboard