Jicehel
Nombre de messages : 5947 Age : 51 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Version du 17 novembre 2014 Lun 17 Nov 2014 - 14:59 | |
| Jack, j'ai voulu tester les corection effectuer sur les instructions 2D et en profiter pour tester les SUB comme ça marche, mais je n'avais pas lu qu'il y avait un nombre limité de sub sur la version de démo (j'avais lu pour les objets, mais pas pour les sub...) Je mets la version du casse brique modifié (objet "pleins" + utilisation de subs) Sans compter, j'ai utilisé plus de 10 subs. Je pourrais le modifier pour que ça tienne à moins de 10, mais j'en profite pour te demander si tu ne pourrais pas passer la limite à 20 pour le nombre d'objets et de sub - Code:
-
' Panorabric la version Android de test (limitée à 10 objets) ' Prevu pour Samsung S3 ' Resolution de l'écran 600 x 380
label clic,fin, boucle_principale
' Déclarations dim i,j,c dim h,l : h=600: l=380 dim x_r , y_r, hauteur_r, largeur_r : ' Variables de la raquette dim hauteur_b, largeur_b : hauteur_b = 8 : largeur_b=22 : ' dimension des briques dim Nb_lignes, Nb_briques_restantes : ' variables pour la gestion des briques dim Nb_b_ligne : Nb_b_ligne = int((l - 60)/(largeur_b+5)) dim xb, yb, r : ' Variables de la balle dim x_ball,y_ball, r_ball, n_ball : r_ball = 10 dim vies : vies = 3 dim score : score = 0 dim objet%, nom_couleur$ 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 dim marge_cote : marge_cote = 8 dim marge_haut : marge_haut = 30 dim hauteur_menu : hauteur_menu = 100
height 0, h: width 0,l caption 0, "PANORABRIC Android - V1.0" border_small 0 : i = h - hauteur_menu + 20 button 1 : hide 1 : ' Creation du bouton gauche top 1, i : left 1,10 : caption 1,"<" on_click 1,clic button 2 : hide 2 : ' Creation du bouton droite top 2, i : left 2,50+width(1) : caption 2,">" on_click 2,clic button 3 : hide 3 : ' Creation du bouton quitter top 3, i : left 3,l-width(3)-28 : caption 3,"Quitter" on_click 3,clic timer 4
' Initialisation objet% = 5 : ' On prend 3 objets hauteur_r = 10 : largeur_r=60 y_r = h-120-hauteur_r
data "0 - Noir", 0, 0, 0, "1 - Blanc", 255,255,255 data "2 - couleur de fond - kaki foncé", 155,155, 55 data "3 - Kaki", 180,180,80, "4 - gris foncé", 80, 80, 80 data "5 - bleu" ,80, 80,215, "6 - rouge", 215, 80, 80 data "7 - vert", 80,215, 80, "8 - gris", 155,133,155 data "9 - vert clair", 100,215,100, "10 - violet", 215, 80,215 data "11 - kaki clair", 215,215, 80, "12 - bleu cyan", 80,215,215 data "13 - bleu moyen", 100,100,215, "14 - vert moyen",55,215,133 data "15 - violet",133, 55,215, "16 - marron clair",215,133, 55 data "17 - bleu nuit", 55, 55,133
for i = 1 to Nb_couleur% read nom_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 h = h - hauteur_menu height ecran%, h: width ecran%,l-18 2D_target_is ecran%: objet% = objet% +1
' 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,8,0 : 2d_rectangle 8,0,l-23,20 : 2d_rectangle l-23,h,l-15,0
aff_vies% = objet% : alpha aff_vies% color aff_vies%, t_c(3,1), t_c(3,2), t_c(3,3) top aff_vies%,2 : left aff_vies%, 30 width aff_vies%,140 : 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%,2 : left aff_score%, 200 width aff_score%,140 : caption aff_score%, "Score = "+str$(score) objet% = objet% + 1
Init_niveau()
' timer pour deplacements timer_interval 4,50 : on_timer 4,boucle_principale show 1: show 2: show 3 end
Sub Dessine_raquette() 2d_pen_width 2 2d_pen_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-3,y_r+hauteur_r-3 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 2d_pen_width 1 End_sub
Sub Efface_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 End_sub
Sub init_niveau() Nb_lignes = 6: Dessine_briques() x_r = 0.5 * (l - largeur_r - 35) Dessine_raquette() Lance_balle() End_sub
Sub 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 = 15 + (largeur_b + 5) * (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 2d_pen_color t_br(k,2), t_br(k,3), t_br(k,4) : trace_brique() next j next i free k End_sub
Sub trace_brique() 2d_pen_width 3 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 2d_pen_width 1 End_sub
Sub efface_brique() 2d_pen_width 3 2d_pen_color t_c(2,1), t_c(2,2), t_c(2,3) xb = 15 + (largeur_b + 5) * (i-1) : yb = 25 + (hauteur_b + 15) * (temp) 2d_rectangle xb,yb,xb+largeur_b+1, yb+hauteur_b+1 2d_pen_width 1 End_sub
Sub Lance_balle() y_ball = y_r - 25 : x_ball = int(rnd(l-60)) + 15 : r=1 End_sub
Sub efface_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_circle x_ball+r_ball, y_ball+r_ball, r_ball End_sub
Sub trace_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 End_sub
Sub recommence() vies = 3 : score = 0 : Efface_raquette() Efface_balle() : Init_niveau() timer_on 4 End_sub
Sub Deplace_balle() If x_ball> l-29 -2*r_ball x_ball = l-29 -2*r_ball : c = 2 Else If x_ball < 12 Then x_ball = 12 : c = 1 End_if If y_ball < 26 Then y_ball = 26 : r = 2 If c<2 Then x_ball = x_ball + 5 : Else: x_ball = x_ball - 5 If r<2 Then y_ball = y_ball - 5 : Else: y_ball = y_ball + 5 End_sub
boucle_principale: if variable("temp") = 0 then dim temp timer_off 4 Efface_balle() ' Teste si collision avec une brique if (r= 1 and y_ball < (25 + hauteur_b + (hauteur_b + 15) * Nb_lignes)) i = int((x_ball - 15) / (largeur_b + 5))+1 temp = int ((y_ball -25 -hauteur_b) / (hauteur_b +15))+1 j = (temp-1)*Nb_b_ligne +i if j <= (Nb_lignes*Nb_b_ligne) and j>0 if t_br(j,1) = 1 r=2 : t_br(j,1) = 0 Efface_brique() Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(j,5) 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)) j = (temp-1)*Nb_b_ligne +i if j <= (Nb_lignes*Nb_b_ligne) and j>0 if t_br(j,1) = 1 r=1 : t_br(j,1) = 0 Efface_brique() Nb_briques_restantes = Nb_briques_restantes - 1 : score = score + t_br(j,5) end_if end_if end_if end_if
' Trace la balle Deplace_balle() Trace_balle()
' Verifie si la balle touche la raquette if r=2 and y_ball > y_r - 2 * r_ball - 4 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_balle() wait 100: 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_balle() : Init_niveau() end_if if vies < 1 then goto fin free temp timer_on 4 return
clic: if clicked(1) = 1 Efface_raquette() : ' Efface ancienne raquette x_r = x_r - (largeur_r / 2) : ' Mise à jour de la position de la raquette suite à l'appuie sur la flèche if x_r < 10 then x_r=10 : ' Mais on ne doit pas dépasser les bords !! Dessine_raquette() : ' Actualise l'affichage de la raquette else if clicked(3) = 1 goto fin else Efface_raquette() : ' Efface ancienne raquette x_r = x_r + (largeur_r / 2) : ' Mise à jour de la position de la raquette suite à l'appuie sur la flèche if x_r > l - largeur_r-26 then x_r = l - largeur_r-26 : ' Mais on ne doit pas dépasser les bords !! Dessine_raquette() : ' Actualise l'affichage de la raquette end_if end_if return
fin: timer_off 4 terminate
| |
|