FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» un nouveau editeur panobasic
par Jean Claude Aujourd'hui à 10:18

» Compilateur FBPano
par jean_debord Aujourd'hui à 10:07

» Le compilateur.
par Pedro Alvarez Aujourd'hui à 8:36

» COMPILATEUR V 0.9 beta 7 du 10 aout 2017
par Jack Hier à 20:23

» Pb 16 (en analyse): ON_CLOSE plante à l'exécution
par Jack Hier à 20:00

» Pb 15 (en analyse): TIMER_ON plante à l'exécution
par Jack Hier à 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

» Carte de France des régions
par Yannick Sam 12 Aoû 2017 - 21:33

» Pb 14 (en analyse): PRINT_LOCATE plante à l'exécution
par Jack Ven 11 Aoû 2017 - 22:37

» Petit avertissement [Mots réservés]
par papydall Ven 11 Aoû 2017 - 13:45

» Distances sur plan
par JL35 Jeu 10 Aoû 2017 - 21:29

» Tracé : Triangle, Carrée, Dents de scie, Sinusoïde redressée
par papydall Jeu 10 Aoû 2017 - 14:52

» Troncature dans une image
par JL35 Mer 9 Aoû 2017 - 13:45

» A chacun son point de vue
par papydall Mar 8 Aoû 2017 - 17:20

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 Un peu de 3D en vacances !

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
The Gamer

avatar

Nombre de messages : 110
Age : 23
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

MessageSujet: Un peu de 3D en vacances !   Jeu 30 Juil 2015 - 23:56

cheers

Salut a tous !

Petit programme pondu en vitesse (surement rempli d'erreurs) pendant un jour de pluie, m'empêchant d'aller randonner. C'est une ébauche concernant le déplacement d'un personnage. J'ai repris mon code de déplacement FPS pour le mouvement de la caméra. Il suffit d'appuyer sur la touche 'A' pour mettre en mouvement le peronnage. 'Echap' pour quitter.

Code:
' Merci Silverman pour ton code sur la position de la souris

' ======= Chargement des librairies ============
dll_on "user32"


' ======= Déclaration des label =======
' Positionnnement de la souris
label Programme_principal,rotation_decentree



' ======= Déclaration des variables  =======

' Variables liées au personnage
dim cube_1_angle, cube_2_angle,cube_3_angle, cube_4_angle
dim vit_rotation_1, vit_rotation_2,vit_rotation_3,vit_rotation_4

' Paramètres de l'affichage
dim demi_ecran_x%
dim demi_ecran_y%

' Comportement de la souris
dim souris_mouv_x
dim souris_mouv_y
dim init_pos_souris
dim position_souris

' Repère sphérique et cartésiens pour le pointage caméra
dim sph_point_teta
dim sph_point_phi
dim sph_point_R

dim cart_point_x
dim cart_point_y
dim cart_point_z

' Repère cartesien pour la position de la caméra
dim cam_pos_x
dim cam_pos_y
dim cam_pos_z
dim cam_ampli
dim cam_osci
dim cam_freq

' Repère sphérique + variables nécéssaire a la rotation de la caméra pendant le chargement
dim cam_pos_phi

' Sensibilité de la souris
dim sensi


' Compteurs pour boucle utilisés de multiples fois
dim i
dim j

' ======= Initialisation des variables  =======

' Position/sensibilité du pointeur
sph_point_R = 3
sph_point_teta=0
sph_point_phi=0
sensi=0.5

' Position de la caméra
cam_pos_x = 0
cam_pos_y = 0
cam_pos_phi = 0

demi_ecran_x% = screen_x/2
demi_ecran_y% = screen_y/2

' Initialisation des variables  du personnage
cube_1_angle = -135
cube_2_angle = -45
cube_3_angle = -45
cube_4_angle = -135
vit_rotation_1 = 8
vit_rotation_2 = -8
vit_rotation_3 = -8
vit_rotation_4 = 8





' ======= Initialisation de l'affichage  =======


' Création de la fenetre
caption 0,"Test de caméra 3D"
border_hide 0
' width 0,screen_x
' height 0,screen_y
full_space 0

' Création de la scene 3d
scene3d 1
color 1,0,0,0
full_space 1



' === Création de l'environnement 3D de déplacement de la caméra ===
' Légende des couleur
' x: Rouge
' y: vert
' z: Bleu

' Création du personnage
' Jambes
3d_box 1,0.2,0.2,1
3d_position 1,-0.3,0,-0.5
3d_x_rotate 1,(cube_1_angle/180)*3.1416

3d_box 2,0.2,0.2,1
3d_position 2,0.3,0,-0.5
3d_x_rotate 2,(cube_1_angle/180)*3.1416

' Bras
3d_box 3,0.1,0.1,0.5
3d_position 3,-0.3,0.6,0
3d_x_rotate 3,(cube_3_angle/180)*3.1416

3d_box 4,0.1,0.1,0.5
3d_position 4,0.3,0.6,0
3d_x_rotate 4,(cube_4_angle/180)*3.1416

' Corps
3d_box 5,0.6,1,0.4
3d_position 5,0,0.4,0

3d_cube 6,0.2
3d_position 6,0,01,0



' === PROGRAMME PRINCIPAL : On demande a l'utilisateur de confirmer le début du jeu ====

 ' Initialisation position souris
 cursor_hide 1
 init_pos_souris = 1
 position_souris = dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)
 ' Activation du timer de programme principal
 timer 30
 timer_interval 30,5
 on_timer 30,Programme_principal
 timer 2
 timer_interval 2,20
 on_timer 2,rotation_decentree

 timer_on 2

