2 回答

TA貢獻1818條經(jīng)驗 獲得超3個贊
您在之前的嘗試(您的帖子中的直覺)中的直覺非常接近您想要實現(xiàn)的目標。Vector2
您查找職位的邏輯是正確的。
由于您已經(jīng)有了網(wǎng)格點的坐標,因此您可以將Texture2D
s 放在每個網(wǎng)格點位置上。
通過這樣做,每個都Texture2D
將使其左上角位于您分配給它的網(wǎng)格單元的左上角。
您也不必擔心Texture2D
調整 s 大小以適應網(wǎng)格單元格。無論何時繪制它們,它們都將使用您提供的圖像文件的尺寸進行繪制。
即,如果您將153x45px
圖像分配給 a Texture2D
,那么它153x45
在繪制時仍然是像素大小。(也就是說,除非你改變了它scale
,但我假設你沒有。)
如果你想讓Texture2D
它不在網(wǎng)格單元的左上角,那么你必須將(X,Y)
坐標偏移你希望它移動的像素量。
例如,將 aTexture2D
向下移動 15 個像素并向右移動 30 個像素將需要您將其原始位置更新(X + 15, Y + 30)
.

TA貢獻1876條經(jīng)驗 獲得超5個贊
一旦你有了網(wǎng)格,你只需要將內部圖像放在你的單元格的中心。最簡單的方法是使用偏移量。根據(jù)您的示例圖像,您需要將其沿 X 軸居中。
這意味著您的 X 偏移量將是
int offsetX = (cellWidth - imageWidth) / 2;
從那里您可以通過迭代網(wǎng)格來使用網(wǎng)格點(假設點 0,0 是左上角)放置圖像。
Vector2 imagePoition = new Vector2(gridPoints[i].X + offsetX, gridPoints[i].Y);
如果您需要將其沿 Y 軸對齊,請對單元格高度和圖像高度執(zhí)行相同操作
- 2 回答
- 0 關注
- 162 瀏覽
添加回答
舉報