sách gpt4 ai đã đi

Trò chơi khối 2D, khi tôi phóng to bằng camera, liệu có khoảng cách giữa các khối hình ảnh không?

In lại 作者:行者123 更新时间:2023-11-30 02:08:48 30 4
mua khóa gpt4 Nike

我正在使用 D3DXSPRITE 方法将我的 map 图 block 绘制到屏幕上,我刚刚添加了一个缩放功能,当您按住向上箭头时会放大,但注意到您现在可以看到图 block 之间的间隙,这是一些屏幕截图

每个图 block 的正常大小 (32x32)

nhập mô tả hình ảnh ở đây

放大(您可以看到瓷砖之间的白色间隙)

nhập mô tả hình ảnh ở đây

缩小(甚至更糟!)

nhập mô tả hình ảnh ở đây

这是我用来翻译和扩展世界的代码片段。

D3DXMATRIX matScale, matPos;

D3DXMatrixScaling(&matScale, zoom_, zoom_, 0.0f);
D3DXMatrixTranslation(&matPos, xpos_, ypos_, 0.0f);

device_->SetTransform(D3DTS_WORLD, &(matPos * matScale));

这是我绘制的 map ,(瓦片在瓦片 vector 的 vector 中..我还没有完成剔除)

LayerInfo *p_linfo = NULL;
RECT rect = {0};
D3DXVECTOR3 pos;
pos.x = 0.0f;
pos.y = 0.0f;
pos.z = 0.0f;

for (short y = 0;
y < BottomTile(); ++y)
{
for (short x = 0;
x < RightTile(); ++x)
{
for (int i = 0; i < TILE_LAYER_COUNT; ++i)
{
p_linfo = tile_grid_[y][x].Layer(i);

if (p_linfo->Visible())
{
p_linfo->GetTextureRect(&rect);

sprite_batch->Draw(
p_engine_->GetTexture(p_linfo->texture_id),
&rect, NULL, &pos, 0xFFFFFFFF);
}
}
pos.x += p_engine_->TileWidth();
}
pos.x = 0;
pos.y += p_engine_->TileHeight();
}

1 Câu trả lời

你的纹理索引是错误的。 0,0,32,32 不是正确的值 - 它应该是 0,0,31,31。 256 像素的纹理图集中从零开始的索引将产生 0 到 255 的值,而不是 0 到 256,而 32x32 纹理应该产生 0,0,31,31。在这种情况下,错误像素的颜色取决于右侧和底部下一个纹理的颜色。

关于c++ - 基于 2D 图 block 的游戏,当我用相机放大时,图 block Sprite 之间会出现间隙吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6162836/

30 4 0
Bài viết được đề xuất: java - 如何使用 JNA 获取 Activity 窗口的应用程序名称?
Bài viết được đề xuất: android - Azure禁用推送通知android
Bài viết được đề xuất: c++ - 两百万以下的素数之和。埃拉托色尼筛法
Bài viết được đề xuất: c++ - 动态多维数组
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com