[Hollywood] BustOut casse pas des brisques
7 sujets de 1 à 7 (sur un total de 7)
-
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
Bonjour,
Bas alors, vous avez pas essayer se code?
Il marche pas mon Casse brique?
Respect
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
@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
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
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
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