如何在cocos2d中的特定位置移动对象

时间:2011-01-13 20:30:16

标签: iphone objective-c cocos2d-iphone sprite

如何在特定位置移动对象。

例如。我有一个小条(宽= 50,高= 10)。我必须手动移动这个柱塞。我想只在x cordinates中移动(限制是x = 20(起始点)到x = 50(终点))y坐标上没有移动。但是在病房没有移动之后它移动了50到10。alt text 编码: -

- (void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event  {
    if (isPlaying) {
        UITouch *touch = [[event allTouches] anyObject];

        touchPosition = [touch locationInView:touch.view];
        if ( CGRectContainsPoint(para3.boundingBox,touchPoint)
                isDragging = YES;

        touchOffset = para3.position.y - touchPosition.y;

    }
- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event  {
if (isPlaying) {
UITouch *touch3 = [[event allTouches] anyObject];
        float distanceMoved = 
        ([touch3 locationInView:touch3.view].y + touchOffset) - 
        para3.position.y;
        float newY = para3.position.y + distanceMoved;
        if (newY > 67 && newY < 99)
            para3.position = CGPointMake(newY ,  para3.position.y  );
        //para3.contentSize/2
        if (newY >67 )
            para3.position = CGPointMake( 67, para3.position.y );
        if (newY < 99)
            para3.position = CGPointMake( 99, para3.position.y );
    }
}

2 个答案:

答案 0 :(得分:2)

我希望我完全理解这个问题。在这种情况下我会做的是在我的游戏中包含Chipmunk框架,然后将我的柱塞和大炮作为物理对象。一旦完成,可以通过框架的“ApplyImpulse”方法控制速度和方向(即射弹的角度)。一旦我提供初始值,速度和角度将由物理本身控制....

答案 1 :(得分:1)

看看cocos2d初学者指南

http://www.cocos2d-iphone.org/wiki/doku.php/prog_guide:lesson_2._your_first_game

这里描述了使用touches和sprite动画的基础知识