gpt4 book ai didi

android - setContentSize 在 cocos2dx3.0 中不起作用

转载 作者:行者123 更新时间:2023-11-28 06:40:12 25 4
gpt4 key购买 nike

setContentSize 无效

我是 cocos2dx 的新手,我想将另一个类的层添加到我的主 Splashscreen 类,但 setContentSize 使用设备宽度和高度。

我想设置图层大小以及我的 Sprite 大小。

查看我的代码

小工具.cpp

#include "Gadget.h"
#include "math.h"

int nCount = 100;
static CCPoint Circle [100]; // vertex array

Gadget* Gadget::create(int type)
{
Gadget *pRet = new Gadget();
if (pRet && pRet->init(type))
{
pRet->autorelease();
return pRet;
}
else
{
delete pRet;
pRet = NULL;
return NULL;
}
}

bool Gadget::init(int type)
{
if(!LayerColor::init())
{
return false;
}

this->setContentSize(CCSize::ZERO);

this->initWithColor(Color4B(255,255,255,255));

CCLog("Before Calling");
addGadget(type);

return true;
}

Gadget::Gadget() {
// TODO Auto-generated constructor stub

}

Gadget::~Gadget() {
// TODO Auto-generated destructor stub
}

void Gadget::addGadget(int type)
{
const char* image = "gadget_2.png";

if(type==2)
{
image = "gadget_1.png";
}
//this->initWithFile(image);
CCLog("After Calling");
CCSprite *spr = CCSprite::create(image);
setGadgetPos(this->getContentSize().width/2,0.0);
this->drawCircle(100,100,100);

}

void Gadget::setGadgetPos(float x, float y)
{
// this->ignoreAnchorPointForPosition(true);
this->setPosition(x,y);
}

void Gadget::gadgetAnimStart(int type)
{
if(type==1)
{
this->setAnchorPoint(ccp(0,3));
auto rotate = RotateBy::create(3,360);
this->runAction(CCRepeatForever::create(rotate));
}
}

void Gadget::gadgetAnimStop()
{
this->stopAllActions();
}

void Gadget::drawCircle(float X, float Y,float rad)
{
DrawNode *drawnode = DrawNode::create();
for ( int i = 0 ; i <100; i ++)
{
float rads = i * M_1_PI; // radians
Circle [i] .x = rad * cosf (rads); //vertex x
Circle [i] .y = rad * sinf (rads); //vertex y
}

drawnode->setPosition(Director::sharedDirector()->getVisibleSize().width/2,Director::sharedDirector()->getVisibleSize().height/2);
drawnode->drawPolygon(Circle,100,Color4F(0,0,0,0),1,Color4F(1,122,153,1));
this->addChild(drawnode);
}

我必须在 Splashscreen.cpp 中使用 Gadget.coo 类

#include "Splashscreen.h"
#include "HelloWorldScene.h"
#include "CCHelper.h"
#include "Gadget.h"
#include "UserDefaultStorage.h"
#include "VisibleRect.h"
#include "math.h"
#include "Sound.h"
#include "Text_En.h"

USING_NS_CC;

Scene* Splashscreen::createScene()
{
Scene *s = Scene::create();
LayerColor *lc = Splashscreen::create();

s->addChild(lc);
return s;
}

Splashscreen::Splashscreen() {
// TODO Auto-generated constructor stub
}

Splashscreen::~Splashscreen() {
// TODO Auto-generated destructor stub
}

bool Splashscreen::init()
{
if(!LayerColor::create())
{
return false;
}


this->initWithColor(ccc4(0,0,0,255));
this->setContentSize(CCSizeZero);

Gadget *g = Gadget::create(GREEN_GADGET);
g->setPosition(ccp(-100,-100));
this->addChild(g);

return true;
}

当我使用“this->setContentSize(CCSizeZero);”代码,但 View 没有变化。它从位置 -100,-100 生成全屏层

请给我一些为什么 setContentSize 不起作用的解决方案。

提前致谢里沙巴沙赫

最佳答案

初始化后 setContentSize 将设置大小但不会进行任何可见的更改,最好在初始化时提供宽度和高度。

喜欢:

 this->initWithColor(ccc4(0,0,0,255), width, height);

关于android - setContentSize 在 cocos2dx3.0 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26116658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com