Я пытался заставить работать функцию двойного буфера в VB.NET GDI + для игры с космическими захватчиками, используя следующую команду
Public Sub New()
…
Me.SetStyle(ControlStyles.DoubleBuffer, True)
End Sub
Но поскольку я использую отдельную процедуру рисования, прикрепленную к классу, она, похоже, не работает:
Class alien
…
Public Sub draw(ByVal palette)
Dim image As New Drawing.Bitmap("E:\alien.gif")
palette.DrawImage(image, loc.X, loc.Y, width, height)
End Sub
End class
Я вызываю эту процедуру из таймера на главной форме:
Private Sub TmrAlien_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TmrAlien.Tick
Dim palette As Drawing.Graphics = Me.CreateGraphics
dave.draw(palette)
Invalidate()
End sub
Инопланетяне рисуют правильно, но изображения очень заикаются, и двойная буферизация не работает.
Любые идеи