end

' ======= Ecriture des sous-programmes =======


' === Programme principal ===

Programme_principal:

' Détection des mouvements de souris
 if init_pos_souris=1
  init_pos_souris=0
  souris_mouv_x=mouse_x_position(1)
  souris_mouv_y=mouse_y_position(1)
 end_if

' Réinitialisation de la position curseur et calcul de son déplacement
 position_souris= dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)
 sph_point_phi = sph_point_phi-(mouse_x_position(1)-souris_mouv_x)*sensi
 sph_point_teta=sph_point_teta+(mouse_y_position(1)-souris_mouv_y)*sensi

' Vérrouillage de l'axe vertical
 if sph_point_teta > 85
  sph_point_teta=85
 end_if
 if sph_point_teta < -85
  sph_point_teta=-85
 end_if
 
 ' Detection des cmandes clavier
 if scancode = 27
 terminate
 end_if


 ' Calcul des coordonnées du pointeur 3D
 cart_point_x = sph_point_R*cos(sph_point_teta*(3.141592654/180))*cos(sph_point_phi*(3.141592654/180))
 cart_point_y = sph_point_R*cos(sph_point_teta*(3.141592654/180))*sin(sph_point_phi*(3.141592654/180))
 cart_point_z = sph_point_R*sin(sph_point_teta*(3.141592654/180)) + 0.3*cam_ampli*sin(cam_osci*(3.141592654/180))

 ' Actualisation affichage
 cam_position cart_point_x,cart_point_z,cart_point_y
 light_position cart_point_x+1,cart_point_z+1,cart_point_y+1

return

rotation_decentree:

' Détection code des touches
if scancode=27
timer_off 2
terminate
end_if

' Orientation du mouvement des jambes
if cube_1_angle < -135
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_1_angle > -45
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_2_angle < -135
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_2_angle > -45
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_3_angle < -135
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_3_angle > -45
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_4_angle < -135
vit_rotation_4 = vit_rotation_4*-1
end_if

if cube_4_angle > -45
vit_rotation_4 = vit_rotation_4*-1
end_if

' Calcul des paramètres d'animation

if scancode=65
cube_1_angle = cube_1_angle + vit_rotation_1
cube_2_angle = cube_2_angle + vit_rotation_2
cube_3_angle = cube_3_angle + vit_rotation_3
cube_4_angle = cube_4_angle + vit_rotation_4
end_if

' Actualisation de l'affichage
3d_x_rotate 1,cube_1_angle
3d_z_position 1,0.5*cos((cube_1_angle/180)*3.1416)
3d_y_position 1,0.5*sin((cube_1_angle/180)*3.1416)

3d_x_rotate 2,cube_2_angle
3d_z_position 2,0.5*cos((cube_2_angle/180)*3.1416)
3d_y_position 2,0.5*sin((cube_2_angle/180)*3.1416)

3d_x_rotate 3,cube_3_angle
3d_z_position 3,0.25*cos((cube_3_angle/180)*3.1416)
3d_y_position 3,0.25*sin((cube_3_angle/180)*3.1416)+0.6

