cocos2dx 3.2用自带的物理引擎做随机地形,很卡怎么回事


这个开了debug模式,像现在这种根本动不了,真机上也一样,看了系统资源是cpu占用太高了。


这张是去掉debug模式的,看了帧数都到60了,还是很卡。也是cup占用高。

下面是我的加载
Vec2 cpvertices;
int nVertices = 0;

for (int i=0; i<5000; i++)
{
    cpvertices = Vec2(i+1, i + arc4random()%3+2);
    
    nVertices++;
}

auto wall = Node::create();
wall->setPhysicsBody(PhysicsBody::createEdgeChain(cpvertices, nVertices));
addChild(wall);


MoveBy* move = MoveBy::create(2.0f, Vec2(100, 100));
MoveBy* move2 = MoveBy::create(2.0f, Vec2(-200, 0));
MoveBy* move3 = MoveBy::create(2.0f, Vec2(100, -100));
ScaleTo* scale = ScaleTo::create(3.0f, 0.3f);
ScaleTo* scale2 = ScaleTo::create(3.0f, 1.0f);

RotateBy* rotate = RotateBy::create(6.0f, 360);
让整个layer动起来
this->runAction(RepeatForever::create(Sequence::create(move, move2, move3, nullptr)));

换个方式,动人。。不要动layer. :12:

,现在没有了摄像机,用Follow动人一直在屏幕中央啊,怎么设置不在屏幕中心呢,还是有其它办法

这个地图上的描边是怎么描的 ?

地图画的挺漂亮的

随机生成的地图,把引擎debug打开就有描边了

好啊,271149319

Size VisibleRect = Director::getInstance()->getVisibleSize();
Camera *camera = CCCamera::createOrthographic(VisibleRect.width, VisibleRect.height, 0, 1);
camera->setCameraFlag(CameraFlag::USER2);
camera->setPosition(Vec2(x,y));
this->setCameraMask(4);
this->addChild(camera);

设置一个摄像机,让摄像机跟人动就行了

物理图形的点减少些试试看看,5000个点,太多了

cocos2dx 3.2没有下面这些啊~~~
Camera *camera = CCCamera::createOrthographic(VisibleRect.width, VisibleRect.height, 0, 1);
camera->setCameraFlag(CameraFlag::USER2);
camera->setPosition(Vec2(x,y));
this->setCameraMask(4);

3.4版本有,3.2就不清楚了