Dibujo de línea en toques movido en Cocos2d
-
13-10-2019 - |
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?
Solución
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:
- No se aprende a partir de corte 'n pegar ~ este código no estaba destinado a trabajar sin acariciar
- 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.