|
Option Strict On Option Explicit On 'VisualBasic2010_ブロック崩し 'Timer1コンポーネントを入れる Imports System.Drawing.Drawing2D
Public Class Form1 'ブロック Const block_suu% = 48 'ブロック総数 Dim block_life(block_suu - 1) As Boolean 'ブロック表示on_off Dim block_x(block_suu - 1) As Integer 'ブロック左角横位置 Dim block_y(block_suu - 1) As Integer 'ブロック左角縦位置 'ブロック&ボールの色 Dim brush_1 As LinearGradientBrush = New LinearGradientBrush(New Rectangle(0, 0, 300, 150), Color.Aqua, Color.Blue, 90) Dim brush_2 As LinearGradientBrush = New LinearGradientBrush(New Rectangle(0, 0, 300, 20), Color.Red, Color.White, 90) 'ボール Dim boul_x% : Dim boul_y% 'ボールの位置 Dim boul_x_speed% : Dim boul_y_speed% 'ボールの速さ Dim boul__x_muki As Boolean : Dim boul_y_muki As Boolean 'ボールの向き '乱数 Dim my_random As Random = New Random
Public Sub New()
' この呼び出しはデザイナーで必要です。 InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
Me.Size = New Size(300, 300) Me.BackColor = Color.Black Me.StartPosition = FormStartPosition.CenterScreen Me.Text = "Reo.Co.Jp" Me.MinimizeBox = False Me.MaximizeBox = False Me.FormBorderStyle = Windows.Forms.FormBorderStyle.Fixed3D End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load game_clear() Timer1.Interval = 1 Timer1.Enabled = True Me.DoubleBuffered = True End Sub Sub game_clear() 'ブロックの初期化 Dim a% : Dim b% For i = 0 To block_suu - 1 block_x(i) = a * 35 + 5 block_y(i) = b * 20 + 10 block_life(i) = True a += 1 : If a = 8 Then a = 0 : b += 1 Next 'ボールの初期化 boul_x = 140 : boul_y = 230 boul_random() boul__x_muki = True : boul_y_muki = False End Sub Sub boul_random() 'ボールのスピード初期化 boul_x_speed = my_random.Next(1, 3) boul_y_speed = my_random.Next(1, 3) End Sub Sub block_hyouji(ByVal g As Graphics, ByVal x%, ByVal y%) 'ブロック表示 g.FillRectangle(brush_1, x, y, 30, 15) End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick Dim map As Bitmap = New Bitmap(Width, Height) Dim g As Graphics = Graphics.FromImage(map) g.SmoothingMode = SmoothingMode.AntiAlias 'ブロック表示 For i = 0 To block_suu - 1 block_hyouji(g, block_x(i), block_y(i)) Next 'ボール表示 g.FillEllipse(brush_2, boul_x, boul_y, 15, 15) 'ボールの処理(外壁) If boul__x_muki = True Then boul_x += boul_x_speed If boul_x > 270 Then boul__x_muki = False : boul_random() If boul__x_muki = False Then boul_x -= boul_x_speed If boul_x < -3 Then boul__x_muki = True : boul_random() If boul_y_muki = False Then boul_y -= boul_y_speed If boul_y < -3 Then boul_y_muki = True : boul_random() If boul_y_muki = True Then boul_y += boul_y_speed If boul_y > 248 Then boul_y_muki = False : boul_random() 'ボールの処理(ブロック接触) ' 'ここが!!!知りたいですか?!!! 'ぼくは、忙しいので、明日か明後日に書きますよ。
Me.BackgroundImage = map g.Dispose() End Sub
End Class
|