3d_x_rotate 4,cube_4_angle
3d_z_position 4,0.25*cos((cube_4_angle/180)*3.1416)
3d_y_position 4,0.25*sin((cube_4_angle/180)*3.1416)+0.6


return

Voila aussi le code sans mouvement de la caméra, ca pourra servir aux développeurs 3d:

Code:
' Déclaration des variables
dim cube_1_angle, cube_2_angle,cube_3_angle, cube_4_angle
dim vit_rotation_1, vit_rotation_2,vit_rotation_3,vit_rotation_4

' Déclaraton des label
Label rotation_decentree

' Initialisation des variables
cube_1_angle = -135
cube_2_angle = -45
cube_3_angle = -45
cube_4_angle = -135
vit_rotation_1 = 8
vit_rotation_2 = -8
vit_rotation_3 = -8
vit_rotation_4 = 8

' Configration fenetre
full_space 0

' Configuration scene3d
scene3d 1
full_space 1
color 1,0,0,0
axes_show

' Configuration de la caméra
cam_position 2,1,1

' POsitionement de la lumière
light_position 5,5,5

' Création des cube de travail
' Jambes
3d_box 1,0.2,0.2,1
3d_position 1,-0.3,0,-0.5
3d_x_rotate 1,(cube_1_angle/180)*3.1416

3d_box 2,0.2,0.2,1
3d_position 2,0.3,0,-0.5
3d_x_rotate 2,(cube_1_angle/180)*3.1416

' Bras
3d_box 3,0.1,0.1,0.5
3d_position 3,-0.3,0.6,0
3d_x_rotate 3,(cube_3_angle/180)*3.1416

3d_box 4,0.1,0.1,0.5
3d_position 4,0.3,0.6,0
3d_x_rotate 4,(cube_4_angle/180)*3.1416

' Corps
3d_box 5,0.6,1,0.4
3d_position 5,0,0.4,0

3d_cube 6,0.2
3d_position 6,0,01,0

' Paramétrage du timer d'animation
timer 2
timer_interval 2,20
on_timer 2,rotation_decentree

' PROGRAMME PRINCIPAL

' Activation du timer d'animation
timer_on 2

end

rotation_decentree:

' Détection code des touches
if scancode=27
timer_off 2
terminate
end_if

' Orientation du mouvement des jambes
if cube_1_angle < -135
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_1_angle > -45
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_2_angle < -135
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_2_angle > -45
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_3_angle < -135
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_3_angle > -45
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_4_angle < -135
vit_rotation_4 = vit_rotation_4*-1
end_if

if cube_4_angle > -45
vit_rotation_4 = vit_rotation_4*-1
end_if

' Calcul des paramètres d'animation


cube_1_angle = cube_1_angle + vit_rotation_1
cube_2_angle = cube_2_angle + vit_rotation_2
cube_3_angle = cube_3_angle + vit_rotation_3
cube_4_angle = cube_4_angle + vit_rotation_4

' Actualisation de l'affichage
3d_x_rotate 1,cube_1_angle
3d_z_position 1,0.5*cos((cube_1_angle/180)*3.1416)
3d_y_position 1,0.5*sin((cube_1_angle/180)*3.1416)

3d_x_rotate 2,cube_2_angle
3d_z_position 2,0.5*cos((cube_2_angle/180)*3.1416)
3d_y_position 2,0.5*sin((cube_2_angle/180)*3.1416)

3d_x_rotate 3,cube_3_angle
3d_z_position 3,0.25*cos((cube_3_angle/180)*3.1416)
3d_y_position 3,0.25*sin((cube_3_angle/180)*3.1416)+0.6

3d_x_rotate 4,cube_4_angle
3d_z_position 4,0.25*cos((cube_4_angle/180)*3.1416)
3d_y_position 4,0.25*sin((cube_4_angle/180)*3.1416)+0.6


return


J'espère que cet inutilitaire très basique vous fera tripper Razz. Ce qui est sur c'est que j'ai bien révisé ma trigonométrie Wink

A bientôt !!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pierrehardy.pagesperso-orange.fr/
silverman

avatar

Nombre de messages : 464
Age : 45
Localisation : Picardie
Date d'inscription : 19/03/2015

