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
» 3D_LINE How to ?
par papydall Aujourd'hui à 6:51

» mise a jour calculatrice
par joeeee2017 Hier à 23:00

» supprimé
par joeeee2017 Dim 15 Oct 2017 - 20:02

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» Convertisseur de base 10 de 2 à 36
par gigi75 Sam 14 Oct 2017 - 21:54

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» supprimé
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

» Mise à jour PANOMAND
par jean_debord Mar 26 Sep 2017 - 11:33

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
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 : 466
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 : 5857
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 : 5857
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 : 5031
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 : 5857
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 :: Les inutilitaires-
Sauter vers: