2

我一直在关注 Ray Wenderlich 的教程 ( http://codeviewer.org/view/code:1d8b ) 中的这段代码片段。我正在尝试做几乎相同的事情,除了我使用的是精灵表(batchnode),并且我希望目标/敌人从屏幕右侧(在任何高度)产生,然后移动到左侧(在相同的高度)。这是我的代码。(http://codeviewer.org/view/code:1d8c)。

额外信息 - “痣”是我的目标/敌人。前几行旁边注释掉的代码 (//) 只是我的笔记。编辑 - 看看我对 mjvotaw 回答的评论。

4

2 回答 2

0

请参阅本教程,了解如何创建从随机点开始向目标移动的敌人。它在页面下方。

编辑:

要创建一个随机 Y 生成点,请执行以下操作:(假设您使用的是 cocos2d)

// Define these at the top of the .m file
#define ARC4RANDOM_MAX 0x100000000
#define RAND_FLOAT ( (float)arc4random() / ARC4RANDOM_MAX )

- (CGPoint)pointWithRandomYAtX:(float)locationX
{
    CGSize size = [[CCDirector sharedDirector] winSize];
    return CGPointMake(locationX, RAND_FLOAT * size.height);
}

然后只需将“痣”的位置设置为该点。

于 2011-08-15T00:48:54.713 回答
0

如果你想将你的鼹鼠精灵放在右侧的随机位置,你应该可以这样做:

[mole setPosition: ccp(winSize.width - [mole contentSize].width, arc4random() % winSize.height)];

这将鼹鼠设置在最右边缘,沿 y 轴的一个随机点。然后,您可以使用 CCMoveBy 代替使用 CCMoveTo 的 actionMove,将位置设置为 ccp(-winSize.width, 0)。

如果这不是您想要的,也许您应该重新考虑如何提出您的问题。

于 2011-08-15T19:43:47.753 回答