MessageSujet: Re: Un peu de 3D en vacances !   Lun 3 Aoû 2015 - 10:26

Salut The Gamer,

bien vu pour le déplacement de l'axe de rotation des membres!
Chaine tes objets ensemble, le positionnement du personnage sera plus simple à gérer.


Dernière édition par silverman le Mar 4 Aoû 2015 - 9:00, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un peu de 3D en vacances !   Lun 3 Aoû 2015 - 12:58

Argh, j'ai honte, je n'ai pas testé tout de suite et après j'ai zappé ...
Je teste ce soir ... Shame on me ...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un peu de 3D en vacances !   Lun 3 Aoû 2015 - 21:21

oui jolie animation. Les mouvements de la camera sont très fluides pour le moment.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
The Gamer

avatar

Nombre de messages : 110
Age : 23
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

MessageSujet: Re: Un peu de 3D en vacances !   Sam 8 Aoû 2015 - 13:21

Jevaise vais etudier le chainage pour voir si c'est possible de gerer une rotation du personnage sans trop se compliquer en calculant des rotations relative.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pierrehardy.pagesperso-orange.fr/
The Gamer

avatar

Nombre de messages : 110
Age : 23
Localisation : Toulouse (31)
Date d'inscription : 11/05/2010

MessageSujet: Avec chainage   Sam 22 Aoû 2015 - 0:58

Et voila un petit programme de déplacement a la 3eme personnage avec chainage:

Code:
' Merci Silverman pour ton code sur la position de la souris

' ======= Chargement des librairies ============
dll_on "user32"


' ======= Déclaration des label =======
' Positionnnement de la souris
label Programme_principal,mouvement_personnage



' ======= Déclaration des variables  =======

' Variables diverses
dim pi

' Variables liées au personnage
' ==> Annimation du corps
dim cube_1_angle, cube_2_angle,cube_3_angle, cube_4_angle
dim vit_rotation_1, vit_rotation_2,vit_rotation_3,vit_rotation_4
dim corps_angle_y,corps_pos_y, corps_pos_z, corps_pos_x, vit_depl


' Saut du personnage
dim progr_saut
dim hauteur_saut
dim vit_saut
dim declenche_saut

' Paramètres de l'affichage
dim demi_ecran_x%
dim demi_ecran_y%

' Comportement de la souris
dim souris_mouv_x
dim souris_mouv_y
dim init_pos_souris
dim position_souris

' Repère sphérique et cartésiens pour le pointage caméra
dim sph_point_teta
dim sph_point_phi
dim sph_point_R

dim cart_point_x
dim cart_point_y
dim cart_point_z

' Repère cartesien pour la position de la caméra
dim cam_pos_x
dim cam_pos_y
dim cam_pos_z
dim cam_ampli
dim cam_osci
dim cam_freq

' Repère sphérique + variables nécéssaire a la rotation de la caméra pendant le chargement
dim cam_pos_phi

' Sensibilité de la souris
dim sensi


' Compteurs pour boucle utilisés de multiples fois
dim i
dim j

' ======= Initialisation des variables  =======

' Position/sensibilité du pointeur
sph_point_R = 3
sph_point_teta=0
sph_point_phi=0
sensi=-0.5

' Position de la caméra
cam_pos_x = 0
cam_pos_y = 0
cam_pos_phi = 0

demi_ecran_x% = screen_x/2
demi_ecran_y% = screen_y/2

' Initialisation des variables  du personnage
cube_1_angle = -135
cube_2_angle = -45
cube_3_angle = -45
cube_4_angle = -135
vit_rotation_1 = 8
vit_rotation_2 = -8
vit_rotation_3 = -8
vit_rotation_4 = 8
corps_angle_y = 0

' Saut du personnage
progr_saut = 0
hauteur_saut = 2
vit_saut = 0.15
declenche_saut = 0

' Mouvement du personnage
vit_depl = 0.1

' Position du personnage
corps_pos_x = 0
corps_pos_y = 1.1
corps_pos_z = 0

' Variables diverses
pi = 3.141592654

' ======= Initialisation de l'affichage  =======

' Création de la fenetre
caption 0,"Test de caméra 3D"
border_hide 0
' width 0,screen_x
' height 0,screen_y
full_space 0

' Création de la fenetre de débug
form 20
print_target_is 20


