Passer dans un autre état - Lanceur de jeu - Visual Basic 2010

Fermé
guillian77 Messages postés 332 Date d'inscription jeudi 2 juillet 2009 Statut Membre Dernière intervention 10 mai 2014 - Modifié par guillian77 le 24/09/2013 à 19:13
Bonjour,

Je suis en cours de création d'un projet concernant un jeu vidéo.
Celui-ci à besoin que nos joueurs puissent facilement mettre à jours leur Client de jeu.

Pour cela j'ai créer un un script en Visual Basic qui permet de vérifier si le client de jeu du joueur contient bien tous les fichiers nécessaires. Dans la cas ou il manque un fichier le lanceur doit télécharger le fichier manquant et continuer a vérifier si les autres fichiers manques. A la fin si tous les fichiers sont présent, il communique au joueur que leur jeu est à jour.

Voici le code que j'ai déjà fait, je ne sais pas comment me rendre dans un autre "état" ( à l'image de la programmation par graphe d'état en C).


Imports System.Net
Imports System
Imports System.IO
Imports Rebex.IO.Compression

Public Class Launcher
Private Sub Launcher_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' TOUT CE QUI S'EXECUTE AU DEMARRAGE DE L'APPLICATION

' On vérifie si le jeu est à jour #ETAT 0
If File.Exists("Data/patch-5.MPQ") Then
' Si le patch existe déjà
' Se rendre dans l'état 1
Else
ButtonPlayStart.Enabled = False
Label1.Text = "Mise à jour: téléchargement des fichiers de bases"
Label2.Text = "Mise à jour: " & progressBar1.Value & "%" & " terminé"
Dim client0 As WebClient = New WebClient
AddHandler client0.DownloadProgressChanged, AddressOf client_ProgressChanged1
AddHandler client0.DownloadFileCompleted, AddressOf client_DownloadCompleted1 ' Se rendre dans létat 1
client0.DownloadFileAsync(New Uri("http://launcher.icefield-serveur.com/launcher/patch-5.MPQ"), "Data\patch-5.MPQ")
End If
End Sub

'QUAND LE TELECHARGEMENT DU PATCH-5.MPQ EST TERMINER #ETAT 1
Private Sub client_DownloadCompleted1(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
If File.Exists("Data/patch-6.MPQ") Then
' Si le patch existe déjà
' Se rendre dans l'état 2
Else
ButtonPlayStart.Enabled = False
Label1.Text = "Mise à jour: téléchargement des mises à jours"
Label2.Text = "Mise à jour: " & progressBar1.Value & "%" & " terminé"
Dim client1 As WebClient = New WebClient
AddHandler client1.DownloadProgressChanged, AddressOf client_ProgressChanged1
AddHandler client1.DownloadFileCompleted, AddressOf client_DownloadCompleted2 'Se rendre dans létat 2
client1.DownloadFileAsync(New Uri("http://launcher.icefield-serveur.com/launcher/patch-6.MPQ"), "Data\patch-6.MPQ")
End If
End Sub

'QUAND LE TELECHARGEMENT DE PATCH-6.MPQ EST TERMINE #ETAT 2
Private Sub client_DownloadCompleted2(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
If File.Exists("Wow.exe") Then
' Si le client Wow existe déjà
' Se rendre dans l'état 3
Else
ButtonPlayStart.Enabled = False
Label1.Text = "Mise à jour: téléchargement du client de jeu"
Label2.Text = "Mise à jour: " & progressBar1.Value & "%" & " terminé"
Dim client2 As WebClient = New WebClient
AddHandler client2.DownloadProgressChanged, AddressOf client_ProgressChanged1
AddHandler client2.DownloadFileCompleted, AddressOf client_DownloadCompleted3 'Se rendre dans l'état 3
client2.DownloadFileAsync(New Uri("http://launcher.icefield-serveur.com/launcher/Wow.exe"), "Wow.exe")
End If
End Sub

'QUAND LE TELECHARGEMENT DE WOW.EXE EST TERMINE #ETAT 3
Private Sub client_DownloadCompleted3(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
MsgBox("Votre jeu est totalement à jour")
Label1.Text = "Votre jeu est à jour"
ButtonPlayStart.Enabled = True
End Sub

'BARRE D'AVANCEE
Private Sub client_ProgressChanged1(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
Dim bytesIn As Double = Double.Parse(e.BytesReceived.ToString())
Dim totalBytes As Double = Double.Parse(e.TotalBytesToReceive.ToString())
Dim percentage As Double = bytesIn / totalBytes * 100
End Sub

End Class

Si quelqu'un sais comment ajouté une encre, un drapeau, ou quelque chose qui peut servir de points d'arriver dans le code afin de dire:

- Se rendre a tel endroit du code.

Merci d'avance !
A voir également: