マップチップを作るところで詰まってしまいました。
画像を読み込んでマップチップに区切りたいんですがうまくいきません。
その部分のソース↓
private void MainPanel_Paint(object sender, PaintEventArgs e)
{
Graphics g = e.Graphics;
g.DrawImage(maptip[0], 32, 32, maptip[0].Width, maptip[0].Height);
}
List<Image> maptip;
private void Form1_Load(object sender, EventArgs e)
{
//マップチップの保存先List
maptip = new List<Image>();
//map.pngをbitmapに読み込む
Bitmap a = new Bitmap(@"map.png");
//作業用
Image b;
int tsize = 32; //タイルのサイズ
for (int x = 0; x < 1; x++)
{
for (int y = 0; y < 1; y++)
{
//bitmapのcloneでトリミング
b = a.Clone(new Rectangle(x*tsize,y*tsize,(x+1)*tsize,(y+1)*tsize),a.PixelFormat);
//マップチップに追加
maptip.Add(b);
//b.Dispose();
}
}
a.Dispose();
}実行すると、メモリが不足していますとエラーがでます。
forの所を x<1、y<1にするとメモリはいけるんですがパネルに表示されません。
どなたか、正しい方法を教えて下さい・・・
使ってる開発環境はVisual Studio Express 2013 for Windows Desctopです。
C#は始めたばかりです。C++とDXライブラリでゲームを作っていて、そのマップエディタを作ろうとしています。
C#でDXライブラリを使ってみようとはしたんですが、画面の出力先が一つのしか出来ないようだったので諦めました……