0
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
    CGPoint point1 = [touch previousLocationInView:[touch view]];
    CGPoint point2 = [touch locationInView:[touch view]];

    point1 = [[CCDirector sharedDirector]convertToGL:point1];
    point2 = [[CCDirector sharedDirector]convertToGL:point2];


    pre = point1;
    curr = point2;
    CCLOG(@"the pre location is %@",NSStringFromCGPoint(pre));
    CCLOG(@"the curr location is %@",NSStringFromCGPoint(curr));


}

上記のコードの何が問題なのですか? pre 変数と curr 変数の両方で同じ出力が得られますか?

4

2 に答える 2

1

タッチが始まったとき、タッチが始まったばかりなので、明らかに前のタッチはありません。したがって、前の場所と場所は同じです。

このコードを ccTouchesMoved で実行すると、期待どおりに動作します。

于 2012-10-20T11:47:49.220 に答える
0

ccTouchesEnded メソッドで現在の位置を出力するだけです。それはあなたに2点間の違いを与えるでしょう。

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

したがってpreviousLoaction、ccTouchesBegan メソッドを取得するだけです。

于 2012-10-20T17:56:26.033 に答える