2

我的目标是在用户触摸屏幕后向屏幕添加一个精灵 leftOn。

这是我的代码:

-(void)ccTouchBegan:(UITouch *)touch withEvent:(UIEvent *)event{
     CGPoint location = [touch locationInView:[touch view]];
     location = [[CCDirector sharedDirector]convertToGL:location];


if (CGRectContainsPoint([leftOff boundingBox],location)) {
    CCLOG(@"Left Pressed");
    [self addChild:leftOn];

}

}

日志始终输出“Left Pressed”,但在不添加精灵的情况下停止运行。如果我在它确实显示的 init 方法中添加精灵。此外,我尝试更改精灵的顺序,例如 [self addChild:leftOn z:2],但它仍然不显示。

4

2 回答 2

0

“停止运行”是什么意思?你的应用程序崩溃了?确保 leftOn 不是nil,正如 Ben Trengrove 所说,并且该精灵没有添加到另一个父级。这两种情况都可能导致崩溃。如果您的应用程序崩溃,从控制台查看错误会很有用。它可以帮助了解问题出在哪里。

于 2012-11-01T07:07:35.410 回答
0

我刚开始使用 cocos2d,但是我看到的演示在 ccTouchesEnded 添加了精灵,同时使用 ccTouchesBegan 对已经存在和被触摸的内容进行操作。

于 2012-11-01T07:19:02.783 回答