Cocos 2d ничья не работает - PullRequest
       7

Cocos 2d ничья не работает

2 голосов
/ 10 ноября 2011

Я хочу нарисовать линию на ощупь пальцем в кокосах 2d.

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

    CGPoint currentTouchArea = [touch locationInView:[touch view] ];
    CGPoint lastTouchArea = [touch previousLocationInView:[touch view]];

    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);  

    glColor4f(0.8, 1.0, 0.76, 1.0);
    glLineWidth(6.0f);
    ccDrawLine(currentTouchArea, lastTouchArea);
}

Я использую этот код, но на экране ничего не отображается.Что не так в моем коде?

Ответы [ 2 ]

4 голосов
/ 10 ноября 2011

Все чертежи OpenGL, которые вы хотите сделать в методе рисования.Как это:

-(void)draw
{
    if(lastTouchArea != 0)
    {
       glColor4f(0.8, 1.0, 0.76, 1.0);
       glLineWidth(6.0f);
       ccDrawLine(currentTouchArea, lastTouchArea);
       lastTouchArea = 0; 
    }
}
2 голосов
/ 10 ноября 2011

Попробуйте: сохранить строку в NSMutableArray

-(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)];
}

@ реализация 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);
    }
}


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

Надеюсь, эта помощь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...