Я пытаюсь разработать шахматную игру на iPhone и застрял на совершенно незнакомой детали, но, похоже, не смог ее преодолеть. Может ли кто-нибудь увидеть часть, которая отсутствует?Ядро Графика только черная
В этом проблема. Когда пользователь нажимает на квадрат, он должен выделять некоторый выцветший цвет. Что на самом деле происходит, это просто черное, абсолютно независимо от того, какой цвет я ему устанавливал.
Вот изображение того, что я получаю. Черный круг должен быть красного или любого цвета.
Здесь обратите внимание, что UIView, который я рисую, находится за куском. Думаю, это важно, но я хочу быть полным.
Наконец, код для слоя:
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code
self.backgroundColor = [UIColor clearColor];
rowSelected = 0;
colSelected = 0;
}
return self;
}
-(void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextClearRect(context, rect);
CGContextSetRGBStrokeColor(context, 255.0, 0.0, 0.0, 1.0);
if (rowSelected && colSelected)
{
int gridsize = (self.frame.size.width/8);
int sx = (colSelected-1) * gridsize;
int sy = (rowSelected-1) * gridsize;
int ex = gridsize;
int ey = gridsize;
CGContextFillEllipseInRect(context, CGRectMake(sx,sy,ex,ey));
}
}
// Handles the start of a touch
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
int gridsize = (self.frame.size.width/8);
// Position of touch in view
UITouch *touch = [[event allTouches] anyObject];
CGPoint loc = [touch locationInView:self.superview];
int x = loc.x/gridsize;
int y = loc.y/gridsize;
rowSelected = y + 1;
colSelected = x + 1;
[self setNeedsDisplay];
}
Я попытался несколько вещей, используя значение 1, а не 255, играя с альфа и т.д., но я не может получить ничего, кроме сплошного черного.
EDIT:
Кроме того, вот код надтаблицы этой точки зрения в:
@implementation CHESSBOARD
-(id)initWithFrame:(CGRect)frame
{
if (self != [super initWithFrame:frame])
return self;
int SQUARE_SIZE = frame.size.width/8;
currentSet = BW;
UIImage *img = [UIImage imageNamed:@"board.png"];
background = [[UIImageView alloc] initWithImage:img];
[background setFrame:frame];
[self addSubview:background];
overlay = [[ChessBoardOverlay alloc] initWithFrame:frame];
[self addSubview:overlay];
Вы пробовали использовать 'CGContextSetRGBFillColor' –
Нет, но все. О, я знал, что это будет что-то вроде этого. – jakev
Значения цвета имеют диапазон от «0.0» до «1.0», а не от «0.0» до «255.0» – JustSid