Selasa, 26 Mei 2015

piano tiles


Imports System.IO
Imports System.Drawing.Drawing2D
Public Class Form1
    Dim tile(5, 4) As Integer
    Dim y(5) As Integer
    Dim score As Integer = 0

   
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Randomize()
        For i As Integer = 0 To 4
            For j As Integer = 0 To 3
                tile(i, j) = 0
            Next
        Next
        Dim r As Integer = Rnd() * 3
        tile(4, r) = 1
        r = Rnd() * 3
        tile(3, r) = 1
        r = Rnd() * 3
        tile(2, r) = 1
        r = Rnd() * 3
        tile(1, r) = 1
        r = Rnd() * 3
        tile(0, r) = 1
        y(0) = -120
        y(1) = 0
        y(2) = 120
        y(3) = 240
        y(4) = 360
        Timer1.Enabled = True

    End Sub

    Private Sub Form1_MouseClick(sender As Object, e As MouseEventArgs) Handles Me.MouseClick
        For i As Integer = 0 To 4
            If e.Y >= y(i) And e.Y <= y(i) + 120 Then
                For j As Integer = 0 To 3
                    If e.X >= j * 85 And e.X <= j * 85 + 85 Then
                        If tile(i, j) = 1 Then
                            tile(i, j) = 2
                            score += 1
                        ElseIf tile(i, j) = 0 Then
                            Timer1.Enabled = False
                            MsgBox("Score: " & score)
                        End If
                    End If
                Next
            End If
        Next
    End Sub

    Private Sub Form1_Paint(sender As Object, e As PaintEventArgs) Handles Me.Paint
        Dim g As Graphics = e.Graphics
        Dim mypen As Pen = New Pen(Color.Black, 2)
        Dim mybrushWhite As Brush = New SolidBrush(Color.White)
        Dim mybrushBlack As Brush = New SolidBrush(Color.Black)
        Dim mybrushGray As Brush = New SolidBrush(Color.Gray)
        Dim font As Font = New Font("comic sans ms", 12, FontStyle.Bold)

        For i As Integer = 0 To 4
            For j As Integer = 0 To 3
                If tile(i, j) = 0 Then
                    Dim rect As New Rectangle(j * 85, y(i), 85, 120)
                    g.DrawRectangle(mypen, rect)
                    g.FillRectangle(mybrushWhite, j * 85, y(i), 85, 120)
                ElseIf tile(i, j) = 1 Then
                    Dim rect As New Rectangle(j * 85, y(i), 85, 120)
                    g.DrawRectangle(mypen, rect)
                    g.FillRectangle(mybrushBlack, j * 85, y(i), 85, 120)
                ElseIf tile(i, j) = 2 Then
                    Dim rect As New Rectangle(j * 85, y(i), 85, 120)
                    g.DrawRectangle(mypen, rect)
                    g.FillRectangle(mybrushGray, j * 85, y(i), 85, 120)
                End If
            Next
        Next

        g.FillRectangle(mybrushGray, 10, 10, 110, 50)
        g.DrawString("Score: " & score, font, Brushes.White, 15, 25)
    End Sub

    Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
        For i As Integer = 0 To 4
            y(i) += 10
        Next
        If y(0) = 0 Then
            tile(4, 0) = tile(3, 0)
            tile(4, 1) = tile(3, 1)
            tile(4, 2) = tile(3, 2)
            tile(4, 3) = tile(3, 3)
            y(4) = 360

            tile(3, 0) = tile(2, 0)
            tile(3, 1) = tile(2, 1)
            tile(3, 2) = tile(2, 2)
            tile(3, 3) = tile(2, 3)
            y(3) = 240

            tile(2, 0) = tile(1, 0)
            tile(2, 1) = tile(1, 1)
            tile(2, 2) = tile(1, 2)
            tile(2, 3) = tile(1, 3)
            y(2) = 120

            tile(1, 0) = tile(0, 0)
            tile(1, 1) = tile(0, 1)
            tile(1, 2) = tile(0, 2)
            tile(1, 3) = tile(0, 3)
            y(1) = 0

            tile(0, 0) = 0
            tile(0, 1) = 0
            tile(0, 2) = 0
            tile(0, 3) = 0
            Dim r As Integer = Rnd() * 3
            tile(0, r) = 1
            y(0) = -120
        End If
       
        Me.Invalidate()
    End Sub
End Class

4 komentar:

Unknown mengatakan...

Wah bagus min,sjarang ada blog yg nge-post ttg grafik nih, thanks min!

Unknown mengatakan...

Post nya sangat membantu min. Ternyata mudah sekali membuat game piano tile.

Unknown mengatakan...

Thx gan tgs ku jd selesai deh !

Unknown mengatakan...

Such a nice article...