0

だから私はcocos2dを使用していて、画面上でスプライトをドラッグしようとしています.これは以前は機能していました..しかし、機能しないようにするために何をしたのかわかりません。ccTouchBegan メソッドと ccTouchEnd メソッドが呼び出されていますが、ccTouchMoved は呼び出されていません。

ccTouchesBegan、ccTouchesMoved、および ccTouchesEnded に変換しようとしましたが、Began メソッドと Ended メソッドが呼び出されているだけです。明らかに、どこかでコメントアウトしたか、設定を変更しました。[[CCTouchDispatch sharedDisptacher] ...]; もコメントアウトしました。それは私が信じているネイティブタッチであるため、ccTouchesメソッドでエラーが発生したためです。

誰が何が起こっているのか知っていますか?

4

2 に答える 2

0

自分自身を代理人として追加しましたか?

[[CCTouchDispatcher sharedDispatcher]addTargetedDelegate:self priority:0 swallowsTouches:NO];

そして、これを試してください:

- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{

    CGPoint location = [touch locationInView: [touch view]];
    mySprite.position = location;
}
于 2012-06-23T01:16:11.670 に答える
0

ccTouchMoved を使用してスプライトの移動を簡単に行うことができます。

以下のコードを試してください。あなたと同じ概念を理解するために、短いデモを作成しました。わたしにはできる。

- (void)ccTouchMoved:(UITouch *)touch withEvent:(UIEvent *)event
{
    NSSet *touches = [event allTouches];
    for (int i = 0; i < touches.count; i++) {

        UITouch *touch = [[touches allObjects] objectAtIndex:i];
        CGPoint touchLocation = [touch locationInView: [touch view]];
        CGPoint location = [[CCDirector sharedDirector]
                            convertToGL:touchLocation];
        if(CGRectContainsPoint([sprite boundingBox], location))
             sprite.position = ccp(location.x,location.y);
    }
}
于 2012-07-02T11:27:39.387 に答える