0

私は自分が取り組んでいるゲームのためにいくつかのマップをやろうとしています。9 つのマップ ファイルを表示しようとしています (既に読み取って処理しており、これらのマップ ファイルをビットマップ オブジェクトに変換する機能があります)。

基本的に、ビットマップの配列と大きなビットマップがあります。小さいビットマップはそれぞれ 256x256 で、大きいビットマップは 768x768 で、正しいオフセットで描画したいと考えています (したがって、すべてが整列し、各ビットマップは行の終わりまで前のビットマップの隣に設計されており、その時点で列が次の 3 を開始するために使用されます)。

私が今していること:

        for (int i = 0; i < 9; i++)
        {
            bmpList[i] = getMapFile(sb[i].ToString());
        }

        using (Graphics g = Graphics.FromImage(bmp))
        {
            g.DrawImage(bmpList[0], 256, 0, 256, 256);
            g.DrawImage(bmpList[1], 512, 0, 256, 256);
            g.DrawImage(bmpList[2], 0, 256, 256, 256);
            g.DrawImage(bmpList[3], 256, 256, 256, 256);
            g.DrawImage(bmpList[4], 512, 256, 256, 256);
            g.DrawImage(bmpList[5], 0, 512, 256, 256);
            g.DrawImage(bmpList[6], 256, 512, 256, 256);
            g.DrawImage(bmpList[7], 512, 512, 256, 256);
            g.DrawImage(bmpList[8], 0, 0, 256, 256);
        }

その結果、bmp は単なる空白の画像になります (Image.Source に変換すると、何も表示されません。コードの残りの部分を証明するために、次のようにしました。

        Rectangle rect = new Rectangle();
        rect.Height = 256;
        rect.Width = 512;
        rect.X = 0;
        rect.Y = 0;
        Objects.Colour color = new Objects.Colour();
        color = colourlist[0];
        Graphics.FromImage(bmp).FillRectangle(new SolidBrush(Color.FromArgb(color.r, color.g, color.b)), rect);

そして、予想どおり、高さ 256、幅 512 の黒い長方形を描画します。これらの数字も長方形を埋めるように変更したので、それは問題ではありません。

私が間違っていることを知っている人はいますか?すべての助けに感謝します!

前もって感謝します

4

1 に答える 1

0

答えは、実際には上記のコードに問題はなく、ファイル パスを別の関数に間違って渡していたということです。私の悪い、とにかくありがとう!

于 2013-02-10T14:23:02.827 に答える