' Création de la scene 3d
scene3d 1
color 1,0,0,0
full_space 1
axes_show



' === Création de l'environnement 3D de déplacement de la caméra ===
' Légende des couleur
' x: Rouge
' y: vert
' z: Bleu

' Création du personnage
' Jambes
3d_box 1,0.2,0.2,1
3d_position 1,-0.3,-0.5,-0.5
3d_x_rotate 1,(cube_1_angle/180)*3.1416
3d_color 1,0,0,200

3d_box 2,0.2,0.2,1
3d_position 2,0.3,-0.5,-0.5
3d_x_rotate 2,(cube_1_angle/180)*3.1416
3d_color 2,0,0,200

' Bras
3d_box 3,0.1,0.1,0.5
3d_position 3,-0.3,0.1,0
3d_x_rotate 3,(cube_3_angle/180)*3.1416
3d_color 3,0,0,200

3d_box 4,0.1,0.1,0.5
3d_position 4,0.3,0.1,0
3d_x_rotate 4,(cube_4_angle/180)*3.1416
3d_color 4,0,0,200

' tete
3d_box 5,0.3,0.3,0.3
3d_position 5,0,0.80,0
3d_color 5,251,241,179

' Coup
3d_box 6,0.15,0.3,0.15
3d_position 6,0,0.6,0
3d_color 6,251,241,179

' Corps
3d_box 7,0.6,1,0.4
3d_position 7,0,corps_pos_y,0
3d_color 7,0,0,200

' Chainage de tous les menbres au tronc
for i=1 to 6
3d_chain i,7
next i

' Création du terrain
3d_plane 8
3d_scale 8,10,10,10
3d_x_rotate 8,90
3d_color 8,107,251,85

3d_cube 9,5
3d_position 9,5,0,-5
3d_color 9,217,151,75

3d_cube 10,5
3d_position 10,5,0,5
3d_color 10,217,151,75

3d_cube 11,5
3d_position 11,-5,0,-5
3d_color 11,217,151,75

3d_cube 12,5
3d_position 12,-5,0,5
3d_color 12,217,151,75




' === PROGRAMME PRINCIPAL : On demande a l'utilisateur de confirmer le début du jeu ====

 ' Initialisation position souris
 cursor_hide 1
 init_pos_souris = 1
 position_souris = dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)

 ' Création des timers
 timer 30
 timer_interval 30,20
 on_timer 30,Programme_principal


end

' ======= Ecriture des sous-programmes =======


' === Programme principal ===

Programme_principal:

' Détection des mouvements de souris
 if init_pos_souris=1
  init_pos_souris=0
  souris_mouv_x=mouse_x_position(1)
  souris_mouv_y=mouse_y_position(1)
 end_if

' Réinitialisation de la position curseur et calcul de son déplacement
 position_souris= dll_call2("SetCursorPos",demi_ecran_x%,demi_ecran_y%)
 sph_point_phi = sph_point_phi-(mouse_x_position(1)-souris_mouv_x)*sensi
 ' sph_point_teta=sph_point_teta+(mouse_y_position(1)-souris_mouv_y)*sensi
 sph_point_teta = 10

 ' Calcul de l'orientation du personnage par rapport a la caméra
 corps_angle_y = -1*sph_point_phi + 90


' Vérrouillage de l'axe vertical
 if sph_point_teta > 85
  sph_point_teta=85
 end_if
 if sph_point_teta < 10
  sph_point_teta=10
 end_if
 
 ' Commandes clavier
 
 ' arret programme
 if scancode=27
  timer_off 30
  terminate
 end_if
 
 ' zoom avant
 if scancode = 107 and sph_point_R > 2
 sph_point_R = sph_point_R - 0.05
 end_if
 
 ' zoom arrière
 if scancode = 109 and sph_point_R < 10
 sph_point_R = sph_point_R + 0.05
 end_if
 
 ' avancer
 if scancode = 38
 gosub mouvement_personnage
 end_if
 
 ' Sauter
 if scancode = 32 and declenche_saut=0
  declenche_saut = 1
 end_if
 
 ' Positionnement vertical du personnage pour le saut
  if declenche_saut = 1
  progr_saut = progr_saut + vit_saut
  if progr_saut < pi
  corps_pos_y =  1 + hauteur_saut * sin(progr_saut)
  3d_y_position 7,corps_pos_y
  print_locate 0,0
  print progr_saut
  else
  progr_saut = 0
  corps_pos_y = 1.1
  declenche_saut = 0
  3d_y_position 7,corps_pos_y
  end_if
  end_if

 ' Calcul des coordonnées du pointeur 3D
 cart_point_x = sph_point_R*cos(sph_point_teta*(pi/180))*cos(sph_point_phi*(pi/180)) + corps_pos_x
 cart_point_z = sph_point_R*cos(sph_point_teta*(pi/180))*sin(sph_point_phi*(pi/180)) + corps_pos_z
 cart_point_y = sph_point_R*sin(sph_point_teta*(pi/180)) + 0.3*cam_ampli*sin(cam_osci*(pi/180))+corps_pos_y

 ' Actualisation affichage
 cam_position cart_point_x,cart_point_y,cart_point_z
 light_position cart_point_x,5,cart_point_z
 3d_y_rotate 7,corps_angle_y
 
 ' Pointage de la caméra
 point_object 6

