シューティングゲームの背景のスクロール
- 題名: シューティングゲームの背景のスクロール
- 著者: masa
- 日時: 2010/07/05 17:44:22
- ID: 27027
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: シューティングゲームの背景のスクロール
- 著者: るしぇ
- 日時: 2010/07/07 8:57:06
- ID: 27037
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: シューティングゲームの背景のスクロール
- 著者: masa
- 日時: 2010/07/07 15:53:05
- ID: 27044
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[3]: シューティングゲームの背景のスクロール
- 著者: るしぇ
- 日時: 2010/07/07 18:56:08
- ID: 27046
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[4]: シューティングゲームの背景のスクロール
- 著者: masa
- 日時: 2010/07/07 20:13:27
- ID: 27049
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[5]: シューティングゲームの背景のスクロール
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2010/07/09 3:57:41
- ID: 27052
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[6]: シューティングゲームの背景のスクロール
- 著者: YAS
- 日時: 2010/07/09 5:51:41
- ID: 27053
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[7]: シューティングゲームの背景のスクロール
- 著者: masa
- 日時: 2010/07/09 13:19:56
- ID: 27058
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[8]: シューティングゲームの背景のスクロール
- 著者: YAS
- 日時: 2010/07/09 19:41:22
- ID: 27059
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[9]: シューティングゲームの背景のスクロール
- 著者: 管理人
- URL: http://dobon.net/
- 日時: 2010/07/10 4:00:57
- ID: 27062
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[10]: シューティングゲームの背景のスクロール
- 著者: masa
- 日時: 2010/07/10 16:31:13
- ID: 27064
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
いつもお世話になっています。
只今シューティングゲームを作成しているのですが、
背景をスクロールさせるコードを書いているのでが、下の通りにやると、
画面の点滅、および、例外エラーが発生してしまいます。
下は、ロード時に星を描画するコードです。
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
// 背景描画処理 ここから
Bitmap^ img = gcnew Bitmap(320, 512);
Graphics^ gr = Graphics::FromImage(img);
//黒に塗りつぶす
gr->FillRectangle(Brushes::Black, gr->VisibleClipBounds);
// 星を描画 ここから
for (y = 0;y < img->Height - 1;y++) {
for (x = 0;x < img->Width - 1;x++) {
int x1 = random->Next(img->Width - 1);
int x2 = random->Next(img->Width - 1);
int x3 = random->Next(img->Width - 1);
if (x == x1) {
img->SetPixel(x,y,Color::Red);
}
else if (x == x2) {
img->SetPixel(x,y,Color::Yellow);
}
else if (x == x3) {
img->SetPixel(x,y,Color::Blue);
}
}
}
// 星を描画 ここまで
this->BackgroundImage = img;
// 背景描画処理 ここまで
}
ここまでは問題ないのですが、下が問題の背景をスクロールさせるコードです。
backgroundWorkerを使用してみました。
private: System::Void BackgroundMove_DoWork(System::Object^ sender, System::ComponentModel::DoWorkEventArgs^ e) {
Bitmap^ img = gcnew Bitmap(320,512);
Bitmap^ bg = gcnew Bitmap(this->BackgroundImage);
Graphics^ gr = Graphics::FromImage(img);
gr->DrawImage(bg, 0, 1);
this->BackgroundImage = img;
Bitmap^ bmp = gcnew Bitmap(this->BackgroundImage);
for (int x = 0;x < bmp->Width;x++) {
Random^ random = gcnew Random();
int x1 = random->Next(bmp->Width - 1);
int x2 = random->Next(bmp->Width - 1);
int x3 = random->Next(bmp->Width - 1);
if (x == x1) {
bmp->SetPixel(x,0,Color::Red);
}
else if (x == x2) {
bmp->SetPixel(x,0,Color::Yellow);
}
else if (x == x3) {
bmp->SetPixel(x,0,Color::Blue);
}
else {
bmp->SetPixel(x,0,Color::Black);
}
}
this->BackgroundImage = bmp;
}
このスクロールさせるコードに問題があるのか、backgroundWorkerを使用しているのが問題なのか
また、背景をうまくスクロールさせる方法をどなたかご教授下さい。
回答、よろしくお願いします。