cs_med76
Messages postés9Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention21 octobre 2008
-
10 juin 2008 à 09:43
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 2014
-
10 juin 2008 à 14:51
Bonjour,
J'ai réalisé un casse brique en VB .NET et il fonctionne bien.
Seulement, j'aimerais proposer une option "rejouer" au joueur lorsqu'il perd.
Y a -t-il une manière simple de recharger complètement le jeu?
(un peu comme si on recommençait tout à zéro)
cs_med76
Messages postés9Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention21 octobre 2008 10 juin 2008 à 11:07
Désolé, tu veux peut-être le code source?
Voilà :
Public Class Form1
Dim score As Integer = 0
Private Sub bougerBalle()
Dim newX As Integer = Balle.Location.X + VX
Dim newY As Integer = Balle.Location.Y + VY
Dim r As DialogResult
'Si newX est < à 0 alors changer VX en -VX
If (newX < 0) Then
VX = -VX
'Si newX est > 300 « idem »
ElseIf (newX > 300) Then
VX = -VX
'Si newY est < à 0 alors changer VY en -VY
ElseIf (newY < 0) Then
VY = -VY
'Si newY est > Me.Height alors « ON A PERDU »
ElseIf (newY > Me.Height) Then
Timer1.Enabled = Not Timer1.Enabled
ParamètresToolStripMenuItem.Enabled = Not Timer1.Enabled
'MsgBox("Vous Avez Perdu" & vbCrLf & "Votre score est de" & score & "/50")
r = MessageBox.Show("Vous Avez Perdu" & vbCrLf & "Votre score est de " & score & "/50" & vbCrLf & vbCrLf & "Voulez-vous rejouer?", "Casse Brique", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, MessageBoxOptions.RightAlign, True)
If r = Windows.Forms.DialogResult.Yes Then
score = 0
Label1.Text = "Score : 0/50"
Else
Me.Close()
End If
ElseIf (score >= 50) Then
Timer1.Enabled = Not Timer1.Enabled
ParamètresToolStripMenuItem.Enabled = Not Timer1.Enabled
MsgBox("Vous Avez Gagné!")
End If
Balle.Location = New Point(newX, newY)
End Sub
Private Sub collision()
'Pour tous les controles
For Each c As Control In Me.Controls
'Le contrôle c ne doit pas etre la balle ou le menu !
If (c IsNot Balle) And (c IsNot MenuStrip1) And (c IsNot Label1) Then
If (Balle.Bounds.IntersectsWith(New Rectangle(c.Location, c.Size))) Then
'Si intersection avec un truc qui n’est pas la raquette
If (c IsNot Raquette) And (c IsNot Label1) Then
'La balle est en collision avec une brique
score += 1
Me.Controls.Remove(c)
VY = -VY
Label1.Text = "Score : " & score & "/50"
Else
'La balle est en collision avec la raquette
VY = -VY
End If
End If
End If
Next
End Sub
Private Sub bougerRaquette(ByVal x As Integer)
Raquette.Left = x
End Sub
Private Raquette As New Button
Private Balle As New Button
Private VX As Integer = 4
Private VY As Integer = -4
Private largeurRaquette As Integer = 60
Private nbBriquesRestantes = 50
Private brique As New Button
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Timer1.Interval = 20
Timer1.Start()
Raquette.Enabled = False
Dim img As Image = Image.FromFile("C:\Documents and Settings\61763\My Documents\Visual Studio 2005\Projects\CasseBrique\CasseBrique\palette.gif")
Dim img2 As Image = Image.FromFile("C:\Documents and Settings\61763\My Documents\Visual Studio 2005\Projects\CasseBrique\CasseBrique\obj\Debug\palette2.gif")
Dim img3 As Image = Image.FromFile("C:\Documents and Settings\61763\My Documents\Visual Studio 2005\Projects\CasseBrique\CasseBrique\obj\Debug\palette3.gif")
Dim img4 As Image = Image.FromFile("C:\Documents and Settings\61763\My Documents\Visual Studio 2005\Projects\CasseBrique\CasseBrique\obj\Debug\palette4.gif")
For ligne As Integer = 0 To 4
For colone As Integer = 0 To 9
Dim brique As New Button
brique.Height = 15
brique.Width = 30
brique.Left = 7 + colone * 30
brique.Top = 50 + 15 * ligne
brique.Enabled = False
nbBriquesRestantes -= 1
If ((ligne Mod 2) <> 0) Then
If ((nbBriquesRestantes Mod 2) <> 0) Then
brique.BackgroundImage = img2
Else
brique.BackgroundImage = img
End If
Else
If ((nbBriquesRestantes Mod 2) <> 0) Then
brique.BackgroundImage = img
Else
brique.BackgroundImage = img2
End If
End If
Me.Controls.Add(brique)
Next
Next
Raquette.BackgroundImage = img3
Raquette.Left = 10
Raquette.Top = 320
Me.Controls.Add(Raquette)
Balle.BackColor = Color.Blue
Balle.Left = 140
Balle.Top = 150
Balle.Height = 10
Balle.Width = 10
Me.Controls.Add(Balle)
End Sub
Private Sub PetiteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PetiteToolStripMenuItem.Click
Raquette.Width = 40
End Sub
Private Sub MoyenneToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MoyenneToolStripMenuItem.Click
Raquette.Width = 60
End Sub
Private Sub GrandeToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GrandeToolStripMenuItem.Click
Raquette.Width = 100
End Sub
Private Sub Form1_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Dim x As Integer = e.X
If (x < 300 - largeurRaquette) And (x > 0) Then
bougerRaquette(x)
End If
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
bougerBalle()
collision()
End Sub
Private Sub RapideToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RapideToolStripMenuItem.Click
Timer1.Interval = 1
End Sub
Private Sub NormalToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NormalToolStripMenuItem.Click
Timer1.Interval = 20
End Sub
Private Sub LentToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LentToolStripMenuItem.Click
Timer1.Interval = 50
End Sub
Private Sub Form1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Click
Timer1.Enabled = Not Timer1.Enabled
ParamètresToolStripMenuItem.Enabled = Not Timer1.Enabled
If (Not Timer1.Enabled) Then
Me.Controls.Remove(Raquette)
Else
Me.Controls.Add(Raquette)
End If
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
End Sub
Private Sub MenuStrip1_ItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles MenuStrip1.ItemClicked