Réinitialiser une application vb

cs_med76 Messages postés 9 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 octobre 2008 - 10 juin 2008 à 09:43
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 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)

Cordialement,

Med76

4 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
10 juin 2008 à 10:44
Salut,

Sans savoir de quelle maniere tu initialises ton jeu la premiere fois, cela va être difficile.

@+: Ju£i€n
Pensez: Réponse acceptée
0
cs_med76 Messages postés 9 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 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

    End Sub
End Class

Med76
0
cs_med76 Messages postés 9 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 21 octobre 2008
10 juin 2008 à 11:10
Désolé, j'ai pas trouvé comment activer la coloration syntaxique sur ce forum ...

Med76
0
gillardg Messages postés 3275 Date d'inscription jeudi 3 avril 2008 Statut Membre Dernière intervention 14 septembre 2014 2
10 juin 2008 à 14:51
simple Dans une message box tu demandes rejouer??


si oui boolean rejouer =true



Private



Sub
Form1_FormClosing(

ByVal
sender

As



Object
,

ByVal
e

As
System.Windows.Forms.FormClosingEventArgs)

Handles



Me
.FormClosing




If
rejouer =

True



Then








Dim
Game

As



New
Form1Game.Show()


Me
.Dispose()


End



If






End



Sub
0
Rejoignez-nous