Probleme

Signaler
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015
-
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015
-
salut a tous, tout d'abord je me présente : Benjamin, j'ai 17 ans et je commence vb depuis 2 semaines
Mon probleme : j'essaye de faire un casse-brique et c'est lui qui me les casse... alors voila ma balle rebondit sur les murs haut,droit et gauche, mon casse-brique se déplace bien. Mais voila, il couvre toute la largeur du programme donc la balle ne peut sortir du "terrain" donc impossiblité de perdre..
Public Class Form1
    Dim moveright As Boolean
    Dim moveup As Boolean

    
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'mouvement balle
        If moveright = True Then
            balle.Left += 5
        Else
            balle.Left -= 5
        End If
        If moveup = True Then
            balle.Top += 5
        Else
            balle.Top -= 5
        End If

        'colisions
        If balle.Left <= Me.ClientRectangle.Left Then
            moveright = True
        End If
        If balle.Right >= Me.ClientRectangle.Right Then
            moveright = False
        End If

        If balle.Top <= Me.ClientRectangle.Top Then
            moveup = True
        End If
        'probleme impossiblité de perde
        If balle.Bottom >= mur.Top Then
            moveup = False
        End If
        'deplacement mur sur X grace a la souris
        mur.Left = MousePosition.X

    End Sub


End Class

merci de m'aider !
desolé pour le theme mais je ne savais pas quoi mettre

9 réponses

Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
Salut
déja casse brique casse tete

il couvre toute la largeur du programme


ah quelle est la largeur de ton programme ?
tu veux de la fenetre ou de tout l'écran
comment as tu définit les dimensions de
ton terrain

impossiblité de perdre..

tant mieux
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015

Salut et merci de m'avoir répondu
mon programme fait 613 de large. Et 742 de hauteur.
j'ai essayé une picturebox, un label, une textbox,une progressbar et un bouton en guise de casse-brique mais une ligne imaginaire couvre la largeur du programme, ou est positionné mon casse en Y
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
mon programme fait 613 de large. Et 742 de hauteur.


Nomme les choses comme il faut
un programme n'a pas d'hauteur ou de largeur
la fenetre,la form a une largeur hauteur
comment ta form est defini ?
windowstate ?
et aussi le "terrain" est directement sur la form
ou dans un control container comme panel picture
box
envoie ton code
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015

Public Class Form1
    Dim moveright As Boolean
    Dim moveup As Boolean
   

    
    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
        'mouvement balle
        If moveright = True Then
            balle.Left += 5
        Else
            balle.Left -= 5
        End If
        If moveup = True Then
            balle.Top += 5
        Else
            balle.Top -= 5
        End If

        'colisions
        If balle.Left <= Me.ClientRectangle.Left Then
            moveright = True
        End If
        If balle.Right >= Me.ClientRectangle.Right Then
            moveright = False
        End If

        If balle.Top <= Me.ClientRectangle.Top Then
            moveup = True
        End If

        'probleme impossiblité de perde
        If balle.Bottom >= mur.Top Then
            moveup = False

        End If
        'deplacement mur sur X grace a la souris
        mur.Left = MousePosition.X



    End Sub


End Class
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
c'est tout le code
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
c'est quoi ball
c'est quoi mur
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015

oui, c'est tout le code car j'ai commencé par la balle:ovalshape et mur:picturebox et je ferais les briques apres
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
53
'probleme impossiblité de perde
 If balle.Bottom >= mur.Top Then
            moveup = False

        End If


que veux dire
attention les valeurs de y croissent vers le bas
ta balle est inclu dans le mur ou à ta form
c'est une question de point relatif
ex tu as le point(0,0) de la form en haut à gauche
et le point(0,0) du mur qui est en haut à gauche
dans le mur
Messages postés
8
Date d'inscription
mercredi 2 novembre 2011
Statut
Membre
Dernière intervention
29 juillet 2015

merci a toi mais j'ai resolu en utilisant
if balle.bounds.intersectwith(mur.bounds) then
moveup = true
end if