Page 2 sur 2

Re: Probleme de code avec mon mur de brique

Publié : lun. 10/juil./2017 19:04
par Tonio
Un grand merci à vous 2

si je fait ça :

Code : Tout sélectionner

\briqueX = (gLigne * 50) + 200
je decale tout le mur sur x j'ai centrer mon mur est ce la bonne methode?

Re: Probleme de code avec mon mur de brique

Publié : lun. 10/juil./2017 19:15
par microdevweb
Voici un exemple pour centré ton mur

Code : Tout sélectionner

Procedure MakeBrique()
  Protected gLigne,gColonne,w=40,h=15,X,Y
  For gLigne=0 To 5
    ; Calcul de x pour que les briques soit centrées
    ; le centre de l"écran moins 5 briques (puisqu'il y en 10)
    X=(800/2)-(w * 5)
    For gColonne= 0 To 9
      With mur(gLigne,gColonne)
        \sprite = CreateSprite(#PB_Any,w,h)
        \briqueX =X
        \briqueY =Y
        StartDrawing(SpriteOutput(\sprite))
        Box(0, 0, w,h, RGB(0, Random(255,0), Random(255,0)))
        StopDrawing()
        X+W
      EndWith
    Next
    Y+H
  Next
EndProcedure

Re: Probleme de code avec mon mur de brique

Publié : lun. 10/juil./2017 21:01
par Tonio
Merci beaucoup pour ton aide

Re: Probleme de code avec mon mur de brique

Publié : lun. 10/juil./2017 21:08
par TazNormand
Pour centrer des éléments sur une largeur connue, il faut appliquer la formule : (largeur totale - largeur de l'élément à centrer) / 2

Ta largeur totale est celle que tu as définie pour le openScreen (800 dans ton premier code), si la largeur d'une ligne de brique est de (50 + 1) * 10, donc 510, ton premier sprite de brique est à positionner en 145. Si jamais le résultat de la formule est un décimal, on arrondit à l'entier inférieur.

(50 + 1) correspond à la largeur d'une brique plus le pixel de décalage pour éviter le chevauchement, et 10 le nombre de briques par ligne. Donc tu peux remplacer ton 200 par 145, mais uniquement si tu as défini un écran de 800 pixels de large.

Re: Probleme de code avec mon mur de brique

Publié : lun. 10/juil./2017 21:08
par Tonio
Merci taz pour tes conseils