Aller Retour d'un label ou autre.

Résolu
Utilisateur anonyme - 11 avril 2012 à 13:56
 Utilisateur anonyme - 13 avril 2012 à 15:49
Bonjour,
je vous contacte en espérant que vous trouverez une réponse à mon problème (ce dont je ne doute pas ^^).

Mon problème :
Lors de la conception de mon jeu, j'aimerai qu'un label (par exemple) puisse se déplacer sur une sorte de segment, de gauche à droite et de droite à gauche ( ou de haut en bas puis de bas en haut).

J'arrive déjà à déplacer des labels : label1.left += 1 ou label1.left -= 1
Mais je n'arrive pas à les faire revenir (j'ai beau chercher et essayer mais ça ne marche pas).

----------------------------------------------------------------------------------------
Cordialement,
Sorpia.

31 réponses

LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
11 avril 2012 à 23:56
Et nous on ne demande qu' à aider..
En plus tu as l' air sympa..

Eh ucfoutu !
j' espère que tes secrétaires ne te poursuivent pas jusqu' à tes rêves.
A moins que tu apprécies.
Quelques chose me dit que tu les préférait blondes.
ça expliquerait tout..

Et toi sorpia, tu devrais être déjà au lit..

Bonne détente et a+


[] Ce qui va sans dire. va mieux en le disant.
0
Utilisateur anonyme
12 avril 2012 à 06:42
Bonsoir,
Oups désoler si j'ai appuyer sur réponse accepter mais c'est en descendant la page avec mon iPod...

Sinon cmarcotte, je n'aimerai pas étendre un label, mais le déplacer. Sinon c'est sur j'aurai utiliser une progress bar (enfin je pense)
0
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
12 avril 2012 à 11:47
Salut

sur ta form place 2 command button

Public Class Form1
    Public Class letext
        Friend textlabel As Label
        '0 left 1 right 2 up 3 down
        Friend direction As Int32
    End Class
    Private listtext As New List(Of letext)
    Private lesmots As New List(Of String)
    Private vertext() As PointF
    Private direction As String
    Private Sub InitLestexts()
        Dim rand As New Random
        lesmots.Add("Bonjour")
        lesmots.Add("Au revoir")
        lesmots.Add("Salut")
        lesmots.Add("Bye Bye")
        Dim count As Int32
        count = 0
        For Each mot In lesmots
            Dim montext As New letext
            With montext
                montext.textlabel = New Label
                With .textlabel
                    Font = New Font("arial", 12, FontStyle.Bold)
                    .Text = mot
                    .BackColor = Color.Transparent
                    .Location = New Point(rand.Next(0, Me.Width \ 4 + 10), rand.Next(0, Me.Height \ 4 + 10))
                End With
                .direction = count
            End With
            count += 1
            If count = 4 Then
                count = 0
            End If
            Me.Controls.Add(montext.textlabel)
            listtext.Add(montext)
        Next
  End Sub
  Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        For iter = 0 To listtext.Count - 1
            Dim montext As New letext
            montext = listtext(iter)
            Select Case listtext(iter).direction
              Case 0 'left
               montext.textlabel.Location = New Point(listtext(iter).textlabel.Left - 10, listtext(iter).textlabel.Top)
                    If listtext(iter).textlabel.Left <= ClientRectangle.Left Then
                        montext.direction = 1
                    End If
                Case 1 'right

                    montext.textlabel.Location = New Point(listtext(iter).textlabel.Left + 10, listtext(iter).textlabel.Top)
                    If listtext(iter).textlabel.Right >= ClientRectangle.Right Then
                        montext.direction = 0
                    End If
                Case 2 'up

                    montext.textlabel.Location = New Point(listtext(iter).textlabel.Left, listtext(iter).textlabel.Top - 10)
                    If listtext(iter).textlabel.Top <= ClientRectangle.Top Then
                        montext.direction = 3
                    End If
                Case 3 'down

                    montext.textlabel.Location = New Point(listtext(iter).textlabel.Left, listtext(iter).textlabel.Top + 10)
                    If listtext(iter).textlabel.Bottom >= ClientRectangle.Bottom Then
                        montext.direction = 2
                    End If
            End Select
            listtext.Remove(listtext(iter))
            listtext.Insert(iter, montext)
        Next
        
    End Sub

    Private Sub Form2_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        InitLestexts()
        Button1.Text = "Bouger"
        Button2.Text = "Arreter"
        Timer1.Stop()

    End Sub

    Private Sub Button1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button1.MouseClick
        Timer1.Start()
        Timer1.Interval = 40
    End Sub

    Private Sub Button2_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Button2.MouseClick
        Timer1.Stop()
    End Sub
