From a3db778746af40eb9f9ec2cccfb3c935164600f5 Mon Sep 17 00:00:00 2001 From: pfg github Date: Sun, 8 Mar 2015 09:18:40 -0700 Subject: Full Source --- ShiftOS/Pong.vb | 743 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 743 insertions(+) create mode 100644 ShiftOS/Pong.vb (limited to 'ShiftOS/Pong.vb') diff --git a/ShiftOS/Pong.vb b/ShiftOS/Pong.vb new file mode 100644 index 0000000..ee99e6f --- /dev/null +++ b/ShiftOS/Pong.vb @@ -0,0 +1,743 @@ +Public Class Pong + Public oldsize As Integer + 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 RolledUp As Boolean = False + 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 + +#Region "Template Code" + + Private Sub Template_Load(sender As Object, e As EventArgs) Handles MyBase.Load + justopened = True + Me.Left = (Screen.PrimaryScreen.Bounds.Width - Me.Width) / 2 + Me.Top = (Screen.PrimaryScreen.Bounds.Height - Me.Height) / 2 + setupall() + If ShiftOSDesktop.PongCorrupted Then Me.Close() : infobox.showinfo("The Plague.", Me.Name & "has been corrupted by The Plague.") + + setuplevelrewards() + + If ShiftOSDesktop.boughtgray4 = True And ShiftOSDesktop.boughtshiftnet = False Then tmrstoryline.Start() + + ShiftOSDesktop.pnlpanelbuttonpong.SendToBack() 'CHANGE NAME + ShiftOSDesktop.setuppanelbuttons() + ShiftOSDesktop.setpanelbuttonappearnce(ShiftOSDesktop.pnlpanelbuttonpong, ShiftOSDesktop.tbpongicon, ShiftOSDesktop.tbpongtext, True) 'modify to proper name + ShiftOSDesktop.programsopen = ShiftOSDesktop.programsopen + 1 + End Sub + + Public Sub setupall() + setuptitlebar() + setupborders() + setskin() + 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 = Skins.closebtnhover + End Sub + + Private Sub closebutton_MouseLeave(sender As Object, e As EventArgs) Handles closebutton.MouseLeave + closebutton.BackgroundImage = Skins.closebtn + End Sub + + Private Sub closebutton_MouseDown(sender As Object, e As EventArgs) Handles closebutton.MouseDown + closebutton.BackgroundImage = Skins.closebtnclick + End Sub + + Private Sub minimizebutton_Click(sender As Object, e As EventArgs) Handles minimizebutton.Click + ShiftOSDesktop.minimizeprogram(Me, False) + End Sub + + 'Old skinning system - No idea what this does + ''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 = Skins.rollbtnhover + End Sub + + Private Sub rollupbutton_MouseLeave(sender As Object, e As EventArgs) Handles rollupbutton.MouseLeave + rollupbutton.BackgroundImage = Skins.rollbtn + End Sub + + Private Sub rollupbutton_MouseDown(sender As Object, e As EventArgs) Handles rollupbutton.MouseDown + rollupbutton.BackgroundImage = Skins.rollbtnclick + End Sub + + Public Sub setuptitlebar() + + setupborders() + + If Me.Height = Me.titlebar.Height Then pgleft.Show() : pgbottom.Show() : pgright.Show() : Me.Height = rolldownsize : needtorollback = True + pgleft.Width = Skins.borderwidth + pgright.Width = Skins.borderwidth + pgbottom.Height = Skins.borderwidth + titlebar.Height = Skins.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 + Skins.titlebarheight - 30) + Me.Size = New Size(Me.Width + Skins.borderwidth + Skins.borderwidth, Me.Height + Skins.borderwidth) + oldbordersize = Skins.borderwidth + oldtitlebarheight = Skins.titlebarheight + justopened = False + Else + If Me.Visible = True Then + 'Me.Hide() + Me.Size = New Size(Me.Width - (2 * oldbordersize) + (2 * Skins.borderwidth), (Me.Height - oldtitlebarheight - oldbordersize) + Skins.titlebarheight + Skins.borderwidth) + 'Me.Size = New Size(Me.Width - oldbordersize - oldbordersize, Me.Height - oldbordersize) 'Just put a little algebra in the first size setting and comment out the mess + oldbordersize = Skins.borderwidth + oldtitlebarheight = Skins.titlebarheight + 'Me.Size = New Size(Me.Width, Me.Height + Skins.titlebarheight - 30) + 'Me.Size = New Size(Me.Width + Skins. borderwidth + Skins. borderwidth, Me.Height + Skins. borderwidth) + 'rolldownsize = Me.Height + If needtorollback = True Then Me.Height = titlebar.Height : pgleft.Hide() : pgbottom.Hide() : pgright.Hide() + 'Me.Show() + End If + End If + + If Skins.enablecorners = True Then + pgtoplcorner.Show() + pgtoprcorner.Show() + pgtoprcorner.Width = Skins.titlebarcornerwidth + pgtoplcorner.Width = Skins.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(Skins.titletextfontfamily, Skins.titletextfontsize, Skins.titletextfontstyle, GraphicsUnit.Point) + lbtitletext.Text = ShiftOSDesktop.pongname 'Remember to change to name of program!!!! + lbtitletext.Show() + End If + + If ShiftOSDesktop.boughtclosebutton = False Then + closebutton.Hide() + Else + closebutton.BackColor = Skins.closebtncolour + closebutton.Size = Skins.closebtnsize + closebutton.Show() + End If + + If ShiftOSDesktop.boughtrollupbutton = False Then + rollupbutton.Hide() + Else + rollupbutton.BackColor = Skins.rollbtncolour + rollupbutton.Size = Skins.rollbtnsize + rollupbutton.Show() + End If + + If ShiftOSDesktop.boughtminimizebutton = False Then + minimizebutton.Hide() + Else + minimizebutton.BackColor = Skins.minbtncolour + minimizebutton.Size = Skins.minbtnsize + minimizebutton.Show() + End If + + If ShiftOSDesktop.boughtwindowborders = True Then + closebutton.Location = New Point(titlebar.Size.Width - Skins.closebtnfromside - closebutton.Size.Width, Skins.closebtnfromtop) + rollupbutton.Location = New Point(titlebar.Size.Width - Skins.rollbtnfromside - rollupbutton.Size.Width, Skins.rollbtnfromtop) + minimizebutton.Location = New Point(titlebar.Size.Width - Skins.minbtnfromside - minimizebutton.Size.Width, Skins.minbtnfromtop) + Select Case Skins.titletextpos + Case "Left" + lbtitletext.Location = New Point(Skins.titletextfromside, Skins.titletextfromtop) + Case "Centre" + lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, Skins.titletextfromtop) + End Select + lbtitletext.ForeColor = Skins.titletextcolour + Else + closebutton.Location = New Point(titlebar.Size.Width - Skins.closebtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - closebutton.Size.Width, Skins.closebtnfromtop) + rollupbutton.Location = New Point(titlebar.Size.Width - Skins.rollbtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - rollupbutton.Size.Width, Skins.rollbtnfromtop) + minimizebutton.Location = New Point(titlebar.Size.Width - Skins.minbtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - minimizebutton.Size.Width, Skins.minbtnfromtop) + Select Case Skins.titletextpos + Case "Left" + lbtitletext.Location = New Point(Skins.titletextfromside + pgtoplcorner.Width, Skins.titletextfromtop) + Case "Centre" + lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, Skins.titletextfromtop) + End Select + lbtitletext.ForeColor = Skins.titletextcolour + End If + + 'Change when Icon skinning complete + If ShiftOSDesktop.boughtpongicon = True Then ' Change to program's icon + 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) + Else + Me.MinimumSize = New Size(0, 0) + pgleft.Hide() + pgbottom.Hide() + pgright.Hide() + rolldownsize = Me.Height + Me.Height = Me.titlebar.Height + End If + End Sub + + Public Sub resettitlebar() + If ShiftOSDesktop.boughtwindowborders = True Then + closebutton.Location = New Point(titlebar.Size.Width - Skins.closebtnfromside - closebutton.Size.Width, Skins.closebtnfromtop) + rollupbutton.Location = New Point(titlebar.Size.Width - Skins.rollbtnfromside - rollupbutton.Size.Width, Skins.rollbtnfromtop) + minimizebutton.Location = New Point(titlebar.Size.Width - Skins.minbtnfromside - minimizebutton.Size.Width, Skins.minbtnfromtop) + Select Case Skins.titletextpos + Case "Left" + lbtitletext.Location = New Point(Skins.titletextfromside, Skins.titletextfromtop) + Case "Centre" + lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, Skins.titletextfromtop) + End Select + lbtitletext.ForeColor = Skins.titletextcolour + Else + closebutton.Location = New Point(titlebar.Size.Width - Skins.closebtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - closebutton.Size.Width, Skins.closebtnfromtop) + rollupbutton.Location = New Point(titlebar.Size.Width - Skins.rollbtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - rollupbutton.Size.Width, Skins.rollbtnfromtop) + minimizebutton.Location = New Point(titlebar.Size.Width - Skins.minbtnfromside - pgtoplcorner.Width - pgtoprcorner.Width - minimizebutton.Size.Width, Skins.minbtnfromtop) + Select Case Skins.titletextpos + Case "Left" + lbtitletext.Location = New Point(Skins.titletextfromside + pgtoplcorner.Width, Skins.titletextfromtop) + Case "Centre" + lbtitletext.Location = New Point((titlebar.Width / 2) - lbtitletext.Width / 2, Skins.titletextfromtop) + End Select + lbtitletext.ForeColor = Skins.titletextcolour + End If + End Sub + + Private Sub RightCursorOn_MouseDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles pgright.MouseEnter + If ShiftOSDesktop.boughtresizablewindows = True Then + Cursor = Cursors.SizeWE + End If + End Sub + + Private Sub bottomCursorOn_MouseDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles pgbottom.MouseEnter + If ShiftOSDesktop.boughtresizablewindows = True Then + Cursor = Cursors.SizeNS + End If + End Sub + + Private Sub CornerCursorOn_MouseDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles pgbottomrcorner.MouseEnter + If ShiftOSDesktop.boughtresizablewindows = True Then + Cursor = Cursors.SizeNWSE + End If + End Sub + + Private Sub SizeCursoroff_MouseDown(ByVal sender As Object, ByVal e As System.EventArgs) Handles pgright.MouseLeave, pgbottom.MouseLeave, pgbottomrcorner.MouseLeave + If ShiftOSDesktop.boughtresizablewindows = True Then + Cursor = Cursors.Default + End If + End Sub + + Public Sub setskin() + 'disposals + closebutton.BackgroundImage = Nothing + titlebar.BackgroundImage = Nothing + rollupbutton.BackgroundImage = Nothing + pgtoplcorner.BackgroundImage = Nothing + pgtoprcorner.BackgroundImage = Nothing + minimizebutton.BackgroundImage = Nothing + 'apply new skin + If Skins.closebtn Is Nothing Then closebutton.BackColor = Skins.closebtncolour Else closebutton.BackgroundImage = Skins.closebtn + closebutton.BackgroundImageLayout = Skins.closebtnlayout + If Skins.titlebar Is Nothing Then titlebar.BackColor = Skins.titlebarcolour Else titlebar.BackgroundImage = Skins.titlebar + titlebar.BackgroundImageLayout = Skins.titlebarlayout + If Skins.rollbtn Is Nothing Then rollupbutton.BackColor = Skins.rollbtncolour Else rollupbutton.BackgroundImage = Skins.rollbtn + rollupbutton.BackgroundImageLayout = Skins.rollbtnlayout + If Skins.leftcorner Is Nothing Then pgtoplcorner.BackColor = Skins.leftcornercolour Else pgtoplcorner.BackgroundImage = Skins.leftcorner + pgtoplcorner.BackgroundImageLayout = Skins.leftcornerlayout + If Skins.rightcorner Is Nothing Then pgtoprcorner.BackColor = Skins.rightcornercolour Else pgtoprcorner.BackgroundImage = Skins.rightcorner + pgtoprcorner.BackgroundImageLayout = Skins.rightcornerlayout + If Skins.minbtn Is Nothing Then minimizebutton.BackColor = Skins.minbtncolour Else minimizebutton.BackgroundImage = Skins.minbtn + minimizebutton.BackgroundImageLayout = Skins.minbtnlayout + If Skins.borderleft Is Nothing Then pgleft.BackColor = Skins.borderleftcolour Else pgleft.BackgroundImage = Skins.borderleft + pgleft.BackgroundImageLayout = Skins.borderleftlayout + If Skins.borderright Is Nothing Then pgright.BackColor = Skins.borderrightcolour Else pgright.BackgroundImage = Skins.borderright + pgleft.BackgroundImageLayout = Skins.borderrightlayout + If Skins.borderbottom Is Nothing Then pgbottom.BackColor = Skins.borderbottomcolour Else pgbottom.BackgroundImage = Skins.borderbottom + pgbottom.BackgroundImageLayout = Skins.borderbottomlayout + If enablebordercorners = True Then + If Skins.bottomleftcorner Is Nothing Then pgbottomlcorner.BackColor = Skins.bottomleftcornercolour Else pgbottomlcorner.BackgroundImage = Skins.bottomleftcorner + pgbottomlcorner.BackgroundImageLayout = Skins.bottomleftcornerlayout + If Skins.bottomrightcorner Is Nothing Then pgbottomrcorner.BackColor = Skins.bottomrightcornercolour Else pgbottomrcorner.BackgroundImage = Skins.bottomrightcorner + pgbottomrcorner.BackgroundImageLayout = Skins.bottomrightcornerlayout + Else + pgbottomlcorner.BackColor = Skins.borderrightcolour + pgbottomrcorner.BackColor = Skins.borderrightcolour + pgbottomlcorner.BackgroundImage = Nothing + pgbottomrcorner.BackgroundImage = Nothing + End If + + 'set bottom border corner size + pgbottomlcorner.Size = New Size(Skins.borderwidth, Skins.borderwidth) + pgbottomrcorner.Size = New Size(Skins.borderwidth, Skins.borderwidth) + pgbottomlcorner.Location = New Point(0, Me.Height - Skins.borderwidth) + pgbottomrcorner.Location = New Point(Me.Width, Me.Height - Skins.borderwidth) + + 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 +#End Region + + ' 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 + + secondsleft = 60 + + 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 + lblstatscodepoints.Text = "Codepoints: " 'reset stats text + lblstatsX.Text = "Xspeed: " + lblstatsY.Text = "Yspeed: " + + 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 + + Dim chance As Integer = 101 + Private Sub tmrstoryline_Tick(sender As Object, e As EventArgs) Handles tmrstoryline.Tick + ' Random chance of showing getshiftnet storyline + If gameTimer.Enabled = False Then ' Can't show if in middle of game + chance = chance - 1 + If chance < 25 Then + chance = 25 + End If + Dim i As Integer = Math.Ceiling(Rnd() * chance) + lblstorylinechancedebug.Text = i + If i = 1 Then + Terminal.Show() + Terminal.BringToFront() + Terminal.storyline = "getshiftnet" + Terminal.tmrstorylineupdate.Start() + tmrstoryline.Stop() + End If + End If + End Sub + + Private Sub me_closing() Handles Me.FormClosing + tmrstoryline.Stop() + End Sub +End Class \ No newline at end of file -- cgit v1.2.3