Probleme

benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015 - 3 nov. 2011 à 01:03
benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015 - 4 nov. 2011 à 18:33
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

cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
3 nov. 2011 à 09:30
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
0
benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015
3 nov. 2011 à 09:36
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
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
3 nov. 2011 à 10:08
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
0
benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015
3 nov. 2011 à 10:23
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
0

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

Posez votre question
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
3 nov. 2011 à 11:52
c'est tout le code
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
3 nov. 2011 à 11:56
c'est quoi ball
c'est quoi mur
0
benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015
3 nov. 2011 à 13:37
oui, c'est tout le code car j'ai commencé par la balle:ovalshape et mur:picturebox et je ferais les briques apres
0
cs_ShayW Messages postés 3258 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 55
3 nov. 2011 à 21:13
'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
0
benji84710 Messages postés 8 Date d'inscription mercredi 2 novembre 2011 Statut Membre Dernière intervention 29 juillet 2015
4 nov. 2011 à 18:33
merci a toi mais j'ai resolu en utilisant
if balle.bounds.intersectwith(mur.bounds) then
moveup = true
end if
0