[Hollywood] BustOut casse pas des brisques

7 sujets de 1 à 7 (sur un total de 7)

  • Anonyme

      #8074

      Bonjour,

      Voila un petit code, et oui, c’est un cassebrique, une ligne à casser avec une balle+1raquette. Remarquer comme j’utilise toujours la méthode des tableaux, d’ailleur, j’utilise le tableau pour les test de collision, d’ou l’importance d’avoir les coordonnées des brique à casser dans la base de données LIGNE.

      Allez hop, voici le code :

      @VERSION 4,0

      @DISPLAY{WIDTH=320,HEIGHT=256}

      /*COUCOU - Voici un mini CasseBrique nommé BUSTOUT, VIVE Amstrad*/

      /*Création des Brush*/

      CREATEBRUSH(1,8,8,#GREEN)

      CREATEBRUSH(2,4,4,#RED)

      CREATEBRUSH(3,40,8,#BLUE)

      CREATEBRUSH(4,2,2,#WHITE)

      CREATEBRUSH(5,40,2,#WHITE)

      CREATEBRUSH(6,1,8,#WHITE)

      CREATEBRUSH(7,8,1,#WHITE)

      MIXBRUSH(1,6,128)

      MIXBRUSH(1,7,128)

      MIXBRUSH(2,4,128)

      MIXBRUSH(3,5,128)

      /*Toute les Variables*/

      LOCAL XBarre=0

      LOCAL XBall=0

      LOCAL YBall=128

      LOCAL Vie=3

      LOCAL Score=0

      LOCAL XSens=1/*Sens X de la ball*/

      LOCAL YSens=-1 /*Sens Y de la ball*/

      LOCAL Renvoie=FALSE /*Quand on touche le plafond*/

      LOCAL Casse=FALSE /*Quand on Casse la Brique*/

      /*Attention, Tableau, le premier chiffre est la coordonnée X des briques*/

      /*Le Deuxième Chiffre ET le Numéro de Brush, 1 étant la Brush Brique*/

      LIGNE={}

      LIGNE={0,1,8,1,16,1,24,1,32,1,40,1,48,1,56,1,64,1,72,1,80,1,88,1,96,1,104,1,112,1,

      120,1,128,1,136,1,144,1,152,1,160,1,168,1,176,1,184,1,192,1,200,1,208,1,216,1,224,

      1,232,1,240,1,248,1,256,1,264,1,272,1,280,1,288,1,296,1,304,1,312,1,320,1}

      /*Fonction BALL, affiche la ball et la déplace*/

      FUNCTION Ball()

      XBall=XBall+XSens

      YBall=Yball+YSens

      IF XBall=312 THEN XSens=-1 /*Si on touche l'extrème gauche alors la ball change de sens*/

      IF XBall=0 THEN XSens=1 /*Si on touche l'extrème droite alors la ball change de sens*/

      IF YBall=10 THEN YSens=1 /*Si on touche le plafond alors la ball redescend*/

      /* Cette ligne du dessous test si les Brush ball et raquette se touche, si elle se touche, alors Renvoie=TRUE*/

      Renvoie=COLLISION(#BRUSH,3,XBarre,248,2,XBall,YBall)

      /*Oulala sa devient compliqué la*/

      /*Je test toutes les adresse IMPAIRE de mon tableau LIGNE et si la valeur juste avant est différent de 1

      alors l'adresse testé vaudra -50 (sortir la brush de l'écran)*/

      FOR x=1 TO 81 STEP 2

      IF ligne[x]<>1 THEN ligne[x-1]=-50

      /*Encore un test de collision, mais entre la ball et les briques*/

      Casse=COLLISION(#BRUSH,2,XBall,yball,1,Ligne[x-1],20)

      /*Si Casse=True alors je mets grace au test du dessous la valeur 4 à l'adresse de la brush*/

      IF Casse=TRUE

      Ysens=1

      Ligne[x]=4

      Score=Score+10

      ENDIF

      NEXT

      /*Rappelez vous que plus haut je test la valeur du N° de brush et si elle est différente de 1 alors je mets -50

      pour sortir la brush de l'écran*/

      IF Renvoie=TRUE THEN Ysens=-1

      /*Si je touche le sol, je perd 1 vie*/

      IF YBall=256

      Ysens=-1

      Vie=Vie-1

      ENDIF

      DISPLAYBRUSH(2,XBall,Yball)

      ENDFUNCTION

      FUNCTION Ecran()

      /*J'affiche les briques selon les coordonnées X du tableau Ligne*/

      FOR x=1 TO 81 STEP 2

      DISPLAYBRUSH(Ligne[x],Ligne[x-1],20)

      NEXT

      /*TEXTOUT, c'est une commande bien plus costaud que Print, pas de colonne ou de ligne,

      mets des coordonnées en pixel*/

      TEXTOUT(0,0,"Score : ")

      TEXTOUT(80,0,Score)

      TEXTOUT(260,0,"Vie : ")

      TEXTOUT(310,0,Vie)

      ENDFUNCTION

      FUNCTION Player()

      /*Flip d'écran pour le doublebuffer*/

      FLIP

      /*Efface ECRAN*/

      CLS

      Ball()

      Ecran()

      /*Test Clavier*/

      IF ISKEYDOWN("LEFT")=TRUE THEN Gauche()

      IF ISKEYDOWN("RIGHT")=TRUE THEN Droite()

      /*Affiche La Barre*/

      DISPLAYBRUSH(3,XBarre,250)

      ENDFUNCTION

      FUNCTION Gauche()

      XBarre=XBarre-4

      IF XBarre<0 THEN XBarre=0

      ENDFUNCTION

      FUNCTION Droite()

      XBarre=XBarre+4

      IF XBarre>280 THEN XBarre=280

      ENDFUNCTION

      SETINTERVAL (1,Player,20)

      BEGINDOUBLEBUFFER

      REPEAT

      WAITEVENT

      UNTIL Vie=0

      Bonne amusement, modifier le et faite un super casse brique avec niveau. Vous avez remarquer que j’utilise toujours des brushs créé par hollywood, sa évite de transféré des fichier image.

      Respect

      Anonyme

        #124741

        Bonjour,

        Bas alors, vous avez pas essayer se code?

        Il marche pas mon Casse brique?

        Respect

        henes

          #124742

          Peu de gens doivent avoir Hollywood ici. Une bonne idée serait de mettre à disposition des executables pour toutes les architectures supportées. Sinon au moins 68k (et tant pis pour les deux [d]utilisateurs[/d] testeurs AROS alors…).

          Anonyme

            #124743

            Bonjour,

            Dans le principe, se que j’ai envie c’est d’avoir un échange entre développeur Hollywood, et pourquoi pas grace au visu du code entrainer des développeur novice sur l’utilisation d’hollywood qui reste un language très attractif et surtout à porter de tous.

            C’est pour cela qu’un forum de développement Hollywood serai pas si mal, sa ferai un peu de pub. Et plus il y aura de développeur et plus la maitrise de se languagenous permettra entre nous de développer des outils ou des logiciels ludiques de bon niveau.

            En plus, l’interet d’hollywood, c’est que l’on peut développer pour AOS mais aussi pour MorphOS sans changer une seul ligne de code, et sa c’est top, développer sous hollywood, c’est aussi supporter tous les OS disponible aux utilisateur d’Amiga

            Respect

            Tarzin

              #124744

              @Artblink,

              Merci pour le source, je testerai pendant mes congés (à partir de ce soir en fait!)

              Sinon, impressionnant ce qu’on peut faire en quelques lignes!

              Et je me permettrai de te poser des questions vu que tu avances à pas de géant! (je cherche en fait à lire un fichier .CSV, donc séparé par des virgules/point-virgules et à intégrer les données dans des tables)

              Mais j’ouvrirai un sujet à part pour cela

              Anonyme

                #124745

                tarzin a écrit :

                @Artblink,

                Merci pour le source, je testerai pendant mes congés (à partir de ce soir en fait!)

                Sinon, impressionnant ce qu’on peut faire en quelques lignes!

                Et je me permettrai de te poser des questions vu que tu avances à pas de géant! (je cherche en fait à lire un fichier .CSV, donc séparé par des virgules/point-virgules et à intégrer les données dans des tables)

                Mais j’ouvrirai un sujet à part pour cela

                Salut,

                Ok pas de problème, décrit bien se que tu veu faire car j’ai du mal à comprendre… parfois

                Respect

                Tarzin

                  #124746

                  1) Ayé, je viens de tester ton script, fonctionne très bien et c’est très clair à lire

                  2) Hollywood 4.5 est disponible depuis ce jour

                  http://www.airsoftsoftwair.de/en/prod_hollywood.html

                  (désolé JGG, j’ai la flemme d’une faire une news ce soir)

                  3) Pour ma question, je vais faire un sujet à part dès que je saurais poser clairement ma question :-D

                7 sujets de 1 à 7 (sur un total de 7)

                • Vous devez être connecté pour répondre à ce sujet.

                Forums AmigaOS, MorphOS et AROS Développement [Hollywood] BustOut casse pas des brisques

                Amiga Impact