Quantcast
Channel: Forum Pasja Informatyki - Najnowsze pytania i odpowiedzi
Viewing all articles
Browse latest Browse all 83164

Program wywala jeśli zwracam argument

$
0
0

Cześć. Kiedy używam tej funkcji:

unsigned int Chunk::randomBiome(unsigned int &nextTo)
{
	srand(time(nullptr));
	int isSameBiome = rand()%4;

	if (isSameBiome < 3)
	{
		return nextTo;
	}
	else
	{
		return rand() % 2;
	}
}

To wywala mi program. Dziwniejsze jest to że dopiero jak odpalam program po raz 2 to wywala. Używam tej funkcji tak:

Chunk::Chunk(Vertices &vertices, unsigned int &nextTo)
{
	biomeType = randomBiome(nextTo);
	for (short unsigned int i = 0; i < 10; i++)
	{
		for (short unsigned int j = 0; j < 10; j++)
		{
			figure[i][j] = Figures(vertices.vertices, Logining::gameFiles + "Game/Objects/floor/floorTexture.txt");
			figure[i][j].setTransform(glm::vec3(i, 0.0f, j), 0.0f, glm::vec3(1.0f, 1.0f, 1.0f));
		}
	}
}

Konstruktor chunka jest używany w pętli głównej w ten sposób:

if (Auxiliary::noOne<glm::vec3, std::vector<glm::vec3> >(activatedChunks, glm::vec3(activatedChunks[checkChunk(window)].x + 10, 0.0f, activatedChunks[checkChunk(window)].z)))
		{
			activatedChunks.push_back(glm::vec3(activatedChunks[checkChunk(window)].x + 10, 0.0f, activatedChunks[checkChunk(window)].z));
			chunks.push_back(Chunk(chunkFloor, chunks[checkChunk(window)].biomeType));
			chunks[chunks.size() - 1].setPositions(activatedChunks[activatedChunks.size() - 1]);
		}

Jak zwracam coś innego np. losową liczbę, to wszystko jest ok.


Viewing all articles
Browse latest Browse all 83164