0

我正在构建一个 2D 游戏,其中用户是一个圆圈(:P),而敌人是朝他而来的矩形。然而,我的问题是,当我在互联网上放置一张非常漂亮的空间图片时,屏幕会在这张图片下方绘制它所拥有的任何内容。一切正常,当有什么东西撞到我身上时,我仍然可以看到我的生活正在走下坡路——除了这一切都被这张照片掩盖了。

简而言之,我的问题是:我如何在此之上绘制所有内容 - (我尝试使用“发送回”命令)

编辑:表单通过计时器绘制所有内容,用户通过键控制他的角色。这可能无济于事 - 但如果有,它就在这里。抱歉,人们认为您不需要代码。这里是:

在 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 回答