当点击屏幕时,身体连续移动

时间:2012-07-16 08:41:57

标签: iphone cocos2d-iphone box2d-iphone

当我触摸屏幕时,我想移动我的身体连续体,当我释放触摸时我想停止。 我正在使用box2d和cocos2d,我真的不知道为什么我的代码不能很好地执行。 我使用touchesBegan进行精灵身体运动

   -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
    {
        ccTime dt;
        UITouch *touch = [touches anyObject];
        CGPoint location = [touch locationInView: [touch view]];
         location=[[CCDirector sharedDirector]convertToGL:location];
        [self moveRight:dt];

    //    [self doWhateverYouWantToDo];
    //    [self doItWithATouch:touch];
    }
-(void)moveRight:(ccTime)dt
{
    CCSprite *ballright=(CCSprite *)ballbody->GetUserData();
    NSLog(@"Ball PositionX: %f",ballbody->GetPosition().x);
     NSLog(@"Ball PositionY: %f",ballbody->GetPosition().y);
    [ballright runAction:[CCMoveTo actionWithDuration:1 position:ccp(ballbody->GetPosition().x,ballbody->GetPosition().y+5*dt)]];

}

所以,如果它错了请告诉我写逻辑和​​代码 请帮助我。

由于

2 个答案:

答案 0 :(得分:1)

应用LinearImpuls或LinearVelocity移动ccTouchBegan中的精灵体,并在ccTouchEnd中将速度应用于零以停止精灵。

答案 1 :(得分:0)

对于连续移动,CCMove *操作无用。在最坏的情况下,如果你每帧都创建一个新的CCMove *动作,该对象将有效地停止移动,因为在移动开始之前有一个内置的1帧延迟。

使用和修改速度矢量(CGPoint)并将其与每帧的位置集成以移动对象。