Pregunta

Estoy desarrollando un juego para iPhone usando Cocos2d .

En eso, tengo que trazar una línea cuando el usuario arrastra el dedo de un punto a otro. En lo que a mi conocimiento preocupación es que necesito hacer esto en Touches Moved method desde donde puedo conseguir los puntos.

Pero no sé cómo hacer esto. ¿Alguien puede ayudarme en esto?

¿Fue útil?

Solución

ora

Kia. El aburrimiento me obliga a dar una respuesta sobre este tema.

parte de la capa (es decir @interface GetMyTouches: CCLayer):

-(void) ccTouchesMoved:(NSSet *)inappropriateTouches withEvent:(UIEvent *)event
{
    UITouch *touchMyMinge = [inappropriateTouches anyObject];

    CGPoint currentTouchArea = [touchMyMinge locationInView:[touchMyminge view] ];
    CGPoint lastTouchArea = [touchMyMinge previousLocationInView:[touchMyMinge view]];

    // flip belly up. no one likes being entered from behind.
    currentTouchArea = [[CCDirector sharedDirector] convertToGL:currentTouchArea];
    lastTouchArea = [[CCDirector sharedDirector] convertToGL:lastTouchArea];

    // throw to console my inappropriate touches
    NSLog(@"current x=%2f,y=%2f",currentTouchArea.x, currentTouchArea.y);
    NSLog(@"last x=%2f,y=%2f",lastTouchArea.x, lastTouchArea.y);  

   // add my touches to the naughty touch array 
   naughtyTouchArray addObject:NSStringFromCGPoint(currentTouchArea)];
   naughtyTouchArray addObject:NSStringFromCGPoint(lastTouchArea)];
}

parte de nodo (es decir @interface DrawMyTouch: CCNode):

@implementation DrawMyTouch

-(id) init
{
    if( (self=[super init])) 
    { }
    return self;
}

-(void)draw
{
    glEnable(GL_LINE_SMOOTH);

    for(int i = 0; i < [naughtyTouchArray count]; i+=2)
    {
        start = CGPointFromString([naughtyTouchArray objectAtIndex:i]);
        end = CGPointFromString([naughtyTouchArray objectAtIndex:i+1]);

        ccDrawLine(start, end);
    }
}

@end

capa parcial II (es decir @interface GetMyTouches: CCLayer):

-(void) ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{   
    DrawMyTouch *line = [DrawMyTouch node];
    [self addChild: line];
}

Recuerde tocar es fácil. Sabiendo lo que estás haciendo mientras tocar no es una ciencia exacta.

Por último, si usted no entiende nada de lo que he publicado ... tome la cocción. El mundo necesita más productores de pastel de chocolate.

Aclaración:

  1. No se aprende a partir de corte 'n pegar ~ este código no estaba destinado a trabajar sin acariciar
  2. Si usted no puede ver el humor, que está en la profesión equivocada

Es de destacar que, me encanta un buen pastel de chocolate. El mundo realmente necesita panaderos más fantásticos. Eso no es un insulto, que es el estímulo.

"Look fuera de la plaza, para encontrar el círculo relleno con el conocimiento que hace que la vida vale la pena vivir" ~ Enesidemo.

Otros consejos

- (void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event  
{
        UITouch  *theTouch = [touches anyObject];
    CGPoint touchLocation = [theTouch locationInView:[theTouch view] ];
    cgfloat x = touchLocation.x;
    cgfloat y= touchLocation.y;
printf("move x=%f,y=%f",x,y);   
}

Trate el código de seguridad. Se obtendrá los puntos de coordenadas cuando touches moved en iPhone.

Para dibujar la línea, el uso de algo como esto:

-void draw
{
here is the code for line draw.
}

Actualizar esta función en el método de actualización.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top