0

MainPlayer がスターに触れると、特定のスプライト (スター) を消す方法を知りたいです。

ありがとう。ところで、私は Cocos2d を始めたばかりで、楽しくて教育的な目的でやっています。ありがとう。

4

1 に答える 1

1

cocos2d でタッチを検出できるようにするには、init メソッドでisTouchEnabledプロパティをに設定する必要があります。YESタッチイベントを利用できるようになりました。

次に、新しいメソッドを作成します。

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
    //This method gets triggered every time a tap is detected
    NSSet *allTouches = [event allTouches]; //Get all the current touches in the event
    UITouch *aTouch = [allTouches anyObject]; //Get one of the touches, multitouch is disabled, so there is only always going to be one.
    CGPoint pos = [aTouch locationInView:touch.view]; //Get the location of the touch
    CGPoint ccPos = [[CCDirector sharedDirector] convertToGL:pos]; //Convert that location to something cocos2d can use
    if (CGRectContainsPoint(yourSprite.boundingBox, ccPos)) //Method to check if a rectangle contains a point
    {
        yourSprite.visible = NO; //Make your sprite invisible
    }

}

最終的に利用したい他の方法は次のとおりです。

- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event;
- (void)ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event;

これが役に立ったことを願っています。

于 2012-07-25T22:44:03.430 に答える