gpt4 book ai didi

c++ - 具有动态位置的 body 节点形状

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:25:31 26 4
gpt4 key购买 nike

我想显示具有动态位置的形状。

例如..

     A      B      C     D
D A B E
E B D A

这里是编码:

string names[] = {
"AB",
"ABC",
"ABCZ",
"ABCDEDF",

};

void HelloWorld::addShapes(HelloWorld* game)
{
name = names[arc4random()%4];
......

.....

CCPoint pos1[8];
for (int i = 0; i< TempNumOne; i++)
{
pos1[i]=CCPoint(disx, disy);
}


for (int a=0; a<TempNumOne; a++)
{
Filename[a]=FileMeasure[a];
int temp= arc4random()%TempNumOne;
......
bodyDef.position.Set(pos1[temp].x/32.0f, pos1[temp].y/32.0f);
.....

switch (Filename[a])
{
case 'A':
{
......
}
case 'B':
{
......
}
etc.....
}

除动态位置外,所有逻辑工作正常。

有时 arc4random 函数会在循环语句中返回相同的值。我对两个形状有相同的位置。

我想在不同位置显示形状。

谁能帮帮我?

最佳答案

你不能那样使用随机数。它可能会返回相同的值(这就是随机的工作原理)。你需要的是random_shuffle

std::string[] names = {"A", "B", "C"};
std::random_shuffle(std::begin(names), std::end(names));
//now names are in random order. just iterate over them.

关于c++ - 具有动态位置的 body 节点形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19923321/

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