我正在构建一个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)
好的:玩家是一个在顶部声明的矩形Dim Player As New Rectangle(0, 0, 50, 50)
;
然后是数组对象,它存储有关来自玩家的敌人的所有数据,Current_Projectiles只是一个数组,用于存储玩家触发的矩形(子弹)数据。
你想知道的任何其他事情只是让我知道。
答案 0 :(得分:2)
是的,控件与您在表单上绘制的任何内容重叠。一个简单的解决方案是使用表单的BackgroundImage属性。或者自己画图像。