Я использую cocos2d, и у меня есть подкласс cccnode (я хочу нарисовать круги, и это работает)
.h
@interface CCSpriteCircle : CCSprite {
float radius;
float angle; //in radians
NSUInteger segments;
BOOL drawLineToCenter;
ccColor4B cColor;
}
-(id) initWithRadius: (float)radius_ withAngle: (float)angle_ withSegments: (NSUInteger)segments_ withDrawLineToCenter:(BOOL)drawLineToCenter_;
@property(nonatomic,assign) float radius;
@property(nonatomic,assign) float angle;
@property(nonatomic,assign) NSUInteger segments;
@property(nonatomic,assign) BOOL drawLineToCenter;
@property(nonatomic,assign) ccColor4B cColor;
@end
// мой .m файл
@ реализация CCSpriteCircle
@ Synthesize радиус, угол, сегменты, drawLineToCenter, cColor;
-(id) initWithRadius: (float)radius_ withAngle: (float)angle_ withSegments: (NSUInteger)segments_ withDrawLineToCenter:(BOOL)drawLineToCenter_
{
if( (self=[super init])) {
self.radius = radius_;
self.angle = angle_;
self.segments = segments_;
self.drawLineToCenter = drawLineToCenter_;
//[self draw];
}
return self;
}
-(void)draw {
glLineWidth(1);
glColor4ub(cColor.r, cColor.g, cColor.b, cColor.a);
ccDrawCircle(ccp(self.position.x,self.position.y), radius, angle, segments, drawLineToCenter);
// restore original values
glLineWidth(1);
glColor4ub(255,255,255,255);
glPointSize(1);
}
@end
Все работает нормально, за исключением того, что если я помещаю центр моего ccspritecircle в 480 (это конец экрана), он не появляется, но если я помещаю его в 200px, это в конце экрана.
если я изменю код позиции в моей сцене helloworld следующим образом:
от:
circle_.position = ccp (480, 0);
до:
circle_.position = [[CCDirector sharedDirector] convertToGL: CGPointMake(480,0)];
тогда я больше не вижу круг. Я делаю что-то не так?