Novembre 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 |
|
|
| Panorabrique | |
| | |
Auteur | Message |
---|
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Panorabrique Jeu 23 Fév 2012 - 0:48 | |
| Bon pour faire plaisir à JL35, je me remet un peu au code ... Début d'un casse-brique, il me faudra encore un peu de temps pour le finir, mais bon il y a les briques, la raquette qui bouge et la balle aussi (pour le moment pas de gestion des collision en dehors des bords car il est déjà tard, je verrais ça un autre jour ) - Code:
-
label trace_brique, dessine_raquette, boucle_principale, lance_balle, deplace_balle label dessine_briques, fin, retrace, init_niveau, recommence dim h,l : h=400: l=600 dim hauteur_b, largeur_b : hauteur_b = 10 : largeur_b=30 dim c, xb, yb, i, j, r , N, n_picture dim Nb_b_ligne : Nb_b_ligne = int((l - 60)/(largeur_b+10)) dim Nb_lignes, Nb_briques_restantes dim x_r , y_r, hauteur_r, largeur_r : hauteur_r = 10 : largeur_r=70 : y_r = h-60-hauteur_r dim vies : vies = 3 dim x_ball,y_ball, r_ball, n_ball : r_ball = 10 dim score : score = 0 dim objet% : objet% = 1 dim ecran%, aff_vies%, aff_score% dim Nb_couleur%: Nb_couleur% = 18 dim t_c(Nb_couleur%,3) dim ombre : ombre=30 dim lumiere : lumiere = 30
height 0, h: width 0,l : caption 0, "PANORABRIQUE - V1.0" : border_small 0
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
for i = 1 to Nb_couleur%: for j = 1 to 3 : read c : t_c(i,j)=c : next j : next i
ecran% = objet% : picture ecran% : top ecran%,0: left ecran%,1 height ecran%, h-35: width ecran%,l-18 2D_target_is ecran%: objet% = objet% +1
2D_pen_width 3 ' Trace le contour 2D_pen_color t_c(3,1), t_c(3,2), t_c(3,3) : 2D_fill_color t_c(3,1), t_c(3,2), t_c(3,3) 2D_rectangle 0,h-35,8,0 : 2D_rectangle 8,0,l-15,20 : 2D_rectangle l-25,10,l-15,h-35
aff_vies% = objet% : alpha aff_vies% : color aff_vies%, t_c(3,1), t_c(3,2), t_c(3,3): top aff_vies%,4 : left aff_vies%, 40 width aff_vies%,80 : caption aff_vies%, "Vies = "+str$(vies) : objet% = objet% + 1
aff_score% = objet% : alpha aff_score% : color aff_score%, t_c(3,1), t_c(3,2), t_c(3,3) : top aff_score%,4 : left aff_score%, 150 width aff_score%,80 : caption aff_score%, "Score = "+str$(score) : objet% = objet% + 1
gosub init_niveau ' timer pour déplacements timer 20 : timer_interval 20,25 on_timer 20,boucle_principale end
init_niveau: Nb_lignes = 6: gosub dessine_briques x_r = 0.5 * (l - largeur_r - 35) gosub Dessine_raquette gosub Lance_balle return
dessine_briques: if variable("t_br")=1 then free t_br dim t_br(Nb_lignes*Nb_b_ligne,5) dim k: k=0 : Nb_briques_restantes = 0 For i= 1 to Nb_lignes yb = 25 + (hauteur_b + 15) * i For j = 1 to Nb_b_ligne xb = 30 + (largeur_b + 10) * (j-1) k=k+1 : t_br(k,1) = 1 : t_br(k,5) = 100 t_br(k,2) = t_c(5+i,1): t_br(k,3) = t_c(5+i,2): t_br(k,4) = t_c(5+i,3) Nb_briques_restantes = Nb_briques_restantes + 1 gosub trace_brique Next j Next i free k return
Lance_balle: y_ball = y_r - 25 x_ball = int(rnd(l-60)) + 15 r=1 RETURN
recommence: vies = 3 : score = 0 ' Efface ancienne raquette 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) : 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle x_r,y_r,x_r+largeur_r,y_r+hauteur_r
' Efface la balle 2D_rectangle x_ball,y_ball,x_ball+2*r_ball,y_ball+2*r_ball gosub init_niveau timer_on 20 return
retrace: dim k: k=0 For i= 1 to Nb_lignes yb = 25 + (hauteur_b + 15) * i For j = 1 to Nb_b_ligne xb = 30 + (largeur_b + 10) * (j-1) k=k+1 gosub trace_brique Next j Next i free k return
trace_brique: if t_br(k,1)=1 2D_pen_color t_br(k,2), t_br(k,3), t_br(k,4) 2D_fill_color t_br(k,2), t_br(k,3), t_br(k,4) 2D_rectangle xb+2,yb+2,xb+largeur_b-2, yb+hauteur_b-2 2D_pen_color t_br(k,2)+lumiere, t_br(k,3)+lumiere, t_br(k,4)+lumiere 2D_poly_from xb,yb+hauteur_b : 2D_poly_to xb,yb : 2D_poly_to xb+largeur_b,yb 2D_pen_color t_br(k,2)-ombre, t_br(k,3)-ombre, t_br(k,4)-ombre 2D_poly_to xb+largeur_b,yb+hauteur_b : 2D_poly_to xb,yb+hauteur_b end_if return
deplace_balle: IF x_ball> l-29 -2*r_ball THEN c = 2 : ELSE : IF x_ball < 12 THEN c = 1 ' IF y_ball > h-35-2*r_ball THEN r = 1 : ELSE : IF y_ball < 24 THEN r = 2 IF y_ball < 24 THEN r = 2 IF c<2 THEN x_ball = x_ball + 2 : ELSE: x_ball = x_ball - 2 IF r<2 THEN y_ball = y_ball - 2 : ELSE: y_ball = y_ball + 2 RETURN
dessine_raquette: 2D_pen_color t_c(5,1), t_c(5,2), t_c(5,3): 2D_fill_color t_c(5,1), t_c(5,2), t_c(5,3) 2D_rectangle x_r+4,y_r+4,x_r+largeur_r-4,y_r+hauteur_r-4 2D_pen_color t_c(5,1)+lumiere, t_c(5,2)+lumiere, t_c(5,3)+lumiere 2D_poly_from x_r+2,y_r+hauteur_r-2 : 2D_poly_to x_r+2,y_r+2 : 2D_poly_to x_r+largeur_r-2,y_r+2 2D_pen_color t_c(5,1)-ombre, t_c(5,2)-ombre, t_c(5,3)-ombre 2D_poly_to x_r +largeur_r-2,y_r+hauteur_r-2 : 2D_poly_to x_r+2,y_r+hauteur_r-2 return
boucle_principale: if variable("temp") = 0 then dim temp timer_off 20 if scancode=27 then goto fin
' Efface ancienne raquette 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) : 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle x_r,y_r,x_r+largeur_r,y_r+hauteur_r
' Efface la balle 2D_rectangle x_ball,y_ball,x_ball+2*r_ball,y_ball+2*r_ball
' Test si collision avec une brique if (r= 1 and y_ball < (25 + hauteur_b + (hauteur_b + 15) * Nb_lignes))
i = int((x_ball - 30) / (largeur_b + 10))+1 temp = int ((y_ball -25 -hauteur_b) / (hauteur_b +15))+1 N = (temp-1)*Nb_b_ligne +i if N <= (Nb_lignes*Nb_b_ligne) and N>0 if t_br(N,1) = 1 r=2 : t_br(N,1) = 0 ' Efface les briques 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle 30,25 + (hauteur_b + 15),l -30, 26 + hauteur_b + (hauteur_b + 15) * Nb_lignes Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(N,5) gosub retrace end_if end_if else if (r= 2 and (y_ball > (40 + hauteur_b)) and (y_ball < (25 + hauteur_b + (hauteur_b + 15) * Nb_lignes) )) i = int((x_ball - 30) / (largeur_b + 10)) +1 temp = int (((y_ball+2*r_ball) -25 -hauteur_b) / (hauteur_b +15)) N = (temp-1)*Nb_b_ligne +i if N <= (Nb_lignes*Nb_b_ligne) and N>0 if t_br(N,1) = 1 r=1 : t_br(N,1) = 0 ' Efface les briques 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle 30,25 + (hauteur_b + 15),l -30, 26 + hauteur_b + (hauteur_b + 15) * Nb_lignes Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(N,5) gosub retrace end_if end_if end_if end_if
' Trace la balle gosub deplace_balle 2D_pen_color t_c(3,1)-ombre, t_c(3,2)-ombre, t_c(3,3)-ombre 2D_fill_color t_c(3,1), t_c(3,2), t_c(3,3) 2D_Circle x_ball+r_ball, y_ball+r_ball, r_ball 2D_pen_color t_c(4,1), t_c(4,2), t_c(4,3) 2D_fill_color t_c(4,1)+lumiere, t_c(4,2)+lumiere, t_c(4,3)+lumiere 2D_Circle x_ball+r_ball-3, y_ball+r_ball-3, r_ball-6
' Actualise la raquette x_r = mouse_x_position(1) if x_r < 10 then x_r=10 if x_r > l - largeur_r-28 then x_r = l - largeur_r-28 gosub dessine_raquette
' Verifie si la balle touche la raquette if r=2 and y_ball > y_r - 2 * r_ball if ((x_ball > (x_r - r_ball)) and (x_ball < (x_r + largeur_r))) r = 1 score=score+1 else if r=2 and y_ball > y_r ' Balle perdue wait 30 ' Efface la balle 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle x_ball,y_ball,x_ball+2*r_ball,y_ball+2*r_ball wait 100 gosub Lance_balle vies = vies-1 end_if end_if end_if caption aff_vies%, "Vies = "+str$(vies) caption aff_score%, "Score = "+str$(score) if Nb_briques_restantes = 0 Message "Bravo, niveau suivant ..." ' Efface la balle 2D_pen_color t_c(2,1), t_c(2,2), t_c(2,3) : 2D_fill_color t_c(2,1), t_c(2,2), t_c(2,3) 2D_rectangle x_ball,y_ball,x_ball+2*r_ball,y_ball+2*r_ball gosub init_niveau end_if if vies < 1 then goto fin free temp timer_on 20 return
fin: if message_confirmation_yes_no ("Voulez-vous recommencer une partie ?") = 1 then goto recommence terminate
Dernière édition par Jicehel le Sam 25 Fév 2012 - 3:48, édité 1 fois | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panorabrique Jeu 23 Fév 2012 - 9:13 | |
| C'est pas mal pour un début, joli, mais je n'ai plus qu'à aller faire recorder ma raquette, avec la balle qui passe à travers à chaque fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Jeu 23 Fév 2012 - 9:48 | |
| mdr La raquette c'est simple pour savoir s'il y a rebond ou non, mais bon, je ne voulais pas commencer hier par ce que sinon, j'aurais voulu faire les briques aussi et là c'est plus compliqué puisqu'il faut calculer les 4 type de rebond possible (par le haut, à droite, à gauche ou en bas) en fonction du sens de la balle et de l'état de la brique (présente ou cassée). Bon, il n'y a pas mort d'homme mais il faut le faire alors commencer à une heure du mat... j'ai préféré repousser ça à un autre jour. Ce soir sans doute sauf imprévu | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Sam 25 Fév 2012 - 3:53 | |
| Bon, j'ai rajouté dans le code du premier post la gestion des collisions (enfin les tests peuvent être améliorés si quelqu'un a un peu de temps et l'esprit clair pour le faire ...), la gestion du score et de la fin de partie (plus de vie, plus de briques ou appuie sur 'echap')
Amusez-vous bien mais je vous ais prévenu, la gestion des collisions des briques peut vraiment être mieux faites. J'avais fait un truc plus complexe, mais ça ne fonctionnait pas, j'ai donc simplifié et là c'est jouable, mais il manque un test qui empêche de casser la brique de gauche de la ligne supérieure quand on tire sur le bord gauche et une meilleure gestion des limites de la balle et des briques ... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panorabrique Sam 25 Fév 2012 - 15:48 | |
| Amusant, bien fait, joli petit jeu ! mais un peu monotone à la longue, ça manque un peu de variété et d'imprévus, la baballe a une direction bien déterminée et prévisible. Mais par contre je ne vois pas trop ce que tu pourrais faire de plus. Au moins ça ne perce plus ma raquette. Les niveaux supplémentaires ajoutent des briques, c'est tout ? la vitesse reste la même apparemment. Je ne sais pas si tu peux l'augmenter (je n'ai pas étudié ton programme ), ou alors peut-être diminuer progressivement la largeur de la raquette, pour augmenter la difficulté ? Ca me rappelle un peu un jeu d'autrefois (space invaders, ou quelque chose comme ça), avec un canon qui se déplaçait au sol et qui tirait à la verticale sur des vaisseaux extra-terrestres qui descendaient lentement, il fallait les détruire avant qu'ils touchent le sol... ça doit être archi-connu. | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panorabrique Sam 25 Fév 2012 - 23:09 | |
| Pour l'améliorer, tu peux faire beaucoup de choses : Ajouter des niveaux, jouer en mode aventure avec un scénario, vaincre des boss protégés par des brigands, etc...
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Dim 26 Fév 2012 - 1:37 | |
| Merci pour vos commentaires. Bon, tout d'abord, juste un ajustement, ce n'est qu'un casse briques et n'a pas d'autres prétentions.
En effets, augmenter la vitesse, faire des niveaux serait facile à faire et dans l'esprit de ce que je veux en faire. Par contre, un scénario avec des boss et tout, j'avoue que c'est autre chose... Ce n'est pas dans l'esprit du petit jeu que je pensais coder, mais tu peux toujours adapter le code après si tu as envie de te lancer la dedans.
Pour ce code, je préférerais d'abord le faire bien avec une gestion correcte des collisions sans un premier temps.
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panorabrique Dim 26 Fév 2012 - 13:50 | |
| | |
| | | exdragon
Nombre de messages : 601 Date d'inscription : 05/01/2012
| Sujet: Re: Panorabrique Dim 26 Fév 2012 - 23:22 | |
| Normal, la gestion des collisions c'est la base dans ce genre de jeu, pas besoin d'aller plus avant si ce truc là n'est pas au point. Je ne savais pas que ce n'étais pas au point, je proposais juste des améliorations pour palier aux problèmes cités ici : - Citation :
- mais un peu monotone à la longue, ça manque un peu de variété et d'imprévus, la baballe a une direction bien déterminée et prévisible. Mais par contre je ne vois pas trop ce que tu pourrais faire de plus.
| |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Lun 27 Fév 2012 - 0:00 | |
| Pas de problème exdragon, les sugestions peuvent donner des idées, mais bon, là, ce sera un petit jeu sans prétention que j'essayerais de faire proprement. Il sera sans doute monotone au moins dans cet état. Après, s'il est propre et fonctionne bien, quelqu'un pourra toujours sans servir pour le reprendre et le rendre moins monotone (Peut être même que ce sera moi plus tard qui sait) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panorabrique Lun 27 Fév 2012 - 13:34 | |
| Je ne pensais pas non plus à rajouter des plaies et des... boss, mais bien à rester dans l'optique simple du casse-briques, en variant un peu la difficulté, vitesse, largeur de raquette, rebonds parfois aléatoires, etc. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Lun 27 Fév 2012 - 14:00 | |
| Demandes recevables JL35. Je le mets dans la todo list pour une prochaine soirée de programmation (ou je le ferais dans la version 3D car je pense que je referais plus tard une version 2D après en essayant avec scene2D et des sprites pour voir si je peux anuler ce cintillement insupportable (enfin pour moi)). La version 3D est propre au niveau affichage et rajouter des briques en tant qu'objet 3D pour lesquels on fait un 3D_COLLIISON_AS_CUBE avec la balle (3D_COLLISION_AS_SPHERE) puis une boucle où l'on teste O3D_COLLISION par une boucle sur le nombre de briques me parait très simple. Il faut juste que je teste pour voir si ce n'est pas trop consommateur en temps. Ca permettrait que je ne me prenne pas la tête à réfléchir sur les tests de collisions, fainéant comme je suis Après la variation de vitesse et de rebond, c'est vraiment simple à faire... La largeur de la raquette aussi (d'ailleurs, pour encore simplifier je vais essayer aussi le test de collision entre le balle et la raquette) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Panorabrique Lun 27 Fév 2012 - 14:30 | |
| Ben voilà, il suffit de demander gentiment maintenant en vieux fossile que je suis je ne fais pas trop la différence entre 2D et 3D pour du casse-briques... quoique j'imagine que c'est parce qu'il y a en 3D des fonctions bien pratiques qui n'existent pas en 2D. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Lun 27 Fév 2012 - 15:25 | |
| Woui, exactement, enfin pour le moment je ne crois pas que Jack ait déjà implémenté le test de collision des sprites à ce jour enfin sauf si j'ai oublié une des nombreuses choses ajoutées par Jack récemment | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 0:39 | |
| Voilà, j'ai ajouté les briques et les test de collisions d'objets 3D natifs dans Panoramic. Voici donc le source équivalent approximativement à la version 2D mais en plus fluide qu'en 2D (enfin je trouve). - Code:
-
label Boucle_principale, Lance_balle, Fin, Init_niveau, Dessine_briques, Trace_brique
dim i,j, c, xpad, s, vies : s=0 : vies = 3 dim xball,zball : rem ball position dim dx,dz : ' direction de la balle dim vx,vz : ' vitesse de la balle
dim largeur_r : largeur_r = 3.6 : ' Largeur de la raquette
dim Nb_b_ligne : Nb_b_ligne = 7 dim Nb_lignes, Nb_briques_restantes dim hauteur_b, largeur_b : largeur_b=1.55 : hauteur_b=0.75
rem numbers of 3D objects: rem 1=ball; 2= back wall; 3= left wall; 4 = rigth wall; 5=pad; 6=score
' Paramètrage de la fenêtre principale du jeu left 0,0 : top 0,0 : width 0, 690 : 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 7 : 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
' Gère les couleurs par un tableau de couleurs dim Nb_couleur%: Nb_couleur% = 18 dim t_c(Nb_couleur%,3)
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
for i = 1 to Nb_couleur%: for j = 1 to 3 : read c : t_c(i,j)=c : next j : next i
' Création des objets (balle, murs, raquette...) 3d_sphere 1, 0.3 : 3d_color 1,0,0,0 : 3d_collision_as_sphere 1 : ' balle created at the center 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_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
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
gosub Init_niveau
' timer pour déplacements timer 20 : timer_interval 20,30 on_timer 20,boucle_principale end
Init_niveau: Nb_lignes = 6: gosub Dessine_briques gosub Lance_balle return
Dessine_briques: if variable("t_br")=1 then free t_br if variable("k")=1 then free k
dim t_br(Nb_lignes*Nb_b_ligne,5) dim k: k=0 : Nb_briques_restantes = 0
For i= 1 to Nb_lignes For j = 1 to Nb_b_ligne k=k+1 : t_br(k,1) = 1 : t_br(k,5) = 100 t_br(k,2) = t_c(5+i,1): t_br(k,3) = t_c(5+i,2): t_br(k,4) = t_c(5+i,3) Nb_briques_restantes = Nb_briques_restantes + 1 gosub Trace_brique Next j Next i free k return
Trace_brique: if O3D_OBJECT_EXISTS(50+k)=0 then 3d_box 50+k, largeur_b, hauteur_b, hauteur_b 3d_color 50+k,t_br(k,2),t_br(k,3),t_br(k,4) 3d_x_position 50+k, -7.43 + j*(largeur_b + 0.33) : 3d_y_position 50+k, 0 : 3d_z_position 50+k, i - 7 + (i-1)*0.33 3d_collision_as_cube 50+k return
Lance_balle: xball=0 : zball=6 :dx=1.5-rnd(1):dz=-1.5+rnd(1) : vx = 0.25 : vz = 0.25 return
Boucle_principale:
timer_off 20 ' lecture position souris en X et positionne la raquette xpad=(mouse_x_position(1)-340)/15 if xpad>8 then xpad=8 if xpad<-8 then xpad=-8 3d_x_position 5,xpad
' Test 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 c=1 For i= 1 to Nb_lignes For j = 1 to Nb_b_ligne If O3D_OBJECT_EXISTS(50+c) = 1 If O3D_collision (1,50+c) = 1 3D_Delete 50+c Nb_briques_restantes = Nb_briques_restantes - 1 s = s + t_br(c,5) If dz=1 dz=-1 Else dz=1 End_if End_if End_if c=c+1 Next j Next i
if vies > 1 3d_text_change 6,"Score: " +str$(s) + " Vies: "+str$(vies) else if vies <= 0 3d_text_change 6,"Score: " +str$(s) + " Vie: "+str$(vies) gosub fin else 3d_text_change 6,"Score: " +str$(s) + " Vie: "+str$(vies) end_if end_if
if zball>= 8 then vies=vies-1 : wait 200 : gosub Lance_balle
if Nb_briques_restantes = 0 ' Message "Bravo, niveau suivant ..." gosub init_niveau end_if
3d_z_position 1,zball
if scancode = 27 then gosub fin timer_on 20 return
Fin: c=0 if vies <= 0 if message_confirmation_yes_no ("Voulez-vous rejouer une partie ?") = 1 vies = 3 : s = 0 gosub init_niveau else c=1 end_if else if message_confirmation_yes_no ("Voulez-vous vraiment quitter ?") = 1 then c=1 end_if if c=0 then return terminate | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 9:34 | |
| Bravo, c'est magnifique, vraiment, je suis très impressionné!! A mon avis, c'est le début d'un jeu que tu pourrait vraiment commercialiser! J'en ai vu des juex "briques", mais pas en 3D comme celui-ci! Bonne continuation!! Lode | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 10:19 | |
| Merci Lodchjo, perso je suis de l'ancienne école, je préfère ne même pas envisager de vendre ce type de programme. Pour moi, c'est un hobby que je partage avec d'autres passionnés et je suis content quand on trouve une solution ou que l'on fait un petit programme sympa, mais merci beaucoup pour tes encouragements | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 10:54 | |
| D'accord, je comprends! J'ai pas l'esprit commerciale non plus. Pourtant, on est une bonne équipe ici et une programme commerciale pourrait avoir 2 avantages: - donner du préstige a Panoramic
- faire gagner un peu d'argent a Jack pour son boulot
C'est juste une idée, c'est pas pour pousser ou quoi que ce soit; je respecte ton point de vu! Mais si on s'y met tous, ça pourrait devenir un petit succès. Lode | |
| | | carpathe
Nombre de messages : 14 Age : 73 Localisation : Pres Toulouse Date d'inscription : 28/02/2012
| Sujet: Prestige or not prestige Ven 2 Mar 2012 - 16:00 | |
| Salut lodjo,je lis que tu souhaite donner du prestige a"Panoramic".Je doit te mettre en garde.Jack n'ouvre pas son code,moi j'en connais la raison,que je ne peut pas te communiquer,puisque lui meme ne le veux pas.Je te certifie,qu'il est dans son interet,et dans le notre,que"Panoramic" reste en comite restreint.Je suis conscient que ce n'est pas tres 'fair play'.Mais nous vivons dans un monde,ou les naifs ne sont pas a la fete.A+ | |
| | | lodchjo
Nombre de messages : 162 Age : 53 Localisation : Anvers Date d'inscription : 26/12/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 16:10 | |
| Je comprends toute a fait que Jack veut garder son code pour lui et il a raison et je ne vois aucune problème avec ça, et a mon avis ça nous empêche pas du tout pour donner un peu plus de prestige et popularité et ainsi obtenir plus d'utilisateurs de Panoramic, non?
Je trouve très dommage que le forum anglais est quasi mort. Il y a des panoramiciens qui essaient d'avoir Panoramic parmi les autres "dialectes" de basic dans des revues et autres sites internet, mais le monde ne semble pas encore très intéressé, car ils sont ignorants.
Je crois que quelques jolis exemples du potentiel de Panoramic peut ouvrir des yeux. (Bien sur, on pourrait aussi faire un gratuiciel de Panorabrique.) | |
| | | carpathe
Nombre de messages : 14 Age : 73 Localisation : Pres Toulouse Date d'inscription : 28/02/2012
| Sujet: Jicehel viens tu de naitre? Ven 2 Mar 2012 - 16:38 | |
| Le forum anglais est quasi mort! En voila une bonne nouvelle. Parceque je peux te dire que si les americains mettent le nez dans nos affaires, Jack pourra aller se coucher. Tu veux plus de d'utilisateurs? Va donc sur les forums 'Linux'ou 'python', tu va savoir ce que le mot capharnaum veux dire. Moi je ne tiens pas a parcourir dix mille pages.Sans compter que la gestion croit avec le volume.Pour ce qui est du gratuiciel. Je te conseille de lire attentivement les docs wikipedia sur les:'Creatives commons' et sur la 'gnu gpl'. Tu va peut etre comprendre pas mal de choses.A+ | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 16:42 | |
| Wouah, et dire que ce petit programme est basé sur l'exemple disponiible sur la page Panoramic de Jack et que je l'ai "personnalisé" en y passant quelques heures pendant deux fin de soirées pour le faire correspondre à mon casse-briques Ca illustre bien qu'il est vraiment facile de faire des petits programmes sympas en Panoramic. En tout cas je suis flatté que vous pensiez que cela puisse être distribuable. A la base, j'ai juste voulu coder un petit jeu pour répondre à JL35 qui me disait que cela faisait longtemps que je n'avais pas posté un code !! ^^ J'ai pensé à mon petit Pong comme je voulais en faire un casse brique, mais pas an ASCII pour arréter de donner l'image d'un logiciel des années 80 (je ne voulais pas contribuer à l'image, par ce que ce n'est pas par ce que j'aime bien ce côté retro, que Panoramic ne sait faire que ça ) | |
| | | carpathe
Nombre de messages : 14 Age : 73 Localisation : Pres Toulouse Date d'inscription : 28/02/2012
| Sujet: Erreur de personne Jicehel pour Lodchjo Ven 2 Mar 2012 - 16:43 | |
| | |
| | | Invité Invité
| Sujet: Re: Panorabrique Ven 2 Mar 2012 - 18:35 | |
| - Citation :
- Je doit te mettre en garde.Jack n'ouvre pas son code,moi j'en connais la raison,que je ne peut pas te communiquer,puisque lui meme ne le veux pas.Je te certifie,qu'il est dans son interet,et dans le notre,que"Panoramic"
- Citation :
- quasi mort! En voila une bonne nouvelle. Parceque je peux te dire que si les americains mettent le nez dans nos affaires, Jack pourra aller se coucher.
Je suis désolé, mais je ne comprends plus ce forum. Ce fut agréable auparavant, mais depuis quelque temps, certains nouveaux qui s'inscrivent ou se réinscrivent ont des propos bizarres. Ils bénéficient d'un langage gratuit, pour lequel ils n'ont rien fait, et ils estiment qu'on doit tout leur donner. Qu'ont-ils donnés eux? Dans la vie j'ai constaté qu'il y avait au moins deux sortes de personnes. Ceux qui aident, ou qui donnent, et ceux qu'ils estiment que tout ce que fait l'autre, c'est pour eux (et avec l'ingratitude avec). Y aurait-il des personnes d'un autre forum pour un autre langage qui viendrait ici pour démolir Panoramic? D'où ils viennent ces gens? Où étaient-ils avant? On peut savoir? Et pour les autres? Chacun a son centre d'intérêt, j'en conviens. Mais combien de fois j'ai laissé un code de côté quand je pouvais pour jeter un oeil sur celui d'un autre qui proposait le sien, alors que je n'étais pas vraiment intéressé. Et cela par politesse. Car je sais par expérience qu'ignorer le travail d'un autre, c'est vraiment pire qu'une engueulade. C'est comme si vous le considérez comme un moins que rien. Il y a quelqu'un qui doit se sentir seul dans son coin, je pense à Nicola et je me tate pour lui tenir compagnie. J'espère que pour Jack, les choses vont s'améliorer. J'en arrive à penser qu'il serait bon qu'il y ait un MD qui vienne mettre ses pieds ici. Qu'elle dommage de d'avoir des propos négatifs, et être obligé de devoir intervenir pour remettre un peu d'ordre, ou pour que la sérénité revienne. |
| | | carpathe
Nombre de messages : 14 Age : 73 Localisation : Pres Toulouse Date d'inscription : 28/02/2012
| Sujet: Reponse au désolé Ven 2 Mar 2012 - 19:44 | |
| Mon cher désolé,quand on ne comprend pas,on se tait,on écoute,on regarde,on analyse les faits et les propos.Tu veux savoir qui je suis et d'ou je viens.Je vais te le dire:Je suis celui qui par les conseils avisés de quelqu'un qui sait beaucoup de choses,va dissuader quelqu'un de faire une enorme bétise.Qui va à coup sur lui couter cher ,car il n'a pas tenu compte d'un premier avertissement.Je doute que cette description t'apporte éclaircissement.Car tu n'a pas analysé,ni les faits,ni les propos.D'ou je viens,ça n'a pas grand interet.Sache seulement une chose,c'est que j'oeuvre pour le bien.Et que j'ai la plus grande admiration pour le projet de Jack.J'espere que cela te rassure.Sache également qu'une fréquentation excessive du web rend parano.Reste calme et bois frais.A+ | |
| | | Contenu sponsorisé
| Sujet: Re: Panorabrique | |
| |
| | | | Panorabrique | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |