Воксельный движок загружает фрагменты вокруг игрока и смещается в неправильном направлении [закрыто]C++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Воксельный движок загружает фрагменты вокруг игрока и смещается в неправильном направлении [закрыто]

Сообщение Anonymous »

Это моя логика создания куска вокруг игроков:

Код: Выделить всё

for (auto& pair : map)
{
Chunk& chk = pair.second;
if (chk.shouldRenderChunk)
chk.RenderChunk(atlastexture);
if (chk.chunkx > convertWorldToChunkCoords(cameraPos).x + renderDist)
{
chk.shouldRenderChunk = false;
}
if (chk.chunkx < convertWorldToChunkCoords(cameraPos).x - renderDist)
{
chk.shouldRenderChunk = false;
}
if (chk.chunkz > convertWorldToChunkCoords(cameraPos).z + renderDist)
{
chk.shouldRenderChunk = false;
}
if (chk.chunkz < convertWorldToChunkCoords(cameraPos).z - renderDist)
{
chk.shouldRenderChunk = false;
}
}

if (renderDist != 0)
{
for (int x = convertWorldToChunkCoords(cameraPos).x - renderDist; x < convertWorldToChunkCoords(cameraPos).x + renderDist; x++)
{
for (int z = convertWorldToChunkCoords(cameraPos).z - renderDist; z < convertWorldToChunkCoords(cameraPos).z + renderDist; z++)
{
bool loadthis = true;
for (auto& pair : map)
{
Chunk& ckk = pair.second;
if (ckk.chunkx == x && ckk.chunkz == z && ckk.shouldRenderChunk)
loadthis = false;
}
if (loadthis)
{
Chunk ck;
ck.chunkx = x;
ck.chunkz = z;
map[std::make_pair(x, z)] = ck;
map[std::make_pair(x, z)].LoadChunk();
}
}
}
}
Технически это работает, но движется в неправильном направлении:
скажем, я иду вперед, он движется назад, влево и так далее, почти как если бы он вращался.>

Подробнее здесь: https://stackoverflow.com/questions/798 ... -direction
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»