gpt4 book ai didi

c++ - 制作对象的多个版本

转载 作者:行者123 更新时间:2023-12-03 07:02:02 24 4
gpt4 key购买 nike

我是一名学生,要求他使用ogre3d制作涂鸦跳跃副本。
我有一个功能,可以使屏幕上的面板具有指定的形状和位置,因此现在我希望创建一个for循环,该循环将产生多个(最多10个)和一个随机值,这些值将分别将它们设置为x ,y,z。

void PlatformManager::CreatePanelDoodle( float x, float y, float z){


Plane plane3(Vector3::UNIT_Y, 0);
MeshManager::getSingleton().createPlane(
"Paddle2", RGN_DEFAULT,
plane3,
20, 5, 20, 20,
true,
1, 5, 5,
Vector3::UNIT_Z);
Entity* groundEntity3 = scnMgr->createEntity("Paddle2");
SceneNode* Paddlenode2 = scnMgr->getRootSceneNode()->createChildSceneNode();
Paddlenode2->setPosition(Ogre::Vector3( x, y, z));
Paddlenode2->attachObject(groundEntity3);
groundEntity3->setCastShadows(false);

}
这是为了尝试在随机空间中制作多个对象
point plat[20];
float pX;
float pY;
for (int i = 0; i < 10; i++)
{
plat[i].x = rand() % 50;
plat[i].y = rand() % 30;
float pX = plat[i].x;
float pY = plat[i].y;
}


for (int i = 0; i < 10; i++)
{
PlatformManager Panels = new PlatformManager->CreatePanelDoodle(pX, 0, pY);
}

问题在于for循环创建中的错误“没有合适的构造函数将void转换为“平台管理器”
我试过简单地将构造函数添加到for循环中,而根本不使用循环。怎么了

最佳答案

您的第二个代码段中存在一些问题:

  • 您正在使用未初始化的变量float pX;float pY;
  • 您正在使用float pX = plat[i].x;float pY = plat[i].y;遮蔽变量
  • 您正在创建多个随机值,但没有使用它们
  • 您正尝试在void函数
  • 上应用 new运算符
  • 您正在尝试将结果存储在变量


  • 您可以解决问题
    // Remove this block, you don't use the variables
    /*
    point plat[20]; // You don't use this array
    float pX; // You use it uninitialized
    float pY; // You use it uninitialized
    for (int i = 0; i < 10; i++) {
    plat[i].x = rand() % 50;
    plat[i].y = rand() % 30;
    float pX = plat[i].x; // You don't use this variable
    float pY = plat[i].y; // You don't use this variable
    }
    */

    for (int i = 0; i < 10; ++i) {
    PlatformManager->CreatePanelDoodle(static_cast<float>(rand() % 50), 0, static_cast<float>(rand() % 30));
    }

    关于c++ - 制作对象的多个版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64764965/

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