Imports System.Windows.Forms Imports System.Drawing Module Main <STAThread()> _ Sub Main() '▼メインフォーム作成 Dim pb As New PictureBox() pb.Dock = DockStyle.Fill Dim mainForm As New Form() mainForm.KeyPreview = True mainForm.Controls.Add(pb) '▲メインフォーム作成 Dim screen As New Bitmap(mainForm.ClientSize.Width, mainForm.ClientSize.Height) 'ゲーム画面 Dim screenGraphics As Graphics = Graphics.FromImage(screen) 'ゲーム画面描画用 Dim objectList As New List(Of IGameObject)() 'ゲーム中のオブジェクト 'ここでゲーム開始初期のオブジェクトを追加 'ゲーム開始後はIGameObject.Calc()の中で追加や削除を行う '描画のプライオリティ順に追加するようにする objectList.Add(New タイトル画面の背景()) objectList.Add(New カーソル()) objectList.Add(New 選択肢ゲームスタート()) objectList.Add(New 選択肢終了()) '▼メインループ Dim nextFrame As Double = Environment.TickCount Dim wait As Single = 1000 / 60 While mainForm.Created If Environment.TickCount >= nextFrame Then '▼演算ループ Dim i As Integer = 0 Do If objectList.Count > i Then If objectList(i).Live Then objectList(i).Calc(objectList) Else objectList.RemoveAt(i) i -= 1 End If Else Exit Do End If i += 1 Loop '▲演算ループ If Environment.TickCount < nextFrame + wait Then '▼描画ループ For Each obj As IGameObject In objectList obj.Draw(screenGraphics) Next '▲描画ループ pb.Image = screen End If nextFrame += wait End If Application.DoEvents() End While '▲メインループ End Sub End Module