- ベストアンサー
VB.NETで
VB.NETでゲームを作成しています。 ですが、一つ困った事が起きてしまいました。 画像を動かしており、動く前の部分を白く塗りつぶしています。 しかし、いざ背景をつけようとすると、上記のプログラムのせいで、背景自体が白く塗りつぶされてしまい、最後には背景がなくなってしまいます。 一体どうしたらよいのでしょうか? 回答をお願いします。 また、こういった質問が初めてのため、いたらぬところがございましたらご指摘お願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
いまどきのゲームプログラムでは、画面を更新するごとに背景からすべて描き直すのが一般的です。 フォームに直接描いていると画像欠け現象が発生しますので、オフスクリーンと呼ぶ別の画像領域を確保してそちらに描いておいて、Paintイベントではオフスクリーンをフォームのクライアント領域にコピーするようにします。 オフスクリーンという言葉は技術的な名称ですので、VB.NETで実現する方法は検索して探してみてください。
その他の回答 (1)
- assault852
- ベストアンサー率48% (1364/2797)
背景の出し方(フォームなのか、別のやり方なのか)や画像の種類、動かし方など、もう少し詳しい情報を載せた方が良いと思います。 どういう作り方をしているかわからないと答えようがないと思います。
補足
背景の画像はジペッグ形式です 背景は From_Loadに Image1.picture=LoadPicture("ファイル名.ファイル形式") 動かしている画像はギフ形式。複数なのでfor Nextを使い上と同じFrom_Loadに内容を書いています 動かしている場所はタイマー ランダムの速度で一直線に画像を進ませています。 画像をそれに応じて書いているので、以前の画像を消す為に G.FillRectangle(Brushes.White,x_move(an),y_corse(an)+10,40,40) という一文で、以前あった部分を白く塗りつぶしています 背景が一色ならG.の色を変えればすむのですが、背景の写真は風景なのでそうもいかず 詳しい情報になったでしょうか?不安です
お礼
なるほど。そちらはまったく知りませんでした。 オフスクリーンというものについて、学んでみようと思います isleさん、どうもありがとうございました 早速検索します