aboutsummaryrefslogtreecommitdiff
path: root/Pong.vb
diff options
context:
space:
mode:
authorShiftOS <[email protected]>2015-03-07 22:31:31 +0200
committerShiftOS <[email protected]>2015-03-07 22:31:31 +0200
commit4caacce50cef00e4175d35f78f2089f1f6d69562 (patch)
tree6b1ceb79d9590869fe3742753e68831378cc9e56 /Pong.vb
parentfeafdde01c360f8260b4092fc045952d97ad8872 (diff)
downloadshiftos-4caacce50cef00e4175d35f78f2089f1f6d69562.tar.gz
shiftos-4caacce50cef00e4175d35f78f2089f1f6d69562.tar.bz2
shiftos-4caacce50cef00e4175d35f78f2089f1f6d69562.zip
ShiftOS
ShiftOS is a game about evolving an experimental operating system called "ShiftOS" from a completely black and white text based command line based OS to a fully graphical operating system filled with advanced features and beautiful colours. The level of customization will exceed the levels of real world operating systems
Diffstat (limited to 'Pong.vb')
-rw-r--r--Pong.vb639
1 files changed, 639 insertions, 0 deletions
diff --git a/Pong.vb b/Pong.vb
new file mode 100644
index 0000000..5e6909d
--- /dev/null
+++ b/Pong.vb
@@ -0,0 +1,639 @@
+Public Class Pong
+ Public rolldownsize As Integer
+ Public oldbordersize As Integer
+ Public oldtitlebarheight As Integer
+ Public justopened As Boolean = False
+ Public needtorollback As Boolean = False
+ Public minimumsizewidth As Integer = 0
+ Public minimumsizeheight As Integer = 0
+
+ Dim rndInst As New Random() ' Random instance
+ Dim xVel As Single = 7
+ Dim yVel As Single = 8
+ Dim computerspeed = 8
+ Dim rand As New Random
+ Dim level As Integer = 1
+ Dim secondsleft As Integer = 60
+ Dim casualposition As Integer
+ Dim xveldec As Double = 3.0
+ Dim yveldec As Double = 3.0
+ Dim incrementx As Double = 0.4
+ Dim incrementy As Double = 0.2
+ Dim levelxspeed As Integer = 3
+ Dim levelyspeed As Integer = 3
+ Dim beatairewardtotal As Integer
+ Dim beataireward As Integer = 1
+ Dim levelrewards(50) As Integer
+ Dim totalreward As Integer
+ Dim countdown As Integer = 3
+ Dim paused As Boolean = False
+
+ Private Sub Template_Load(sender As Object, e As EventArgs) Handles MyBase.Load
+ justopened = True
+ setuptitlebar()
+ setupborders()
+ ShiftOSDesktop.setcolours()
+ Me.Left = (Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2
+ Me.Top = (Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2
+ setskin()
+
+ ShiftOSDesktop.pnlpanelbuttonpong.SendToBack()
+ ShiftOSDesktop.setuppanelbuttons()
+ ShiftOSDesktop.setpanelbuttonappearnce(ShiftOSDesktop.pnlpanelbuttonpong, ShiftOSDesktop.tbpongicon, ShiftOSDesktop.tbpongtext, True)
+ ShiftOSDesktop.programsopen = ShiftOSDesktop.programsopen + 1
+
+ setuplevelrewards()
+ End Sub
+
+ Private Sub ShiftOSDesktop_keydown(sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
+ 'Make terminal appear
+ If e.KeyCode = Keys.T AndAlso e.Control Then
+ Terminal.Show()
+ Terminal.Visible = True
+ Terminal.BringToFront()
+ End If
+
+ 'Movable Windows
+ If ShiftOSDesktop.boughtmovablewindows = True Then
+ If e.KeyCode = Keys.A AndAlso e.Control Then
+ e.Handled = True
+ Me.Location = New Point(Me.Location.X - ShiftOSDesktop.movablewindownumber, Me.Location.Y)
+ End If
+ If e.KeyCode = Keys.D AndAlso e.Control Then
+ e.Handled = True
+ Me.Location = New Point(Me.Location.X + ShiftOSDesktop.movablewindownumber, Me.Location.Y)
+ End If
+ If e.KeyCode = Keys.W AndAlso e.Control Then
+ e.Handled = True
+ Me.Location = New Point(Me.Location.X, Me.Location.Y - ShiftOSDesktop.movablewindownumber)
+ End If
+ If e.KeyCode = Keys.S AndAlso e.Control Then
+ e.Handled = True
+ Me.Location = New Point(Me.Location.X, Me.Location.Y + ShiftOSDesktop.movablewindownumber)
+ End If
+ ShiftOSDesktop.log = ShiftOSDesktop.log & My.Computer.Clock.LocalTime & " User moved " & Me.Name & " to " & Me.Location.ToString & " with " & e.KeyCode.ToString & Environment.NewLine
+ End If
+ End Sub
+
+ Private Sub titlebar_MouseDown(sender As Object, e As MouseEventArgs) Handles titlebar.MouseDown, lbtitletext.MouseDown, pnlicon.MouseDown, pgtoplcorner.MouseDown, pgtoprcorner.MouseDown
+ ' Handle Draggable Windows
+ If ShiftOSDesktop.boughtdraggablewindows = True Then
+ If e.Button = MouseButtons.Left Then
+ titlebar.Capture = False
+ lbtitletext.Capture = False
+ pnlicon.Capture = False
+ pgtoplcorner.Capture = False
+ pgtoprcorner.Capture = False
+ Const WM_NCLBUTTONDOWN As Integer = &HA1S
+ Const HTCAPTION As Integer = 2
+ Dim msg As Message = _
+ Message.Create(Me.Handle, WM_NCLBUTTONDOWN, _
+ New IntPtr(HTCAPTION), IntPtr.Zero)
+ Me.DefWndProc(msg)
+ End If
+ ShiftOSDesktop.log = ShiftOSDesktop.log & My.Computer.Clock.LocalTime & " User dragged " & Me.Name & " to " & Me.Location.ToString & Environment.NewLine
+ End If
+ End Sub
+
+ Public Sub setupborders()
+ If ShiftOSDesktop.boughtwindowborders = False Then
+ pgleft.Hide()
+ pgbottom.Hide()
+ pgright.Hide()
+ Me.Size = New Size(Me.Width - pgleft.Width - pgright.Width, Me.Height - pgbottom.Height)
+ End If
+ End Sub
+
+ Private Sub closebutton_Click(sender As Object, e As EventArgs) Handles closebutton.Click
+ Me.Close()
+ End Sub
+
+ Private Sub closebutton_MouseEnter(sender As Object, e As EventArgs) Handles closebutton.MouseEnter, closebutton.MouseUp
+ closebutton.BackgroundImage = ShiftOSDesktop.skinclosebutton(1)
+ End Sub
+
+ Private Sub closebutton_MouseLeave(sender As Object, e As EventArgs) Handles closebutton.MouseLeave
+ closebutton.BackgroundImage = ShiftOSDesktop.skinclosebutton(0)
+ End Sub
+
+ Private Sub closebutton_MouseDown(sender As Object, e As EventArgs) Handles closebutton.MouseDown
+ closebutton.BackgroundImage = ShiftOSDesktop.skinclosebutton(2)
+ End Sub
+
+ Private Sub minimizebutton_Click(sender As Object, e As EventArgs) Handles minimizebutton.Click
+ ShiftOSDesktop.minimizeprogram(Me)
+ End Sub
+
+ Private Sub titlebar_MouseEnter(sender As Object, e As EventArgs) Handles titlebar.MouseEnter, titlebar.MouseUp, lbtitletext.MouseEnter, pnlicon.MouseEnter, closebutton.MouseEnter, rollupbutton.MouseEnter
+ If ShiftOSDesktop.skinimages(3) = ShiftOSDesktop.skinimages(4) Then Else titlebar.BackgroundImage = ShiftOSDesktop.skintitlebar(1)
+ End Sub
+
+ Private Sub titlebar_MouseLeave(sender As Object, e As EventArgs) Handles titlebar.MouseLeave, lbtitletext.MouseLeave, pnlicon.MouseLeave, closebutton.MouseLeave, rollupbutton.MouseLeave
+ If ShiftOSDesktop.skinimages(3) = ShiftOSDesktop.skinimages(4) Then Else titlebar.BackgroundImage = ShiftOSDesktop.skintitlebar(0)
+ End Sub
+
+ Private Sub rollupbutton_Click(sender As Object, e As EventArgs) Handles rollupbutton.Click
+ rollupanddown()
+ End Sub
+
+ Private Sub rollupbutton_MouseEnter(sender As Object, e As EventArgs) Handles rollupbutton.MouseEnter, rollupbutton.MouseUp
+ rollupbutton.BackgroundImage = ShiftOSDesktop.skinrollupbutton(1)
+ End Sub
+
+ Private Sub rollupbutton_MouseLeave(sender As Object, e As EventArgs) Handles rollupbutton.MouseLeave
+ rollupbutton.BackgroundImage = ShiftOSDesktop.skinrollupbutton(0)
+ End Sub
+
+ Private Sub rollupbutton_MouseDown(sender As Object, e As EventArgs) Handles rollupbutton.MouseDown
+ rollupbutton.BackgroundImage = ShiftOSDesktop.skinrollupbutton(2)
+ End Sub
+
+ Public Sub setuptitlebar()
+
+ If Me.Height = Me.titlebar.Height Then pgleft.Show() : pgbottom.Show() : pgright.Show() : Me.Height = rolldownsize : needtorollback = True
+ pgleft.Width = ShiftOSDesktop.windowbordersize
+ pgright.Width = ShiftOSDesktop.windowbordersize
+ pgbottom.Height = ShiftOSDesktop.windowbordersize
+ titlebar.Height = ShiftOSDesktop.titlebarheight
+
+ If justopened = True Then
+ Me.Size = New Size(700, 400) 'put the default size of your window here
+ Me.Size = New Size(Me.Width, Me.Height + ShiftOSDesktop.titlebarheight - 30)
+ Me.Size = New Size(Me.Width + ShiftOSDesktop.windowbordersize + ShiftOSDesktop.windowbordersize, Me.Height + ShiftOSDesktop.windowbordersize)
+ oldbordersize = ShiftOSDesktop.windowbordersize
+ oldtitlebarheight = ShiftOSDesktop.titlebarheight
+ justopened = False
+ Else
+ If Me.Visible = True Then
+ Me.Hide()
+ Me.Size = New Size(Me.Width, Me.Height - oldtitlebarheight + 30)
+ Me.Size = New Size(Me.Width - oldbordersize - oldbordersize, Me.Height - oldbordersize)
+ oldbordersize = ShiftOSDesktop.windowbordersize
+ oldtitlebarheight = ShiftOSDesktop.titlebarheight
+ Me.Size = New Size(Me.Width, Me.Height + ShiftOSDesktop.titlebarheight - 30)
+ Me.Size = New Size(Me.Width + ShiftOSDesktop.windowbordersize + ShiftOSDesktop.windowbordersize, Me.Height + ShiftOSDesktop.windowbordersize)
+ rolldownsize = Me.Height
+ If needtorollback = True Then Me.Height = titlebar.Height : pgleft.Hide() : pgbottom.Hide() : pgright.Hide()
+ Me.Show()
+ End If
+ End If
+
+ If ShiftOSDesktop.showwindowcorners = True Then
+ pgtoplcorner.Show()
+ pgtoprcorner.Show()
+ pgtoprcorner.Width = ShiftOSDesktop.titlebarcornerwidth
+ pgtoplcorner.Width = ShiftOSDesktop.titlebarcornerwidth
+ Else
+ pgtoplcorner.Hide()
+ pgtoprcorner.Hide()
+ End If
+
+ If ShiftOSDesktop.boughttitlebar = False Then
+ titlebar.Hide()
+ Me.Size = New Size(Me.Width, Me.Size.Height - titlebar.Height)
+ End If
+
+ If ShiftOSDesktop.boughttitletext = False Then
+ lbtitletext.Hide()
+ Else
+ lbtitletext.Font = New Font(ShiftOSDesktop.titletextfont, ShiftOSDesktop.titletextsize, ShiftOSDesktop.titletextstyle)
+ lbtitletext.Text = ShiftOSDesktop.pongname
+ lbtitletext.Show()
+ End If
+
+ If ShiftOSDesktop.boughtclosebutton = False Then
+ closebutton.Hide()
+ Else
+ closebutton.BackColor = ShiftOSDesktop.closebuttoncolour
+ closebutton.Height = ShiftOSDesktop.closebuttonheight
+ closebutton.Width = ShiftOSDesktop.closebuttonwidth
+ closebutton.Show()
+ End If
+
+ If ShiftOSDesktop.boughtrollupbutton = False Then
+ rollupbutton.Hide()
+ Else
+ rollupbutton.BackColor = ShiftOSDesktop.rollupbuttoncolour
+ rollupbutton.Height = ShiftOSDesktop.rollupbuttonheight
+ rollupbutton.Width = ShiftOSDesktop.rollupbuttonwidth
+ rollupbutton.Show()
+ End If
+
+ If ShiftOSDesktop.boughtminimizebutton = False Then
+ minimizebutton.Hide()
+ Else
+ minimizebutton.BackColor = ShiftOSDesktop.minimizebuttoncolour
+ minimizebutton.Height = ShiftOSDesktop.minimizebuttonheight
+ minimizebutton.Width = ShiftOSDesktop.minimizebuttonwidth
+ minimizebutton.Show()
+ End If
+
+ If ShiftOSDesktop.boughtwindowborders = True Then
+ closebutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.closebuttonside - closebutton.Size.Width, ShiftOSDesktop.closebuttontop)
+ rollupbutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.rollupbuttonside - rollupbutton.Size.Width, ShiftOSDesktop.rollupbuttontop)
+ minimizebutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.minimizebuttonside - minimizebutton.Size.Width, ShiftOSDesktop.minimizebuttontop)
+ Select Case ShiftOSDesktop.titletextposition
+ Case "Left"
+ lbtitletext.Location = New Point(ShiftOSDesktop.titletextside, ShiftOSDesktop.titletexttop)
+ Case "Centre"
+ lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, ShiftOSDesktop.titletexttop)
+ End Select
+ lbtitletext.ForeColor = ShiftOSDesktop.titletextcolour
+ Else
+ closebutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.closebuttonside - pgtoplcorner.Width - pgtoprcorner.Width - closebutton.Size.Width, ShiftOSDesktop.closebuttontop)
+ rollupbutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.rollupbuttonside - pgtoplcorner.Width - pgtoprcorner.Width - rollupbutton.Size.Width, ShiftOSDesktop.rollupbuttontop)
+ minimizebutton.Location = New Point(titlebar.Size.Width - ShiftOSDesktop.minimizebuttonside - pgtoplcorner.Width - pgtoprcorner.Width - minimizebutton.Size.Width, ShiftOSDesktop.minimizebuttontop)
+ Select Case ShiftOSDesktop.titletextposition
+ Case "Left"
+ lbtitletext.Location = New Point(ShiftOSDesktop.titletextside + pgtoplcorner.Width, ShiftOSDesktop.titletexttop)
+ Case "Centre"
+ lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, ShiftOSDesktop.titletexttop)
+ End Select
+ lbtitletext.ForeColor = ShiftOSDesktop.titletextcolour
+ End If
+
+ If ShiftOSDesktop.boughtpongicon = True Then
+ pnlicon.Visible = True
+ pnlicon.Location = New Point(ShiftOSDesktop.titlebariconside, ShiftOSDesktop.titlebaricontop)
+ pnlicon.Size = New Size(ShiftOSDesktop.titlebariconsize, ShiftOSDesktop.titlebariconsize)
+ pnlicon.Image = ShiftOSDesktop.pongicontitlebar 'Replace with the correct icon for the program.
+ End If
+
+ End Sub
+
+ Public Sub rollupanddown()
+ If Me.Height = Me.titlebar.Height Then
+ pgleft.Show()
+ pgbottom.Show()
+ pgright.Show()
+ Me.Height = rolldownsize
+ Me.MinimumSize = New Size(minimumsizewidth, minimumsizeheight)
+ If paused = True Then paused = False
+ gameTimer.Start()
+ counter.Start()
+ Else
+ Me.MinimumSize = New Size(0, 0)
+ pgleft.Hide()
+ pgbottom.Hide()
+ pgright.Hide()
+ rolldownsize = Me.Height
+ Me.Height = Me.titlebar.Height
+ If paused = False Then paused = True
+ gameTimer.Stop()
+ counter.Stop()
+ End If
+ End Sub
+
+ Public Sub setskin()
+ If ShiftOSDesktop.skinclosebutton(0) Is Nothing Then Else closebutton.BackgroundImage = ShiftOSDesktop.skinclosebutton(0).Clone
+ closebutton.BackgroundImageLayout = ShiftOSDesktop.skinclosebuttonstyle
+ If ShiftOSDesktop.skintitlebar(0) Is Nothing Then Else titlebar.BackgroundImage = ShiftOSDesktop.skintitlebar(0).Clone
+ titlebar.BackgroundImageLayout = ShiftOSDesktop.skintitlebarstyle
+ If ShiftOSDesktop.skinrollupbutton(0) Is Nothing Then Else rollupbutton.BackgroundImage = ShiftOSDesktop.skinrollupbutton(0).Clone
+ rollupbutton.BackgroundImageLayout = ShiftOSDesktop.skinrollupbuttonstyle
+ If ShiftOSDesktop.skintitlebarleftcorner(0) Is Nothing Then Else pgtoplcorner.BackgroundImage = ShiftOSDesktop.skintitlebarleftcorner(0).Clone
+ pgtoplcorner.BackgroundImageLayout = ShiftOSDesktop.skintitlebarleftcornerstyle
+ If ShiftOSDesktop.skintitlebarrightcorner(0) Is Nothing Then Else pgtoprcorner.BackgroundImage = ShiftOSDesktop.skintitlebarrightcorner(0).Clone
+ pgtoprcorner.BackgroundImageLayout = ShiftOSDesktop.skintitlebarrightcornerstyle
+ If ShiftOSDesktop.skinminimizebutton(0) Is Nothing Then Else minimizebutton.BackgroundImage = ShiftOSDesktop.skinminimizebutton(0).Clone
+ minimizebutton.BackgroundImageLayout = ShiftOSDesktop.skinminimizebuttonstyle
+
+ 'remove background colour when image is present
+ If closebutton.BackgroundImage Is Nothing Then Else closebutton.BackColor = Color.Transparent
+ If titlebar.BackgroundImage Is Nothing Then Else titlebar.BackColor = Color.Transparent
+ If rollupbutton.BackgroundImage Is Nothing Then Else rollupbutton.BackColor = Color.Transparent
+ If pgtoplcorner.BackgroundImage Is Nothing Then Else pgtoplcorner.BackColor = Color.Transparent
+ If pgtoprcorner.BackgroundImage Is Nothing Then Else pgtoprcorner.BackColor = Color.Transparent
+ If minimizebutton.BackgroundImage Is Nothing Then Else minimizebutton.BackColor = Color.Transparent
+
+ Me.TransparencyKey = ShiftOSDesktop.globaltransparencycolour
+ End Sub
+
+ Private Sub Clock_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
+ ShiftOSDesktop.programsopen = ShiftOSDesktop.programsopen - 1
+ Me.Hide()
+ ShiftOSDesktop.setuppanelbuttons()
+ End Sub
+
+ 'end of general setup
+
+ ' Move the paddle according to the mouse position.
+ Private Sub pongMain_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove, pgcontents.MouseMove, titlebar.MouseMove, ball.MouseMove, paddleComputer.MouseMove, paddleHuman.MouseMove, lblstatsX.MouseMove, lbllevelandtime.MouseMove, lblstatsY.MouseMove, lblstatscodepoints.MouseMove, pnlintro.MouseMove, Label6.MouseMove, Label8.MouseMove, btnstartgame.MouseMove
+ paddleHuman.Location = New Point(paddleHuman.Location.X, (MousePosition.Y - Me.Location.Y - ShiftOSDesktop.titlebarheight - ShiftOSDesktop.windowbordersize) - (paddleHuman.Height / 2))
+ End Sub
+
+ Private Sub gameTimer_Tick(sender As Object, e As EventArgs) Handles gameTimer.Tick
+
+ 'Set the computer player to move according to the ball's position.
+ If ball.Location.X > 500 - xVel * 10 AndAlso xVel > 0 Then
+ If ball.Location.Y > paddleComputer.Location.Y + 50 Then
+ paddleComputer.Location = New Point(paddleComputer.Location.X, paddleComputer.Location.Y + computerspeed)
+ End If
+ If ball.Location.Y < paddleComputer.Location.Y + 50 Then
+ paddleComputer.Location = New Point(paddleComputer.Location.X, paddleComputer.Location.Y - computerspeed)
+ End If
+ casualposition = rand.Next(-150, 201)
+ Else
+ If paddleComputer.Location.Y > Me.Size.Height / 2 - paddleComputer.Height + casualposition Then 'used to be me.location.y
+ paddleComputer.Location = New Point(paddleComputer.Location.X, paddleComputer.Location.Y - computerspeed)
+ End If
+ If paddleComputer.Location.Y < Me.Size.Height / 2 - paddleComputer.Height + casualposition Then 'used to be me.location.y
+ paddleComputer.Location = New Point(paddleComputer.Location.X, paddleComputer.Location.Y + computerspeed)
+ End If
+ End If
+
+ 'Set Xvel and Yvel speeds from decimal
+ If xVel > 0 Then xVel = Math.Round(xveldec)
+ If xVel < 0 Then xVel = -Math.Round(xveldec)
+ If yVel > 0 Then yVel = Math.Round(yveldec)
+ If yVel < 0 Then yVel = -Math.Round(yveldec)
+
+ ' Move the game ball.
+ ball.Location = New Point(ball.Location.X + xVel, ball.Location.Y + yVel)
+
+ ' Check for top wall.
+ If ball.Location.Y < 0 Then
+ ball.Location = New Point(ball.Location.X, 0)
+ yVel = -yVel
+ End If
+
+ ' Check for bottom wall.
+ If ball.Location.Y > Me.Height - ball.Size.Height - titlebar.Height - pgbottom.Height Then
+ ball.Location = New Point(ball.Location.X, Me.Height - ball.Size.Height - titlebar.Height - pgbottom.Height)
+ yVel = -yVel
+ End If
+
+ ' Check for player paddle.
+ If ball.Bounds.IntersectsWith(paddleHuman.Bounds) Then
+ ball.Location = New Point(paddleHuman.Location.X + ball.Size.Width, ball.Location.Y)
+ 'randomly increase x or y speed of ball
+ Select Case rand.Next(1, 3)
+ Case 1
+ xveldec = xveldec + incrementx
+ Case 2
+ If yveldec > 0 Then yveldec = yveldec + incrementy
+ If yveldec < 0 Then yveldec = yveldec - incrementy
+ End Select
+ xVel = -xVel
+ My.Computer.Audio.Play(My.Resources.typesound, AudioPlayMode.Background)
+ End If
+
+ ' Check for computer paddle.
+ If ball.Bounds.IntersectsWith(paddleComputer.Bounds) Then
+ ball.Location = New Point(paddleComputer.Location.X - paddleComputer.Size.Width + 1, ball.Location.Y)
+ xveldec = xveldec + incrementx
+ xVel = -xVel
+ My.Computer.Audio.Play(My.Resources.typesound, AudioPlayMode.Background)
+ End If
+
+ ' Check for left wall.
+ If ball.Location.X < -100 Then
+ ball.Location = New Point(Me.Size.Width / 2 + 200, Me.Size.Height / 2)
+ paddleComputer.Location = New Point(paddleComputer.Location.X, ball.Location.Y)
+ If xVel > 0 Then xVel = -xVel
+ pnllose.Show()
+ gameTimer.Stop()
+ counter.Stop()
+ lblmissedout.Text = "You Missed Out On:" & Environment.NewLine & levelrewards(level - 1) + beatairewardtotal & " Codepoints"
+ End If
+
+ ' Check for right wall.
+ If ball.Location.X > Me.Width - ball.Size.Width - paddleComputer.Width + 100 Then
+ ball.Location = New Point(Me.Size.Width / 2 + 200, Me.Size.Height / 2)
+ paddleComputer.Location = New Point(paddleComputer.Location.X, ball.Location.Y)
+ If xVel > 0 Then xVel = -xVel
+ beatairewardtotal = beatairewardtotal + beataireward
+ lblbeatai.Show()
+ lblbeatai.Text = "You got " & beataireward & " codepoints for beating the Computer!"
+ tmrcountdown.Start()
+ gameTimer.Stop()
+ counter.Stop()
+ End If
+
+ 'lblstats.Text = "Xspeed: " & Math.Abs(xVel) & " Yspeed: " & Math.Abs(yVel) & " Human Location: " & paddleHuman.Location.ToString & " Computer Location: " & paddleComputer.Location.ToString & Environment.NewLine & " Ball Location: " & ball.Location.ToString & " Xdec: " & xveldec & " Ydec: " & yveldec & " Xinc: " & incrementx & " Yinc: " & incrementy
+ lblstatsX.Text = "Xspeed: " & xveldec
+ lblstatsY.Text = "Yspeed: " & yveldec
+ lblstatscodepoints.Text = "Codepoints earned: " & levelrewards(level - 1) + beatairewardtotal
+
+ lbllevelandtime.Text = "Level: " & level & " - " & secondsleft & " Seconds Left"
+
+ If xVel > 20 OrElse xVel < -20 Then
+ paddleHuman.Width = Math.Abs(xVel)
+ paddleComputer.Width = Math.Abs(xVel)
+ Else
+ paddleHuman.Width = 20
+ paddleComputer.Width = 20
+ End If
+
+ computerspeed = Math.Abs(yVel)
+
+ ' pgcontents.Refresh()
+ ' pgcontents.CreateGraphics.FillRectangle(Brushes.Black, ball.Location.X, ball.Location.Y, ball.Width, ball.Height)
+
+ End Sub
+
+ Private Sub counter_Tick(sender As Object, e As EventArgs) Handles counter.Tick
+ secondsleft = secondsleft - 1
+ If secondsleft = -1 Then
+ secondsleft = 60
+ level = level + 1
+ generatenextlevel()
+ pnlgamestats.Show()
+ counter.Stop()
+ gameTimer.Stop()
+ End If
+ lblstatscodepoints.Text = "Codepoints earned: " & levelrewards(level - 1) + beatairewardtotal
+ End Sub
+
+ Private Sub btnplayon_Click(sender As Object, e As EventArgs) Handles btnplayon.Click
+ xveldec = levelxspeed
+ yveldec = levelyspeed
+
+ tmrcountdown.Start()
+ lblbeatai.Text = "Get " & beataireward & " codepoints for beating the Computer!"
+ pnlgamestats.Hide()
+ lblbeatai.Show()
+ ball.Location = New Point(paddleHuman.Location.X + paddleHuman.Width + 50, paddleHuman.Location.Y + paddleHuman.Height / 2)
+ If xVel < 0 Then xVel = Math.Abs(xVel)
+ lbllevelandtime.Text = "Level: " & level & " - " & secondsleft & " Seconds Left"
+ End Sub
+
+ 'Increase the ball speed stats for the next level
+ Private Sub generatenextlevel()
+ lbllevelreached.Text = "You Reached Level " & level & "!"
+
+ lblpreviousstats.Text = "Initial Ball X Speed: " & levelxspeed & Environment.NewLine & _
+ "Initial Ball Y Speed: " & levelyspeed & Environment.NewLine & _
+ "Increment X Speed: " & incrementx & Environment.NewLine & _
+ "Increment Y Speed: " & incrementy
+
+ Select Case rand.Next(1, 3)
+ Case 1
+ levelxspeed = levelxspeed + 1
+ Case 2
+ levelxspeed = levelxspeed + 2
+ End Select
+
+ Select Case rand.Next(1, 3)
+ Case 1
+ levelyspeed = levelyspeed + 1
+ Case 2
+ levelyspeed = levelyspeed + 2
+ End Select
+
+ Select Case rand.Next(1, 6)
+ Case 1
+ incrementx = incrementx + 0.1
+ Case 2
+ incrementx = incrementx + 0.2
+ Case 3
+ incrementy = incrementy + 0.1
+ Case 4
+ incrementy = incrementy + 0.2
+ Case 5
+ incrementy = incrementy + 0.3
+ End Select
+
+ lblnextstats.Text = "Initial Ball X Speed: " & levelxspeed & Environment.NewLine & _
+ "Initial Ball Y Speed: " & levelyspeed & Environment.NewLine & _
+ "Increment X Speed: " & incrementx & Environment.NewLine & _
+ "Increment Y Speed: " & incrementy
+
+ If level < 15 Then
+ beataireward = level * 2
+ Else
+ beataireward = Math.Round(levelrewards(level) / 10)
+ End If
+
+ totalreward = levelrewards(level - 1) + beatairewardtotal
+
+ btncashout.Text = "Cash out with " & totalreward & " codepoints!"
+ btnplayon.Text = "Play on for " & levelrewards(level) + beatairewardtotal & " codepoints!"
+ End Sub
+
+ Private Sub setuplevelrewards()
+ levelrewards(0) = 0
+ levelrewards(1) = 1
+ levelrewards(2) = 3
+ levelrewards(3) = 7
+ levelrewards(4) = 13
+ levelrewards(5) = 20
+ levelrewards(6) = 30
+ levelrewards(7) = 45
+ levelrewards(8) = 60
+ levelrewards(9) = 80
+ levelrewards(10) = 100
+ levelrewards(11) = 125
+ levelrewards(12) = 150
+ levelrewards(13) = 200
+ levelrewards(14) = 250
+ levelrewards(15) = 300
+ levelrewards(16) = 400
+ levelrewards(17) = 500
+ levelrewards(18) = 650
+ levelrewards(19) = 800
+ levelrewards(20) = 1000
+ levelrewards(21) = 1250
+ levelrewards(22) = 1600
+ levelrewards(23) = 2000
+ levelrewards(24) = 2500
+ levelrewards(25) = 3000
+ levelrewards(26) = 3750
+ levelrewards(27) = 4500
+ levelrewards(28) = 5500
+ levelrewards(29) = 7000
+ levelrewards(30) = 9000
+ levelrewards(31) = 11000
+ levelrewards(32) = 13500
+ levelrewards(33) = 16000
+ levelrewards(34) = 20000
+ levelrewards(35) = 25000
+ levelrewards(36) = 32000
+ levelrewards(37) = 40000
+ levelrewards(38) = 50000
+ levelrewards(39) = 75000
+ levelrewards(40) = 100000
+ End Sub
+
+ Private Sub countdown_Tick(sender As Object, e As EventArgs) Handles tmrcountdown.Tick
+ Select Case countdown
+ Case 0
+ countdown = 3
+ lblcountdown.Hide()
+ lblbeatai.Hide()
+ My.Computer.Audio.Play(My.Resources.writesound, AudioPlayMode.Background)
+ gameTimer.Start()
+ counter.Start()
+ tmrcountdown.Stop()
+ Case 1
+ lblcountdown.Text = "1"
+ countdown = countdown - 1
+ My.Computer.Audio.Play(My.Resources.writesound, AudioPlayMode.Background)
+ Case 2
+ lblcountdown.Text = "2"
+ countdown = countdown - 1
+ My.Computer.Audio.Play(My.Resources.writesound, AudioPlayMode.Background)
+ Case 3
+ lblcountdown.Text = "3"
+ countdown = countdown - 1
+ My.Computer.Audio.Play(My.Resources.writesound, AudioPlayMode.Background)
+ lblcountdown.Show()
+ End Select
+ End Sub
+
+ Private Sub btncashout_Click(sender As Object, e As EventArgs) Handles btncashout.Click
+ pnlgamestats.Hide()
+ pnlfinalstats.Show()
+ lblfinalcodepointswithtext.Text = "You cashed out with " & totalreward & " codepoints!"
+ lblfinallevelreached.Text = "Codepoints rewarded for reaching level " & level - 1
+ lblfinallevelreward.Text = levelrewards(level - 1)
+ lblfinalcomputerreward.Text = beatairewardtotal
+ lblfinalcodepoints.Text = totalreward & " CP"
+ ShiftOSDesktop.codepoints = ShiftOSDesktop.codepoints + totalreward
+ End Sub
+
+ Private Sub newgame()
+ pnlfinalstats.Hide()
+ pnllose.Hide()
+ pnlintro.Hide()
+
+ level = 1
+ totalreward = 0
+ beataireward = 2
+ beatairewardtotal = 0
+ secondsleft = 60
+
+ levelxspeed = 3
+ levelyspeed = 3
+
+ incrementx = 0.4
+ incrementy = 0.2
+
+ xveldec = levelxspeed
+ yveldec = levelyspeed
+
+ tmrcountdown.Start()
+ lblbeatai.Text = "Get " & beataireward & " codepoints for beating the Computer!"
+ pnlgamestats.Hide()
+ lblbeatai.Show()
+ ball.Location = New Point(paddleHuman.Location.X + paddleHuman.Width + 50, paddleHuman.Location.Y + paddleHuman.Height / 2)
+ If xVel < 0 Then xVel = Math.Abs(xVel)
+ lbllevelandtime.Text = "Level: " & level & " - " & secondsleft & " Seconds Left"
+ End Sub
+
+ Private Sub btnplayagain_Click(sender As Object, e As EventArgs) Handles btnplayagain.Click
+ newgame()
+ End Sub
+
+ Private Sub btnlosetryagain_Click(sender As Object, e As EventArgs) Handles btnlosetryagain.Click
+ newgame()
+ End Sub
+
+ Private Sub btnstartgame_Click(sender As Object, e As EventArgs) Handles btnstartgame.Click
+ newgame()
+ End Sub
+
+ Private Sub rollupbutton_Paint(sender As Object, e As PaintEventArgs) Handles rollupbutton.Paint
+
+ End Sub
+End Class \ No newline at end of file