[VB.net] problème défilement d'image

Modérateur : Michel Quercia

Répondre
Benj95
Messages : 5
Enregistré le : lun. mars 04, 2013 10:20 pm
Classe : PCSI

[VB.net] problème défilement d'image

Message par Benj95 » mar. déc. 23, 2014 9:48 pm

Bonjour à tous !

J'ai un petit problème concernant un jeu que j'essaye de créer sur VB.net

Voilà le principe: un "train" constitué de plusieurs billes de différentes couleurs défile et le but est d'éliminer toutes les billes grâce à un canon qui tire des billes, de couleur aléatoire, sur le train. Si le joueur place 3 billes de même couleur, elles s'éliminent. Pour simplifier, le circuit que suivent les billes est un circuit rectangulaire qui "s'enroule" petit à petit vers le centre de mon écran.

Mon problème est le suivant: j'arrive à créer mon "train" de billes, avec des couleurs choisies aléatoirement, avec des Picturebox mais dès que je veux le mettre en mouvement, je n'ai plus qu'une seule bille qui défile, les autres ne sont pas là.

De plus, j'arrive à faire parcourir ma Picturebox sur la largeur de l'écran, puis de la faire descendre (donc j'arrive à gérer le 1er virage) mais ensuite quand j'essaye de faire revenir ma bille sur la largeur inférieur de mon écran, la Picturebox bugg et ne répond pas.

Voilà mon bout de code, je suis un débutant en VB.net :/

Merci beaucoup !


Code : Tout sélectionner

Public Class Form1
    Public Pos_Bille, Alt_Bille As Integer
    Public BillePicture As PictureBox = New PictureBox()


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'dimensionnement de l'écran
        Me.Size = New System.Drawing.Size(1366, 650)

        Dim hasard As New Random()
        Dim T() As String

        'Arret du timer avant le début
        Timer1.Stop()

        ' Nombre de billes sur le plateau
        For i As Integer = 0 To 10
            'Déclaration de la variable gérant le hasard des couleurs
            Dim j As Integer
            j = hasard.Next(1, 5)
            'redimensionnement du tableau contenant le choix de billes
            ReDim T(4)
            ' Correspondance tableau-> billes
            T(1) = "Bleu"
            T(2) = "Rouge"
            T(3) = "Verte"
            T(4) = "Orange"
            ' Dimensionnement des pictures box = billes
            'Dim BillePicture As PictureBox = New PictureBox()
            ' Création des images
            BillePicture.Image = New Bitmap(T(j) & ".bmp")
            ' Positionnement
            BillePicture.Height = 80
            BillePicture.Width = 80
            ' Reproduction de la 1ere bille 10 fois
            BillePicture.Left = i * BillePicture.Width
            Me.Controls.Add(BillePicture)


        Next i

        'déplacement de la bille hors du cadre
        BillePicture.Location = New Point(-1 * BillePicture.Size.Width, BillePicture.Location.Y)
        'nouvelle position de la bille
        Pos_Bille = BillePicture.Location.X

    End Sub

    Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

        ' Incrément des positions horizontales ou verticales
        Dim Inc As Integer = 2
        'Condition d'avancement avant le virage
        If Pos_Bille < 1266 Then
            ' Incrémentation de la position de la bille
            Pos_Bille = Pos_Bille + Inc
            ' Déplacement de l'image
            BillePicture.Location = New Point(Pos_Bille, Alt_Bille)
            'Virage de la bille
        Else
            Alt_Bille = Alt_Bille + Inc
            'Déplacement de l'image
            BillePicture.Location = New Point(Pos_Bille, Alt_Bille)

            'condition sur le virage en bas a gauche
            If Alt_Bille < 500 Then
                'incrémentation descente
                Alt_Bille = Alt_Bille + Inc
                'déplacement de la bille
                BillePicture.Location = New Point(Pos_Bille, Alt_Bille)
                'virage de la bille
            Else
                Pos_Bille = Pos_Bille - Inc
                'déplacement de la bille
                BillePicture.Location = New Point(Pos_Bille, Alt_Bille)
            End If
        End If
    End Sub

    Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonjouer.Click

        ' Lancement du Timer1 provoquant le démarrage de l'animation
        Timer1.Start()
        ' Masquage du bouttonjouer évitant un possible relancement de l'animation
        Buttonjouer.Visible = False
    End Sub

End Class

SanctoLudovicien
Messages : 101
Enregistré le : lun. juil. 14, 2014 4:31 pm
Classe : PSI

Re: [VB.net] problème défilement d'image

Message par SanctoLudovicien » mer. déc. 24, 2014 2:06 am

Salut Bro ,

C'est moi le papa du Vb.net ;)

J'ai rencontré un problème similaire en codant le jeu YAHTZEE , seul un dé était animé . Au final , pour initialiser les images, les commander etc j'y suis allé à la méthode bourrine c'est à dire que je n'ai pas nommé ni chercher mes images en fonction d'une variable i allant de 1 à 10 par exemple. J'ai l'impression que ça gène Vb net ...

En gros ça m'a donné ça :

Dim face1, face2 .... as Image
face1 = Image.FromFile("......")
2014-? Arts et Métiers ParisTech
2012-2014 MPSI - PSI , St Louis

Benj95
Messages : 5
Enregistré le : lun. mars 04, 2013 10:20 pm
Classe : PCSI

Re: [VB.net] problème défilement d'image

Message par Benj95 » mer. déc. 24, 2014 2:10 pm

Z'mers SanctoLudovicien ! ;)

Du coup du fais tes 10 images une à une ?
Je vais essayer comme ça, comme je devais avoir un train de billes avec des couleurs aléatoires ça va être chaud mais je vais essayer ça !

Quel centre des Arts ? ;)

SanctoLudovicien
Messages : 101
Enregistré le : lun. juil. 14, 2014 4:31 pm
Classe : PSI

Re: [VB.net] problème défilement d'image

Message par SanctoLudovicien » mer. déc. 24, 2014 2:20 pm

Oui, après j'ai du mal à comprendre la logique de cette manipulation derrière car nulle part il est écrit que Vb net rencontre des difficultés lorsque tu déclares 10 variables selon une variable i muette
Enfin, en TD on a toujours déclaré les variables une à une aussi ...

Châlons évidemment! Tu as des questions sur les Arts ? Tu souhaites y rentrer l'année prochaine? ;)
2014-? Arts et Métiers ParisTech
2012-2014 MPSI - PSI , St Louis

Benj95
Messages : 5
Enregistré le : lun. mars 04, 2013 10:20 pm
Classe : PCSI

Re: [VB.net] problème défilement d'image

Message par Benj95 » mer. déc. 24, 2014 2:31 pm

Ouais et puis c'est bien plus simple de le faire comme ça que une par une, ça laisse un coté aléatoire au choix des billes. Enfin c'est pas grave je vais figer ça ;)
Du coup après tu reprends la même syntaxe ?
Parce que moi j'ai défini mes billes comme des Picturebox, du coup pour les contrôler c'est différent du contrôle en tant qu'image nan?

Ah ce Tabagnon de Chalons sur Marne Marne !
Euh peut-être oui, ça me ferait vraiment plaisir ! On m'a dit que la fam's 32-68 était la plus krapinée du Tabagnon ! :)
Ce serait cool d'en faire partie !

Répondre

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités