0

私は、ユーザーが円(:P)であり、敵が彼に向かってくる長方形である2Dゲームを構築しています。しかし、私の問題は、インターネット上で見つけた非常に素晴らしい空間の画像を配置すると、画面がこの画像の下に必要なものをすべて描画することです。すべてがうまくいきますが、何かが私に衝突したとき、私はまだ私の人生が下がっているのを見ることができます-それがすべてこの写真で覆われているという事実を除いて。

一言で言えば、私の質問は次のとおりです。これの上にすべてを描画するにはどうすればよいですか-(「SendToBack」コマンドを使用してみました)

編集:フォームはタイマーを介してすべてを描画し、ユーザーはキーを使用してキャラクターを制御します。これはおそらく役に立たないでしょう-しかし、もしそうなら、それはここにあります。申し訳ありませんが、コードが必要だとは思われませんでした。ここにあります:

mybase.loadプロシージャの場合: PicBackGround.Dock = DockStyle.Fill PicBackGroundは、画像を含む画像ボックスです。

塗装手順:

 e.Graphics.Clear(Color.Black)
        e.Graphics.FillEllipse(Brushes.Orange, Player)

        'Projectiles
        Dim i As Integer = 0
        Do
            If Current_Projectile(i).IsEmpty = False Then e.Graphics.FillRectangle(Brushes.Red, Current_Projectile(i))
            i += 1
        Loop Until i = UBound(Current_Projectile)

        'Objects
        i = 0
        Do
            If Objects(i).IsEmpty = False Then e.Graphics.FillRectangle(Brushes.Blue, Objects(i))
            i += 1
        Loop Until i = UBound(Objects)

わかりました:Playerは、一番上で宣言された長方形 Dim Player As New Rectangle(0, 0, 50, 50)です; 次に、プレーヤーに来る敵に関するすべてのデータを格納する配列Objectsがあります。Current_Projectilesは、プレーヤーが発射する長方形(弾丸)に関するデータを格納するための単純な配列です。

他に知りたいことがあれば、私に知らせてください。

4

1 に答える 1

2

はい、コントロールはフォーム上に描画したものと重なります。簡単な解決策は、代わりにフォームの BackgroundImage プロパティを使用することです。または、自分でイメージを描きます。

于 2012-04-15T13:02:59.207 に答える