Avril 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | | | | | Calendrier |
|
| | Panorabriques à la mode des menus | |
| | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Panorabriques à la mode des menus Mer 15 Aoû 2012 - 23:03 | |
| J'aime bien les nouvelles présentations actuelles des jeux que vous faites. J'ai donc repris mon Panorabrique pour le mettre à la mode des menus. Ca donne ça: - Code:
-
' Panorabrique V2 par Jean-Charles (Aout 2012) ' ' Bon après quelques mois, je pense qu'il est bon de reprendre ses vieux programmes ' et de les perfectionner un peu ' ' Objectif de cette version: structurer et commenter mieux ' Enrichir et améliorer un peu le jeu
label labels : gosub labels gosub constantes gosub variables gosub donnees gosub initialisations gosub form0 gosub menu gosub GUI end
labels: label constantes, variables, donnees label form0, menu, GUI, initialisations label sortir,start, tick, restart, key label config, close_config, defaut, aide, close_aide label apropos, close_apropos, change_config, stopit label Lance_balle, Fin, Dessine_briques, Trace_brique return
constantes: dim version$ : version$ = "V02.00" dim date_cre$ : date_cre$ = "15 Août 2012" dim taille% : taille% = 25 : ' taille des cases dim speed% : speed% = 30 : ' milli-secondes entre chaque mouvement dim Nb_b_ligne : Nb_b_ligne = 7 : ' Nombre de lignes de briques dim hauteur_b, largeur_b : largeur_b=1.55 : hauteur_b=0.75 dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies dim M1% : M1% = 0 - 1 return
variables: dim no%, no1%, no2% : ' Numméro d'objets temporaires dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0 dim i%, j%, k%, n%, s$ : ' Déclaration de variables temporaires diverses dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés dim no_config_v%, no_config_speed% : ' Timer, numéro des fenêtres, ... dim no_stop%, no_play%, no_start% dim xpad : ' Position de la souris dim s, vies : ' Score et nombre de vies dim xball,zball : ' position de la balle dim dx,dz : ' direction de la balle dim vx,vz,v : ' vitesse de la balle dim largeur_r : ' Largeur de la raquette dim Nb_lignes : ' Nombre de lignes de briques dim Nb_briques_restantes : ' Compte combien il reste de briques à détruire pour finir le niveau dim Nb_vies : ' Définit le nombre de vie au démarrage dim Hauteur_cam : ' Définit la hauteur de la caméra dim Pause% : ' Bascule pour mettre le jeu en pause ou reprendre dim Niveau% : ' Niveau en cours dim t_c(Nb_couleur%,3) : ' Gère les couleurs par un tableau de couleurs avec 3 composantes return
donnees: data 0, 0, 0, 255,255,255, 155,155, 55, 180,180,80, 80, 80, 80, 80, 80,215 data 215, 80, 80, 80,215, 80, 155,133,155, 100,215,100, 215, 80,215, 215,215, 80 data 80,215,215, 100,100,215, 55,215,133, 133, 55,215, 215,133, 55, 55, 55,133 return
form0: ' Paramètrage de la fenêtre principale du jeu left 0,px% : top 0,py% : ' Position initale de la fenêtre 0 width 0, w% : height 0,450 caption 0,"PANORABRIQUE 3D" scene3d 1 : full_space 1 : color 1,170, 170, 255 : ' cree le monde 3D avec un fond bleu clair cam_x_position 0 : cam_y_position Hauteur_cam : cam_z_position 13 : ' positionne la camera point_x_position 0 : point_y_position 0 : point_z_position -0.5 : ' objectif dirigé vers le centre light_x_position -5 : light_y_position 15 : light_z_position -50 : ' positionne la lumiere on_key_down 0,key no% = no% + 1 return
menu: no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Fichier" no% = no% + 1 : sub_menu no% : parent no%,no2% : no_start% = no% caption no%,"Nouveau jeu" : on_click no%,start no% = no% + 1 : sub_menu no% : parent no%,no2% : no_stop% = no% caption no%,"Stop" : inactive no% : on_click no%,stopit no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"------------" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Sortir" : on_click no%,sortir no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Options" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Configuration" : on_click no%,config no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Défauts" : on_click no%,defaut no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Aide" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Mode d'emploi" : on_click no%,aide no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"A-propos" : on_click no%,apropos return
GUI:
' Création des objets (balle, murs, raquette...) ' Numéro des objets 3D: 1=ball; 2= back wall; 3= left wall; 4 = rigth wall; 5=pad; 6=score
hide 1 3d_sphere 1, 0.3 : 3d_color 1,0,0,0 : 3d_collision_as_sphere 1 : ' Balle
3d_box 2, 15.5, 0.4, 0.5 : 3d_color 2,155,155,55 : ' Mur du fond 3d_x_position 2, 0 : 3d_y_position 2, 0 : 3d_z_position 2, -7.75
3d_box 3, 0.5, 0.5, 15 : 3d_color 3,155,155,55 : ' Mur gauche 3d_x_position 3, -7.5 : 3d_y_position 3, 0 : 3d_z_position 3, 0.25
3d_box 4, 0.5, 0.5, 15 : 3d_color 4,155,155,55 : ' Mur droit 3d_x_position 4, 7.5 : 3d_y_position 4, 0 : 3d_z_position 4, 0.25
3D_text 6, "Score: 0" : 3d_color 6,250,250,0 : ' Score 3d_x_position 6, -6 : 3d_y_position 6, 5.5 : 3d_z_position 6, 5 3d_x_scale 6, 1.2 : 3d_y_scale 6, 1.2 : 3d_z_scale 6, 1.2
no% = no% + 1 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%
no% = no% + 1 : form no% : hide no% : no_apropos% = no% : ' Définit la fenêtre "A propos" top no%,200 : left no%,200 : caption no%,"A-propos" on_close no%,close_apropos no% = no% + 1 : alpha no% : parent no%,no_apropos% top no%,20 : left no%,20 : font_size no%,12 s$ = "Jeu PANORABRIQUE 3D"+chr$(13)+chr$(10)+chr$(10) s$ = s$ + "Version: "+version$+chr$(13)+chr$(10) s$ = s$ + "Du: "+date_cre$+chr$(13)+chr$(10)+chr$(10) s$ = s$ + "Auteur: Jean-Charles"+chr$(13)+chr$(10)+chr$(10) caption no%,s$
no% = no% + 1 : form no% : hide no% : no_aide% = no% : width no%,450 : ' Définit la fenêtre du Mode d'emploi caption no%,"Mode d'emploi" : on_close no%,close_aide no% = no% + 1 : alpha no% : parent no%,no_aide% top no%,20 : left no%,20 : font_size no_aide%,10 : k% = 2 s$ = "Bienvenu dans PANORABRIQUE 3D !" + chr$(13)+chr$(10)+chr$(10) : k%=k%+1 s$ = s$ + "Vous dirigez la raquette (rectangle gris) à l'aide de " + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "la souris. (Si vous déplacez la souris à droite, " + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "la raquette va à droite et réciproquement." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Vous devez faire rebondir la balle sur la raquette pour" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + " éviter qu'elle ne tombe" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "La balle rebondit sur la raquette et les murs." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "La balle brise les briques et rebondit." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Vous marquez des points en brisant les briques." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Quand il ne reste plus de briques, vous passez au" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "niveau suivant..." + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2 s$ = s$ + "Cliquez pour lancer la balle" + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2 s$ = s$ + "Appuyez sur une touche quelconque pour mettre le jeu en pause": k%=k%+2 top no%-1,150 : left no%-1,200 : height no%-1,20*k% caption no%,s$
no% = no% + 1 : form no% : hide no% : no_config% = no% : ' Définit la fenêtre de configuration top no%,200 : left no%,200 : caption no%,"Configuration" width no%,450 on_close no%,close_config
no% = no% + 1 : alpha no% : parent no%,no_config% top no%,20 : left no%,10 : caption no%,"Vitesse de la balle :" no% = no% + 1 : edit no% : parent no%,no_config% : no_config_v% = no% top no%,20 : left no%,120 : width no%,30 text no%,str$(v) no% = no% + 1 : alpha no% : parent no%,no_config% top no%,20 : left no%,160 : caption no%,"(1 (très lent) à 10 (très rapide))" no% = no% + 1 : alpha no% : parent no%,no_config% top no%,50 : left no%,10 : caption no%,"Vitesse du jeu (en ms):" no% = no% + 1 : edit no% : parent no%,no_config% : no_config_speed% = no% top no%,50 : left no%,120 : width no%,30 text no%,str$(speed%) no% = no% + 1 : alpha no% : parent no%,no_config% top no%,50 : left no%,160 : caption no%,"(10 (très rapide) à 100 (très lent))" no% = no% + 1 : alpha no% : parent no%,no_config% ' Vont être rajoutés ici le paramètrage de la largeur de la raquette, ' du nombre de vies et de la hauteur de la caméra return
initialisations: w%= 690 : h% = 450 : ' Largeur et Hauteur de la fenêtre 0 px% = 0 : py% = 0 : ' Position en x et en y de la fenêtre 0 for i% = 1 to Nb_couleur% : ' Charge le tableau des couleurs avec leur 3 composantes for j% = 1 to 3 : read k% : t_c(i%,j%)=k% : next j% next i%
largeur_r = 3.6 : ' largeur par défaut de la raquette v = 3 : ' vitesse par défaut Nb_vies = 3 : ' 3 vies Hauteur_cam = 7 : ' Hauteur par défaut de la caméra return
sortir: timer_off no_timer% terminate
defaut: v = 3 : ' Rétablir les valeurs par défaut du jeu Nb_vies = 3 largeur_r = 3.6 Hauteur_cam = 7 gosub change_config return
stopit: timer_off no_timer% inactive no_stop% active no_start% return
start: active no_stop% inactive no_start% show 1 Pause% = 0 vies = Nb_vies : ' 3 vies vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05 s=0 : ' Score à 0 niveau%= 0
restart: timer_off no_timer% if O3D_OBJECT_EXISTS(5) = 1 then 3D_Delete 5 if largeur_r > 0.75 then largeur_r = largeur_r - 0.1 3d_box 5, largeur_r , 0.5, 0.5 : 3d_color 5,80,80,80 : ' Raquette 3d_x_position 5, 0 : 3d_y_position 5, 0 : 3d_z_position 5, 7.75 niveau% = niveau% + 1 Nb_lignes = 6: gosub Dessine_briques caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%) gosub Lance_balle timer_on no_timer% return
Dessine_briques: if variable("t_br")=1 then free t_br dim t_br(Nb_lignes*Nb_b_ligne,5) Nb_briques_restantes = 0 For i%= 1 to Nb_lignes For j% = 1 to Nb_b_ligne Nb_briques_restantes=Nb_briques_restantes+1 t_br(Nb_briques_restantes,1) = 1 : ' Brique non cassée t_br(Nb_briques_restantes,5) = 100 : ' Valeur en point de la brique t_br(Nb_briques_restantes,2) = t_c(5+i%,1): ' Valeur rouge t_br(Nb_briques_restantes,3) = t_c(5+i%,2): ' Valeur verte t_br(Nb_briques_restantes,4) = t_c(5+i%,3): ' Valeur bleue gosub Trace_brique Next j% Next i% return
Trace_brique: if O3D_OBJECT_EXISTS(50+Nb_briques_restantes)=0 then 3d_box 50+Nb_briques_restantes, largeur_b, hauteur_b, hauteur_b 3d_color 50+Nb_briques_restantes,t_br(Nb_briques_restantes,2),t_br(Nb_briques_restantes,3),t_br(Nb_briques_restantes,4) 3d_x_position 50+Nb_briques_restantes, -7.43 + j%*(largeur_b + 0.33) 3d_y_position 50+Nb_briques_restantes, 0 3d_z_position 50+Nb_briques_restantes, i% - 7 + (i%-1)*0.33 3d_collision_as_cube 50+Nb_briques_restantes return
Lance_balle: zball=7 : xball= xpad : 3d_x_position 1,xball : 3d_z_position 1,zball while pause% = 0 if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while end_while dx=1.5-rnd(1):dz=-1 return
tick: timer_off no_timer% ' lecture position souris en X et positionne la raquette xpad=(mouse_x_position(1)-340)/15 if xpad>6.5 then xpad=6.5 if xpad<-6.5 then xpad=-6.5 3d_x_position 5,xpad
' Teste le rebond sur les bords xball=xball+dx*vx if xball > 7 then xball=7 : dx=-1.5 + rnd (1) : ' Rebond à droite if xball < -7 then xball=-7: dx= 1.5 - rnd(1) : ' Rebond à gauche 3d_x_position 1,xball
zball=zball+dz*vz if zball < -7 then zball=-7:dz=1 : ' Rebond sur le fond
' Teste si la balle touche la raquette if (zball>=7)and((xpad-(largeur_r/2))<xball)and(xball<(xpad+(largeur_r/2))) zball=7:dz=-1.5+rnd(1):s=s+1:3D_text_change 6,"Score: " + str$(s) end_if
' Teste si la balle touche une brique k%=1 For i%= 1 to Nb_lignes For j% = 1 to Nb_b_ligne If O3D_OBJECT_EXISTS(50+k%) = 1 If O3D_collision (1,50+k%) = 1 3D_Delete 50+k% Nb_briques_restantes = Nb_briques_restantes - 1 s = s + t_br(k%,5) dz = dz*M1% : ' on inverse la direction en Z End_if End_if k%=k%+1 Next j% Next i%
if vies > -1 if vies > 1 3d_text_change 6,"Score: " +str$(s) + " Vies: "+str$(vies) else 3d_text_change 6,"Score: " +str$(s) + " Vie : "+str$(vies) end_if end_if if zball>= 8 if vies > 0 vies=vies-1 : wait 200 : gosub Lance_balle else goto fin end_if end_if if Nb_briques_restantes = 0 Message "Bravo, niveau suivant ..." gosub restart end_if
3d_z_position 1,zball timer_on no_timer% return
key: if pause% = 0 pause% = 1 caption 0,"PANORABRIQUE 3D - jeu en pause -" timer_off no_timer% else pause% = 0 caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%) timer_on no_timer% end_if
return
config: inactive 0 show no_config% return
close_config: s$ = text$(no_config_v%) if numeric(s$)=0 message "La vitesse de la balle est invalide !" text no_config_v%,str$(v%) active 0 return end_if k% = val(s$) if (k%<1) or (k%>10) message "La vitesse de la balle est invalide !" text no_config_v%,str$(v%) active 0 return end_if s$ = text$(no_config_speed%) if numeric(s$)=0 message "La vitesse du jeu est invalide !" text no_config_speed%,str$(speed%) active 0 return end_if n% = val(s$) if (n%<10) or (n%>100) message "La vitesse du jeu est invalide !" text no_config_speed%,str$(speed%) active 0 return end_if v = k% speed%=n% gosub change_config active 0 return
change_config: timer_interval no_timer%, speed% vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05 return
aide: inactive 0 show no_aide% return
close_aide: active 0 return
apropos: inactive 0 show no_apropos% return
close_apropos: active 0 return
fin: gosub stopit message "Dommage, vous avez épuisé toute vos vies" end Si vous voyez des améliorations simples ou des options à rajouter, n'hésitez pas à les proposer. Edit du 16 Août: Ajout de la pause, du clic pour lancer la balle et rétrécissement de la raquette
Dernière édition par Jicehel le Jeu 16 Aoû 2012 - 22:45, édité 5 fois | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 1:30 | |
| Salut LEBEAU. Ton jeu c’est beau ! J’ai joué sans même regarder le code. J’ai du monde chez moi. Tout à l’heure, je regarderais le code pour ….apprendre et …m’inspirer pour plus tard ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 1:46 | |
| Bah, le code c'est presque le même, j'ai juste essayé de le structurer à la façon Klaus, car j'aime beaucoup, même si quand je code par défaut, je ne résone pas naturellement comme ça. Le résultat de son code à la lecture ou pour modifier me plait bien . Bon il est super tard, je fonce au lit ... | |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 16 Aoû 2012 - 2:14 | |
| | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 3:35 | |
| Jicehel, voici mes petites remarques tout à fait personnelles. * Ligne 153 : rebondit au lieu de rebondie * Ligne 168 : left no%,120 : width no%,30 au lieu de 100 et 40 * Ligne 175 : left no%,120 : width no%,30 pour une meilleure lisibilité (dans OPTIONS/CONFIGURATION) * Ligne 292 : je ne vois pas pourquoi ce test : if vies > -1 Je pense que le test de la ligne 293 suffit. J’ai mis la ligne 292 et la ligne 298 (qui va avec) en REM et il me semble que c’est correct. Mais qui sait ? Quelque chose m’échappe peut-être. Maintenant le côté positif : C’est un bon petit jeu. Le programme est très bien documenté, très clair, facile à suivre et à analyser. J’apprendrais certainement quelque chose sur la 3D et compagnie ! BRAVO | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 4:24 | |
| Quand on commence un nouveau jeu, celui-ci démarre très rapidement de sorte qu’on perd souvent la 1ere balle. J’ai ajouté WAIT 500 juste avant GOSUB lance_balle en ligne 216. | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 7:41 | |
| Merci pour vos commentaires Ca fait plaisir @Papydall, j'ai fais les corrections indiquées dans tes messages. J'ai laissé le if vies > -1, c'est un détail sans importance, c'est juste pour qu'il n'y ait pas le S à vies quand on en n(a plus qu'1 ou 0 Je mets à jour le code du premier post avec ces améliorations. Si tu vois d'autres améliorations, n'hésite pas | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:00 | |
| Ce soir je rajouterais des paramètrages (Nombre de vies, ...), j'ai modifié un petit peu le programme du boulot pour virer un reste du programme de Klaus qui n'avait pas de raison d'être ... et oui, il faut faire gaffe quand on fait un copier / coller et j'arrète le timer quand on sort par le menu pour éviter les messages d'erreur... Ce soir je voudrais rajouter aussi une pause quand on clic sur la souris de manière à pouvoir changer les paramètres, aller boire un bière ou changer de chaine sans perdre sa partie Du coup, je rajouterais reprendre dans le menu aussi quand on fait un stop (C'est le même principe) Je pense que je remplacerais le wiat 500 par un décompte, du genre un fenêtre avec un 3, puis 2, puis 1 et ensuite la balle part. C'est tout pour mes idées du midi... | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:12 | |
| Même si tu enlève if vies > -1 l’affichage reste correct : pas d’s à vie lorsque = à 1 ou à 0, mais c’est un détail sans importance comme tu l’as écrit ! Une petite idée qui me vient à l’instant : si au début de la partie, la balle se trouve sur la raquette et on démarre par un click. On n’a plus besoin du WAIT et on ne perd pas la 1ere balle avant d’avoir commencé. PS : c’est peut-être une idée d’un jeune vieux dont le temps de réaction n’est plus celui d’un vieux jeune ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:14 | |
| Non c'est pas mal comme idée Raquette et balle fixée à un endroit jusqu'au clic, ça me va bien ça aussi. En plus c'est simple à coder. Je prends. N'hésite pas pour les idées... | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:22 | |
| | |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 16 Aoû 2012 - 14:25 | |
| Pour corser le truc, je vois bien une raquette qui rétrécie au fur et à mesure que l'on avance dans les niveaux... | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:28 | |
| OK, ça doit pouvoir se faire, mais je mettrais une taille mini quand même ... Après par contre, on peut jouer aussi sur la vitesse de la balle ... Pourquoi pas, je mettrais ça dans les options | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:29 | |
| Et pourquoi Pour que JC ne puisse plus jouer | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:32 | |
| Bah, c'est une option, ceux qui veulent souffrir le pourront... Tu sais Papydall, il y en a qui aime ça | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 14:52 | |
| Comme quoi, il y a de tout : des masos, des sados, des victimes, des bourreaux, etc. Tout le monde devrait avoir son dû !
| |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 16 Aoû 2012 - 21:08 | |
| Non, non, je ne suis ni l'un, ni l'autre... Mais il faut bien une évolution entre les niveaux sinon le jeu perd de son intérêt... | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Jeu 16 Aoû 2012 - 22:38 | |
| Voilà, on clic désormais pour lancer la balle Pause en appuyant sur une touche / relance en appuyant sur une touche La raquette rétrécie à chaque niveau
| |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Jeu 16 Aoû 2012 - 23:34 | |
| j'ai eu un petit bug entre le niveau 2 et 3 ou mes vies sont revenus à 2 au lieu de 1... mais bon j'ai beaucoup de choses ouvertes sur le bureau aussi, il y a peut être eu une interférence... J'essaierai plus en profondeur un peu plus tard... | |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Ven 17 Aoû 2012 - 0:22 | |
| Je n'ai pas réussi à le reproduire, j'ai regardé le code, ça m'a l'air bon. Dis moi si ça se reproduit et si tu vois quand cela se produit dans ce cas si tu vois. | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Ven 17 Aoû 2012 - 3:50 | |
| Une minuscule petite correction : Avant dernière ligne : ajouter un s à toute dans : message "Dommage, vous avez épuisé toute vos vies" Ça m’énerve les fotes dortograf ! Seulement parfois, pas toujours! Hé ! Réflexion faite : pourquoi avons-nous épuisé toutes nos vies ? On n’en a qu’une seule à ce que je sache et elle est encore en cours ! Ne serait-il pas mieux d’écrire ‘Dommage vous avez épuisé toutes vos balles’ ? Hein ! Que penses-tu de cette super ultra grande trouvaille de fin de nuit ? Et ne dis pas que je dérive, car même si je dérive, j’atteindrais inéluctablement la rive ! | |
| | | Yannick
Nombre de messages : 8610 Age : 52 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Ven 17 Aoû 2012 - 5:24 | |
| Perso, je préfère "Billes" à "Balles"
| |
| | | Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabriques à la mode des menus Ven 17 Aoû 2012 - 7:26 | |
| Et voilà, version à 3 balles - Code:
-
' Panorabrique V2 par Jean-Charles (Aout 2012) ' ' Bon après quelques mois, je pense qu'il est bon de reprendre ses vieux programmes ' et de les perfectionner un peu ' ' Objectif de cette version: structurer et commenter mieux ' Enrichir et améliorer un peu le jeu
label labels : gosub labels gosub constantes gosub variables gosub donnees gosub initialisations gosub form0 gosub menu gosub GUI end
labels: label constantes, variables, donnees label form0, menu, GUI, initialisations label sortir,start, tick, restart, key label config, close_config, defaut, aide, close_aide label apropos, close_apropos, change_config, stopit label Lance_balle, Fin, Dessine_briques, Trace_brique return
constantes: dim version$ : version$ = "V02.00" dim date_cre$ : date_cre$ = "15 Août 2012" dim taille% : taille% = 25 : ' taille des cases dim speed% : speed% = 30 : ' milli-secondes entre chaque mouvement dim Nb_b_ligne : Nb_b_ligne = 7 : ' Nombre de lignes de briques dim hauteur_b, largeur_b : largeur_b=1.55 : hauteur_b=0.75 dim Nb_couleur%: Nb_couleur% = 18 : ' Nombre de couleurs définies dim M1% : M1% = 0 - 1 return
variables: dim no%, no1%, no2% : ' Numméro d'objets temporaires dim w%, h%, px%, py%: ' Largeur, Hauteur, Position en x et en y de la fenêtre 0 dim i%, j%, k%, n%, s$ : ' Déclaration de variables temporaires diverses dim no_timer%, no_apropos%, no_aide%, no_config% : ' Numéro des objets importants utilisés dim no_config_v%, no_config_speed% : ' Timer, numéro des fenêtres, ... dim no_stop%, no_play%, no_start% dim xpad : ' Position de la souris dim s, vies : ' Score et nombre de balles restantes dim xball,zball : ' position de la balle dim dx,dz : ' direction de la balle dim vx,vz,v : ' vitesse de la balle dim largeur_r : ' Largeur de la raquette dim Nb_lignes : ' Nombre de lignes de briques dim Nb_briques_restantes : ' Compte combien il reste de briques à détruire pour finir le niveau dim Nb_vies : ' Définit le nombre de balles au démarrage dim Hauteur_cam : ' Définit la hauteur de la caméra dim Pause% : ' Bascule pour mettre le jeu en pause ou reprendre dim Niveau% : ' Niveau en cours dim t_c(Nb_couleur%,3) : ' Gère les couleurs par un tableau de couleurs avec 3 composantes return
donnees: data 0, 0, 0, 255,255,255, 155,155, 55, 180,180,80, 80, 80, 80, 80, 80,215 data 215, 80, 80, 80,215, 80, 155,133,155, 100,215,100, 215, 80,215, 215,215, 80 data 80,215,215, 100,100,215, 55,215,133, 133, 55,215, 215,133, 55, 55, 55,133 return
form0: ' Paramètrage de la fenêtre principale du jeu left 0,px% : top 0,py% : ' Position initale de la fenêtre 0 width 0, w% : height 0,450 caption 0,"PANORABRIQUE 3D" scene3d 1 : full_space 1 : color 1,170, 170, 255 : ' cree le monde 3D avec un fond bleu clair cam_x_position 0 : cam_y_position Hauteur_cam : cam_z_position 13 : ' positionne la camera point_x_position 0 : point_y_position 0 : point_z_position -0.5 : ' objectif dirigé vers le centre light_x_position -5 : light_y_position 15 : light_z_position -50 : ' positionne la lumiere on_key_down 0,key no% = no% + 1 return
menu: no% = no% + 1 : main_menu no% : no1% = no% no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Fichier" no% = no% + 1 : sub_menu no% : parent no%,no2% : no_start% = no% caption no%,"Nouveau jeu" : on_click no%,start no% = no% + 1 : sub_menu no% : parent no%,no2% : no_stop% = no% caption no%,"Stop" : inactive no% : on_click no%,stopit no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"------------" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Sortir" : on_click no%,sortir no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Options" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Configuration" : on_click no%,config no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Défauts" : on_click no%,defaut no% = no% + 1 : sub_menu no% : parent no%,no1% : no2% = no% caption no%,"Aide" no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"Mode d'emploi" : on_click no%,aide no% = no% + 1 : sub_menu no% : parent no%,no2% caption no%,"A-propos" : on_click no%,apropos return
GUI:
' Création des objets (balle, murs, raquette...) ' Numéro des objets 3D: 1=ball; 2= back wall; 3= left wall; 4 = rigth wall; 5=pad; 6=score
hide 1 3d_sphere 1, 0.3 : 3d_color 1,0,0,0 : 3d_collision_as_sphere 1 : ' Balle
3d_box 2, 15.5, 0.4, 0.5 : 3d_color 2,155,155,55 : ' Mur du fond 3d_x_position 2, 0 : 3d_y_position 2, 0 : 3d_z_position 2, -7.75
3d_box 3, 0.5, 0.5, 15 : 3d_color 3,155,155,55 : ' Mur gauche 3d_x_position 3, -7.5 : 3d_y_position 3, 0 : 3d_z_position 3, 0.25
3d_box 4, 0.5, 0.5, 15 : 3d_color 4,155,155,55 : ' Mur droit 3d_x_position 4, 7.5 : 3d_y_position 4, 0 : 3d_z_position 4, 0.25
3D_text 6, "Score: 0" : 3d_color 6,250,250,0 : ' Score 3d_x_position 6, -6 : 3d_y_position 6, 5.5 : 3d_z_position 6, 5 3d_x_scale 6, 1.2 : 3d_y_scale 6, 1.2 : 3d_z_scale 6, 1.2
no% = no% + 1 : timer no% : no_timer% = no% : ' Definit le timer principal du jeu timer_interval no_timer%,speed% : on_timer no%,tick : timer_off no%
no% = no% + 1 : form no% : hide no% : no_apropos% = no% : ' Définit la fenêtre "A propos" top no%,200 : left no%,200 : caption no%,"A-propos" on_close no%,close_apropos no% = no% + 1 : alpha no% : parent no%,no_apropos% top no%,20 : left no%,20 : font_size no%,12 s$ = "Jeu PANORABRIQUE 3D"+chr$(13)+chr$(10)+chr$(10) s$ = s$ + "Version: "+version$+chr$(13)+chr$(10) s$ = s$ + "Du: "+date_cre$+chr$(13)+chr$(10)+chr$(10) s$ = s$ + "Auteur: Jean-Charles"+chr$(13)+chr$(10)+chr$(10) caption no%,s$
no% = no% + 1 : form no% : hide no% : no_aide% = no% : width no%,450 : ' Définit la fenêtre du Mode d'emploi caption no%,"Mode d'emploi" : on_close no%,close_aide no% = no% + 1 : alpha no% : parent no%,no_aide% top no%,20 : left no%,20 : font_size no_aide%,10 : k% = 2 s$ = "Bienvenu dans PANORABRIQUE 3D !" + chr$(13)+chr$(10)+chr$(10) : k%=k%+1 s$ = s$ + "Vous dirigez la raquette (rectangle gris) à l'aide de " + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "la souris. (Si vous déplacez la souris à droite, " + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "la raquette va à droite et réciproquement." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Vous devez faire rebondir la balle sur la raquette pour" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + " éviter qu'elle ne tombe" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "La balle rebondit sur la raquette et les murs." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "La balle brise les briques et rebondit." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Vous marquez des points en brisant les briques." + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "Quand il ne reste plus de briques, vous passez au" + chr$(13)+chr$(10): k%=k%+1 s$ = s$ + "niveau suivant..." + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2 s$ = s$ + "Cliquez pour lancer la balle" + chr$(13)+chr$(10)+ chr$(13)+chr$(10): k%=k%+2 s$ = s$ + "Appuyez sur une touche quelconque pour mettre le jeu en pause": k%=k%+2 top no%-1,150 : left no%-1,200 : height no%-1,20*k% caption no%,s$
no% = no% + 1 : form no% : hide no% : no_config% = no% : ' Définit la fenêtre de configuration top no%,200 : left no%,200 : caption no%,"Configuration" width no%,450 on_close no%,close_config
no% = no% + 1 : alpha no% : parent no%,no_config% top no%,20 : left no%,10 : caption no%,"Vitesse de la balle :" no% = no% + 1 : edit no% : parent no%,no_config% : no_config_v% = no% top no%,20 : left no%,120 : width no%,30 text no%,str$(v) no% = no% + 1 : alpha no% : parent no%,no_config% top no%,20 : left no%,160 : caption no%,"(1 (très lent) à 10 (très rapide))" no% = no% + 1 : alpha no% : parent no%,no_config% top no%,50 : left no%,10 : caption no%,"Vitesse du jeu (en ms):" no% = no% + 1 : edit no% : parent no%,no_config% : no_config_speed% = no% top no%,50 : left no%,120 : width no%,30 text no%,str$(speed%) no% = no% + 1 : alpha no% : parent no%,no_config% top no%,50 : left no%,160 : caption no%,"(10 (très rapide) à 100 (très lent))" no% = no% + 1 : alpha no% : parent no%,no_config% return
initialisations: w%= 690 : h% = 450 : ' Largeur et Hauteur de la fenêtre 0 px% = 0 : py% = 0 : ' Position en x et en y de la fenêtre 0 for i% = 1 to Nb_couleur% : ' Charge le tableau des couleurs avec leur 3 composantes for j% = 1 to 3 : read k% : t_c(i%,j%)=k% : next j% next i%
largeur_r = 3.6 : ' largeur par défaut de la raquette v = 3 : ' vitesse par défaut Nb_vies = 3 : ' 3 balles en stock Hauteur_cam = 7 : ' Hauteur par défaut de la caméra return
sortir: timer_off no_timer% terminate
defaut: v = 3 : ' Rétablir les valeurs par défaut du jeu Nb_vies = 3 largeur_r = 3.6 Hauteur_cam = 7 gosub change_config return
stopit: timer_off no_timer% inactive no_stop% active no_start% return
start: active no_stop% inactive no_start% show 1 Pause% = 0 vies = Nb_vies : ' Initialise le compteur de balles restantes vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05 s=0 : ' Score à 0 niveau%= 0
restart: timer_off no_timer% if O3D_OBJECT_EXISTS(5) = 1 then 3D_Delete 5 if largeur_r > 0.75 then largeur_r = largeur_r - 0.1 3d_box 5, largeur_r , 0.5, 0.5 : 3d_color 5,80,80,80 : ' Raquette 3d_x_position 5, 0 : 3d_y_position 5, 0 : 3d_z_position 5, 7.75 niveau% = niveau% + 1 Nb_lignes = 6: gosub Dessine_briques caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%) gosub Lance_balle timer_on no_timer% return
Dessine_briques: if variable("t_br")=1 then free t_br dim t_br(Nb_lignes*Nb_b_ligne,5) Nb_briques_restantes = 0 For i%= 1 to Nb_lignes For j% = 1 to Nb_b_ligne Nb_briques_restantes=Nb_briques_restantes+1 t_br(Nb_briques_restantes,1) = 1 : ' Brique non cassée t_br(Nb_briques_restantes,5) = 100 : ' Valeur en point de la brique t_br(Nb_briques_restantes,2) = t_c(5+i%,1): ' Valeur rouge t_br(Nb_briques_restantes,3) = t_c(5+i%,2): ' Valeur verte t_br(Nb_briques_restantes,4) = t_c(5+i%,3): ' Valeur bleue gosub Trace_brique Next j% Next i% return
Trace_brique: if O3D_OBJECT_EXISTS(50+Nb_briques_restantes)=0 then 3d_box 50+Nb_briques_restantes, largeur_b, hauteur_b, hauteur_b 3d_color 50+Nb_briques_restantes,t_br(Nb_briques_restantes,2),t_br(Nb_briques_restantes,3),t_br(Nb_briques_restantes,4) 3d_x_position 50+Nb_briques_restantes, -7.43 + j%*(largeur_b + 0.33) 3d_y_position 50+Nb_briques_restantes, 0 3d_z_position 50+Nb_briques_restantes, i% - 7 + (i%-1)*0.33 3d_collision_as_cube 50+Nb_briques_restantes return
Lance_balle: zball=7 : xball= xpad : 3d_x_position 1,xball : 3d_z_position 1,zball while pause% = 0 if (mouse_left_up(1)=1 and mouse_left_down(1)=0) then exit_while end_while dx=1.5-rnd(1):dz=-1 return
tick: timer_off no_timer% ' lecture position souris en X et positionne la raquette xpad=(mouse_x_position(1)-340)/15 if xpad>6.5 then xpad=6.5 if xpad<-6.5 then xpad=-6.5 3d_x_position 5,xpad
' Teste le rebond sur les bords xball=xball+dx*vx if xball > 7 then xball=7 : dx=-1.5 + rnd (1) : ' Rebond à droite if xball < -7 then xball=-7: dx= 1.5 - rnd(1) : ' Rebond à gauche 3d_x_position 1,xball
zball=zball+dz*vz if zball < -7 then zball=-7:dz=1 : ' Rebond sur le fond
' Teste si la balle touche la raquette if (zball>=7)and((xpad-(largeur_r/2))<xball)and(xball<(xpad+(largeur_r/2))) zball=7:dz=-1.5+rnd(1):s=s+1:3D_text_change 6,"Score: " + str$(s) end_if
' Teste si la balle touche une brique k%=1 For i%= 1 to Nb_lignes For j% = 1 to Nb_b_ligne If O3D_OBJECT_EXISTS(50+k%) = 1 If O3D_collision (1,50+k%) = 1 3D_Delete 50+k% Nb_briques_restantes = Nb_briques_restantes - 1 s = s + t_br(k%,5) dz = dz*M1% : ' on inverse la direction en Z End_if End_if k%=k%+1 Next j% Next i%
if vies > -1 if vies > 1 3d_text_change 6,"Score: " +str$(s) + " Balles: "+str$(vies) else 3d_text_change 6,"Score: " +str$(s) + " Balle : "+str$(vies) end_if end_if if zball>= 8 if vies > 0 vies=vies-1 : wait 200 : gosub Lance_balle else goto fin end_if end_if if Nb_briques_restantes = 0 Message "Bravo, niveau suivant ..." gosub restart end_if
3d_z_position 1,zball timer_on no_timer% return
key: if pause% = 0 pause% = 1 caption 0,"PANORABRIQUE 3D - jeu en pause -" timer_off no_timer% else pause% = 0 caption 0,"PANORABRIQUE 3D - Niveau actuel :" + str$(Niveau%) timer_on no_timer% end_if
return
config: inactive 0 show no_config% return
close_config: s$ = text$(no_config_v%) if numeric(s$)=0 message "La vitesse de la balle est invalide !" text no_config_v%,str$(v%) active 0 return end_if k% = val(s$) if (k%<1) or (k%>10) message "La vitesse de la balle est invalide !" text no_config_v%,str$(v%) active 0 return end_if s$ = text$(no_config_speed%) if numeric(s$)=0 message "La vitesse du jeu est invalide !" text no_config_speed%,str$(speed%) active 0 return end_if n% = val(s$) if (n%<10) or (n%>100) message "La vitesse du jeu est invalide !" text no_config_speed%,str$(speed%) active 0 return end_if v = k% speed%=n% gosub change_config active 0 return
change_config: timer_interval no_timer%, speed% vx = 0.10 + v*0.05 : vz = 0.10 + v*0.05 return
aide: inactive 0 show no_aide% return
close_aide: active 0 return
apropos: inactive 0 show no_apropos% return
close_apropos: active 0 return
fin: gosub stopit message "Dommage, vous avez épuisé toutes vos balles" end | |
| | | Minibug
Nombre de messages : 4566 Age : 57 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Panorabriques à la mode des menus Ven 17 Aoû 2012 - 9:58 | |
| Salut Jicehel
Tient, ca me rappelle le bon temps... avec arkanoid et tous les autres...
ton casse brique est super ! j'ai réussi plus de 17000 points pour la premiere partie. ca promet... Juste une petite precision : Dans ton menu sur la ligne 89, écris plutot :
caption no%,"-"
au lieu de tout tes tirets. cela permet un trait continu qui n'est pas selectionnable. C'est un détail je te l'accorde.
sinon tu peux aussi rajouter les effets sur certaines briques. commes par exemple : - la balle se dedouble si tu détruit une certaine case. - la raquette s'aggrandie ou rétrécie si tu casse une autre case - des bonus descendent de l'ecran, et il faut les attraper. etc.... | |
| | | papydall
Nombre de messages : 6989 Age : 73 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Panorabriques à la mode des menus Ven 17 Aoû 2012 - 11:39 | |
| @Minibug Bonne astuce que ce CAPTION NO%, "-" @Jicehel En plus des effets proposés par Minibug, si tu pouvais aussi ajouter quelques effets sonores, ça sera plus gai, non ? Mais ceci est sans doute une autre histoire ! | |
| | | Contenu sponsorisé
| Sujet: Re: Panorabriques à la mode des menus | |
| |
| | | | Panorabriques à la mode des menus | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |