Ich habe Probleme beim Zeichnen eines grundlegenden weißen Rechtecks mit der Cocos2dx-Bibliothek in der iOS-Umgebung. Ich habe mir einige andere Implementierungen zur Orientierung angesehen.Zeichnen Rechteck in Cocos2dx
http://discuss.cocos2d-x.org/t/draw-rectangle-with-drawrect-in-cocos2dx-not-working/14836/3
Cocos2d-x: How can I draw a resizing rectangle?
Es sieht im Grunde wie ich die Klassenmethode von DrawNode verwenden müssen :: create(), um den Knoten zu machen, dann die Eckpunkte etablieren wie in openGL, dann ist es mit dem Unentschieden DrawNode-> drawPolygon-Methode und fügen Sie den untergeordneten Knoten mit der addChild-Methode der cocos2d :: Layer-Unterklasse der Szene hinzu.
Hier ist mein Code.
bool JFScene::init()
{
if (!Layer::init())
{
return false;
}
auto visibleSize = Director::getInstance()->getVisibleSize();
Vec2 origin = Director::getInstance()->getVisibleOrigin();
auto closeItem = MenuItemImage::create(
"CloseNormal.png",
"CloseSelected.png",
CC_CALLBACK_1(JFScene::menuCloseCallback, this));
closeItem->setScale(2.0);
closeItem->setPosition(Vec2(origin.x + visibleSize.width - closeItem->getContentSize().width/2 ,
origin.y + closeItem->getContentSize().height/2));
auto menu = Menu::create(closeItem, NULL);
menu->setPosition(Vec2::ZERO);
this->addChild(menu, 1);
auto CButton = Sprite::create("CButton.png");
CButton->setPosition(
Point(visibleSize.width/2 + origin.x, visibleSize.height/2 + origin.y)
);
this->addChild(CButton, 1);
auto rectNode = DrawNode::create();
Vec2 vertices[4] = {
Vec2(-50, -50),
Vec2(50, -50),
Vec2(50, 50),
Vec2(-50, 50)
};
rectNode->drawPolygon(vertices, 4, Color4F::WHITE, 1, Color4F::WHITE);
this->addChild(rectNode);
return true;
}
Das Seltsame ist, dass der CButton Knoten zu machen scheint, wenn ich es auf meinem iPhone 5s sowie das enge Element ausführen, die in der Standarddatei enthalten waren, aber das weiße Rechteck ich zu zeichnen versuchen tut nicht rendern. Irgendwelche Ideen warum?
Ich hatte Vec2 (origin.x, origin.y) zu verwenden, Vec2 (origin.x + visibleSize.width, origin.y), Vec2 (origin.x + visibleSize.width, origin.y + visibleSize .height/3), Vec2 (origin.x, origin.y + visibleSize.height/3) und es funktionierte –
Mögliches Duplikat von [Wie zeichne einfach rect mit cocos2d-x v3.0] (http: // stackoverflow.com/questions/19431922/how-to-draw-simple-rect-with-cocos2d-x-v3-0) – Emadpres