FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Panorabrique 3D Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Panorabrique 3D Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Panorabrique 3D Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Panorabrique 3D Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Panorabrique 3D Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Panorabrique 3D Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Panorabrique 3D Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Panorabrique 3D Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Panorabrique 3D Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Panorabrique 3D Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Panorabrique 3D Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Panorabrique 3D Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Panorabrique 3D Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Panorabrique 3D Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Panorabrique 3D Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment :
LEGO Icons 10331 – Le martin-pêcheur
Voir le deal
35 €

 

 Panorabrique 3D

Aller en bas 
2 participants
AuteurMessage
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panorabrique 3D Empty
MessageSujet: Panorabrique 3D   Panorabrique 3D EmptyDim 26 Fév 2012 - 1:50

Bon, après la version ASCII, 2D, forcément, je fais une version 3D du pong ...
Pour commencer voici le source dérivant de l'exemple présent sur la page des exemples de Panoramic.
Le programme est restreint à son minimum pour le moment, score et une vie.
Le score repart à 0 quand on perd la balle
PS: Somme toute, c'est plus simple à faire en 3D. C'est plus fluide et sans clignotement ...
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


Dernière édition par Jicehel le Ven 2 Mar 2012 - 0:54, édité 1 fois
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Panorabrique 3D Empty
MessageSujet: Re: Panorabrique 3D   Panorabrique 3D EmptyDim 26 Fév 2012 - 8:13

Bonjour Jicehel, Very Happy
Citation :
PS: Somme toute, c'est plus simple à faire en 3D. C'est plus fluide et sans clignotement ...
Je me souviens de quelqu'un qui il y a quelques temps avait peur de se lancer dans la 3d!!! lol!
Tu vois que ce n'est pas sorcier, et qu'il y a plein de choses sympa à faire en 3d! Wink cheers

Bon je retourne me coucher, car j'ai toujours un peu de fièvre encore, mais je reviens tout à l'heure avec une petite surprise!
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panorabrique 3D Empty
MessageSujet: Re: Panorabrique 3D   Panorabrique 3D EmptyDim 26 Fév 2012 - 9:59

C'est clair Bignono, ce n'est pas si compliqué une fois que l'on a compris un peu le principe. Après le fait que la taille soit relative, quand on ne se complique pas trop avec la caméra, c'est assez simple (voir même plus simple que la 2D, déjà parcequ'il n'y a pas à faire attention à si l'on est sur un picture ou un scene2D, une form ... mais là, c'est peut être par ce que je ne pratique plus assez...)

Bon, j'ai hâte de voir ta surprise
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Panorabrique 3D Empty
MessageSujet: Re: Panorabrique 3D   Panorabrique 3D EmptyVen 2 Mar 2012 - 0:55

Code du premier poste mis à jour avec le code pour gérer les briques et les vies Smile
Revenir en haut Aller en bas
Contenu sponsorisé





Panorabrique 3D Empty
MessageSujet: Re: Panorabrique 3D   Panorabrique 3D Empty

Revenir en haut Aller en bas
 
Panorabrique 3D
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Panorabrique
» Panorabrique pour Android

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Les jeux faits avec Panoramic-
Sauter vers: