Я desperatly пытается нарисовать заполненный квадрат с Cocos2D и я не могу управлять, чтобы найти пример о том, как это сделать:Рисунок заполненный квадрат с Objective-C/cocos2d
Вот мой метод рисования , Мне удалось рисовать квадрат, но я не могу его заполнить!
Я читал, что мне нужно использовать метод OpenGL под названием glDrawArrays
с параметром GL_TRIANGLE_FAN
, чтобы нарисовать заполненный квадрат, и это то, что я пробовал.
-(void) draw
{
// Disable textures - we want to draw with plaine colors
ccGLEnableVertexAttribs(kCCVertexAttribFlag_Position | kCCVertexAttribFlag_Color);
float l_fRedComponent = 0;
float l_fGreenComponent = 0;
float l_fBlueComponent = 0;
float l_fAlphaComponent = 0;
[mpColor getRed:&l_fRedComponent green:&l_fGreenComponent blue:&l_fBlueComponent alpha:&l_fAlphaComponent];
ccDrawColor4F(l_fRedComponent, l_fGreenComponent, l_fBlueComponent, l_fAlphaComponent);
glLineWidth(10);
CGPoint l_bottomLeft, l_bottomRight, l_topLeft, l_topRight;
l_bottomLeft.x = miPosX - miWidth/2.0f;
l_bottomLeft.y = miPosY - miHeight/2.0f;
l_bottomRight.x = miPosX + miWidth/2.0f;
l_bottomRight.y = miPosY - miHeight/2.0f;
l_topRight.x = miPosX + miWidth/2.0f;
l_topRight.y = miPosY + miHeight/2.0f;
l_topLeft.x = miPosX - miWidth/2.0f;
l_topLeft.y = miPosY + miHeight/2.0f;
CGPoint vertices[] = { l_bottomLeft, l_bottomRight, l_topRight, l_topLeft, l_bottomLeft };
int l_arraySize = sizeof(vertices)/sizeof(CGPoint) ;
// My old way of doing this, it draws a square, but not filled.
//ccDrawPoly(vertices, l_arraySize, NO);
// Deprecated method :(
//glVertexPointer(2, GL_FLOAT, 0, vertices);
// I've found something related to this method to replace the deprecated one, but can't understand this method !
glVertexAttribPointer(kCCVertexAttrib_Position, 3, GL_FLOAT, GL_FALSE, 0, vertices);
glDrawArrays(GL_TRIANGLE_FAN, 0, l_arraySize);
}
Я нашел несколько примеров со старой версией Cocos2D (1.0), но так как он был повышен до version 2.0 «в последнее время» все примерах я нахожу дать мне ошибку компиляции!
Может ли кто-нибудь просветить мой путь сюда, пожалуйста?
О, дорогой, дорогой, спасибо большое! Ваша книга замечательная кстати! –