首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.11.3  关于窗口重绘的编码设计

我们的游戏程序中有个小小的问题,即:当其他窗口覆盖.Nettrix窗口时,游戏区域不能够重新绘制。可以通过在窗体的Activate事件中添加对GameField的Redraw方法的调用来解决上述问题(Activate事件发生在窗体每次重新获得已经丢失到其他窗口的输入焦点时)。

Private Sub NetTrix_Activated(ByVal Sender As Object, ByVal E As _

System.EventArgs) Handles MyBase.Activated

'This Event Occurs When The Window Receives Back The Focus

' After Losing It To Another Window

'So, We Redraw The Whole Game Field

'Clear The Game Field

PicBackground.Invalidate()

Application.DoEvents()

GameField.Redraw()

If Not (NextBlock Is Nothing) Then

NextBlock.Show(PicNextBlock.Handle)

End If

End Sub 'NetTrix_Activated

即便是使用这种方法,也会出现某些不能正确地重绘窗口的情况。为了获得最佳效果,我们还应当在定时器的Tick事件中添加对Redraw方法的调用,但这样又会降低游戏的运行速度,因此最好还是保持上面的代码不变。

接下来的章节将讨论一些建议,以便我们今后可以对该游戏程序进行改进。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论