return

mouvement_personnage:

' marche du personnage
cube_1_angle = cube_1_angle + vit_rotation_1
cube_2_angle = cube_2_angle + vit_rotation_2
cube_3_angle = cube_3_angle + vit_rotation_3
cube_4_angle = cube_4_angle + vit_rotation_4

' Orientation du mouvement des jambes
if cube_1_angle < -135
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_1_angle > -45
vit_rotation_1 = vit_rotation_1*-1
end_if

if cube_2_angle < -135
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_2_angle > -45
vit_rotation_2 = vit_rotation_2*-1
end_if

if cube_3_angle < -135
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_3_angle > -45
vit_rotation_3 = vit_rotation_3*-1
end_if

if cube_4_angle < -135
vit_rotation_4 = vit_rotation_4*-1
end_if

if cube_4_angle > -45
vit_rotation_4 = vit_rotation_4*-1
end_if

' Actualisation de l'affichage
3d_x_rotate 1,cube_1_angle
3d_z_position 1,0.5*cos((cube_1_angle/180)*pi)
3d_y_position 1,0.5*sin((cube_1_angle/180)*pi)-0.4

3d_x_rotate 2,cube_2_angle
3d_z_position 2,0.5*cos((cube_2_angle/180)*pi)
3d_y_position 2,0.5*sin((cube_2_angle/180)*pi)-0.4

3d_x_rotate 3,cube_3_angle
3d_z_position 3,0.25*cos((cube_3_angle/180)*pi)
3d_y_position 3,0.25*sin((cube_3_angle/180)*pi)+0.25

3d_x_rotate 4,cube_4_angle
3d_z_position 4,0.25*cos((cube_4_angle/180)*pi)
3d_y_position 4,0.25*sin((cube_4_angle/180)*pi)+0.25

' Déplacement du corps sur la map
corps_pos_x = corps_pos_x + vit_depl*(corps_pos_x - cart_point_x)
corps_pos_z = corps_pos_z + vit_depl*(corps_pos_z - cart_point_z)
3d_x_position 7, corps_pos_x
3d_z_position 7, corps_pos_z

return

Comment utiliser le programme ?

ECHAP : Quitte le programme
FLECHES : Déplacement du personnage
SOURIS: Permet de viser le cap pour le déplacement du personnage
ESPACE: Le personnage saute lorsque l'on arrette de le faire avancer

NB @Klaus: On est obligé d'aretter de marcher pour. Voila pourquoi j'ai demandé s'il était possible de détecter une combinaison de touches.

Vous m'excuserez pour les couleurs justes affreuses pirat
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://pierrehardy.pagesperso-orange.fr/
Jean Claude

avatar

Nombre de messages : 4989
Age : 63
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Un peu de 3D en vacances !   Sam 22 Aoû 2015 - 9:14

Gros travail,

J'ai hâte de voir la suite.

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5849
Age : 45
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Un peu de 3D en vacances !   Sam 22 Aoû 2015 - 10:50

oui, en effet, avoir un bon moteur est l'une des bases d'un bon jeu, j'ai hate aussi de voir la suite et surtout ce que ça donnera à la fin...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Un peu de 3D en vacances !   

Revenir en haut Aller en bas
 
Un peu de 3D en vacances !
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Les inutilitaires-
Sauter vers: