C♯相談室 Part29
レス数が900を超えています。1000を超えると表示できなくなるよ。
0925デフォルトの名無しさん
2006/03/03(金) 00:11:42C#でマップエディタでも作ろうと思い
・まず町の全景をImageに作りました。5120*5120ドットくらいで、かなり大きいです
・次にPictureBoxを作成。256x256程度です
・マウスドラッグでスクロールできるようにし、1/60秒で画面を再描画するようにしました
ところがこれが物凄く重いのです。
{
Graphics g = pictureBox1.Image;
g.DrawImage(imgMap, 0, 0, new Rectangle(nScrollX, nScrollY, 256, 256), , GraphicsUnit.Pixel);
pictureBox1.Invalidate();
}
これが1/60秒で呼ばれるようになっています。
ためしに町の全景を512*512にしてみたところ、とてもスピーディーになりました。もたつきはありません。
ということは、画像の転送元の大きさに影響を受けてしまうということなのでしょうか。
C#を使い始めたのはつい最近なのですが、C++時代には考えられない遅さです。やり方を根本的に勘違いしているのでしょうか?
アドバイスお願いいたします。
C#はGDI+を使っているのでハードウェアアクセラレーターが効かないのは重々承知なのですが、転送元の画像がでかいと遅くなるというのは…
レス数が900を超えています。1000を超えると表示できなくなるよ。