Passer dans un autre état - Lanceur de jeu - Visual Basic 2010
Fermé
guillian77
Messages postés332Date d'inscriptionjeudi 2 juillet 2009StatutMembreDernière intervention10 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:
Passer dans un autre état - Lanceur de jeu - Visual Basic 2010