Skip to main content

  | मौसम…

411 समाचार
Public archive edition · Attributed source reporting with original dates · AI drafts are excluded

411 REFERENCE · Wikibooks

A-level Computing 2009/AQA/The Computing Practical Project/Advanced VB.NET

Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.

All the programming you have done so far has been with the command line. This is great if all you want is text on a screen, but you probably want to display some graphics. There are several places you can get started: Here we are going to look how we can very quickly display graphics in VB.NET and make some simple games. To display graphics we are going to use the GDI+ library of tools. DirectX is much more powerful, but for our needs GDI+ is a simple way to get started. GDI+ allows you to draw both vector and bitmap graphics to the screen. There are a couple of functions that you need to be familiar with: frmGame_Load This code runs when the form is first loaded frmGame_KeyDown This code runs on the event of clicking a key on your keyboard tmrBall_Tick You need to have added a timer to your project and named it tmrBall. This code runs on each tick of the timer. Paint This code draws the items on to the screen Public Class frmGame Dim x1, y1, w1, h1 As Integer Dim x2, y2, w2, h2 As Integer Dim bx, by, bw, bh, bdirx, bdiry As Integer 'As soon as the game starts the paddles are set up and the ball started Private Sub frmGame_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load x1 = 5 y1 = Me.Height / 2 w1 = 5 h1 = 20 x2 = Me.Width - 15 y2 = Me.Height / 2 w2 = 5 h2 = 20 bx = Me.Width / 2 by = Me.Height / 2 bw = 10 bh = 10 bdirx = 2 bdiry = -2 End Sub 'On the event of pressing a key, this code finds which key has been pressed and moves the paddles Private Sub frmGame_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown If e.KeyCode = Keys.Up Then If y2 - 3 > 12 Then y2 = y2 - 3 End If End If If e.KeyCode = Keys.Down Then If y2 + 3 < Me.Height - 40 Then y2 = y2 + 3 End If End If Invalidate() End Sub 'On each tick of the timer, the ball moves around the screen Private Sub tmrBall_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrBall.Tick bx = bx + bdirx by = by + bdiry If by + bdiry < 12 Then bdiry = bdiry * -1 End If If by + bdiry > Me.Height - 40 Then bdiry = bdiry * -1 End If 'collides with paddle 1 If bx < x1 And by > y1 And by < y1 + h1 Then bdirx = bdirx * -1 End If If bx > x2 And by > y2 And by < y2 + h2 Then bdirx = bdirx * -1 End If Invalidate() End Sub 'This code runs each time the invalidate() procedure is called Private Sub frmGame_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint Dim pallete As Drawing.Graphics = Me.CreateGraphics Dim brush_black As New SolidBrush(Color.Black) pallete.FillRectangle(brush_black, New Rectangle(bx, by, bw, bh)) pallete.FillRectangle(brush_black, New Rectangle(x1, y1, w1, h1)) pallete.FillRectangle(brush_black, New Rectangle(x2, y2, w2, h2)) pallete.FillRectangle(Brushes.DarkGreen, New Rectangle(2, 2, Me.Width - 2, 10)) pallete.FillRectangle(Brushes.DarkGreen, New Rectangle(2, Me.Height - 40, Me.Width - 2, 10)) End Sub End Class