End Class
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
12 avril 2012 à 14:59
Bonjour ShayW,

C' est un débutant.. et n' a que 14 ans.
Alors ne le fait pas fuir




[] Ce qui va sans dire. va mieux en le disant.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
12 avril 2012 à 16:29
Ah oui zut
il peut faire des cauchemares
0
Utilisateur anonyme
12 avril 2012 à 17:27
Sinon cmarcotte, je n'aimerai pas étendre un label, mais le déplacer. Sinon c'est sur j'aurai utiliser une progress bar (enfin je pense)

Je ne vois pas le lien entre étendre un label et une barre de progression. Sauf que la barre de progression a des propriétés Max et Min qui sont bien pratiques. Ce que tu veux faire, c'est utiliser un tournevis pour planter des clous; mais cela, ils te l'ont déjà dit.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
12 avril 2012 à 17:44
Des plans sur la comète, hein ...
Relisons donc :
1)
j'aimerai qu'un label (par exemple) puisse se déplacer sur une sorte de segment, de gauche à droite et de droite à gauche ( ou de haut en bas puis de bas en haut).

et un slider (je crois une trackbar en VB.Net) serait la "chose"
Mais :
2)
Le label doit se déplacer sur un segment (imaginaire) verticale ou horizontal (le sens n'a pas d'importance)

fait penser à toute autre chose : c'est un jeu, qu'il fait. Il pourrait ne vouloir que déplacer un objet de son jeu. Dans cette hypothèse-là, il est vraisemblable qu'il n'en est qu'aux balbutiements et cherchera ensuite à faire "déplacer" dans d'autres directions également (il sera alors avisé de s'inspirer d'un petit bout de code que j'ai déposé sous VB6)


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'e
0
Utilisateur anonyme
12 avril 2012 à 18:01
Bonjour,

En tout cas le code de LIBRE_MAX marche, je vous remercie à tous de l'aide que vous m'avez apportez et surtout de votre patience .

LIBRE_MAX tu avais raison, en déclarant "Sens" autre part que dans la sub ou mon code est écrit ça marche. Peux tu m'expliquer pourquoi s'il te plaît ? (si ça ne te dérange pas)


-----------------------------------------------------------------------------
Cordialement,
Sorpia.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
12 avril 2012 à 23:51
Bonsoir Sorpia,

Voilà ce que j' aime chez les gens qui veulent apprendre,
dans la mesure ou ils ne se contentent pas d' avoir un code qui marche, ils veulent aussi savoir pourquoi ça marche.
BRAVO !

Explication :

Si tu déclares la variable dans la sub, à chaque passage elle se réinitialise à False.Même si au passage précédent quand le label arrive à 41 et qu' elle passe à True.
Pour conserver sa valeur précédente, elle doit être soit :
-déclarée en dehors de la Sub.
-déclarée à l' intérieur mais en tant que static.

Dans les deux cas elle garde sa valeur de sortie.

Bonne continuation.



[] Ce qui va sans dire. va mieux en le disant.
0
LIBRE_MAX Messages postés 1402 Date d'inscription mardi 1 mai 2007 Statut Membre Dernière intervention 7 octobre 2012 6
13 avril 2012 à 00:08
Ah! j'ai oublié..
Pour le deplacement vertical, tu gardes le même code.Tu changes seulement le Left par le Top.
Mais ça tu l' as déjà compris..je pense.



[] Ce qui va sans dire. va mieux en le disant.
0
Utilisateur anonyme
13 avril 2012 à 15:49
Bonjour,
Merci déjà de m'avoir expliqué, je pensais aussi à ça mais je n'était pas sur.


Sinon oui j'avais compris pour le déplacement vertical .

-----------------------------------------------------------------------------
Cordialement,
Sorpia.
0
Rejoignez-nous