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
» Form(résolu)
Un peu de 3D en vacances ! Emptypar leclode Hier à 17:59

» trop de fichiers en cours
Un peu de 3D en vacances ! Emptypar Marc Hier à 11:42

» Bataille navale SM
Un peu de 3D en vacances ! Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Une calculatrice en une ligne de programme
Un peu de 3D en vacances ! Emptypar jean_debord Ven 26 Avr 2024 - 8:01

» Gestion d'un système client-serveur.
Un peu de 3D en vacances ! Emptypar Pedro Jeu 25 Avr 2024 - 19:31

» Les maths du crocodile
Un peu de 3D en vacances ! Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Un peu de 3D en vacances ! Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Un peu de 3D en vacances ! Emptypar Froggy One Mer 24 Avr 2024 - 18:38

» Dessine-moi une galaxie
Un peu de 3D en vacances ! Emptypar jjn4 Lun 22 Avr 2024 - 13:47

» Erreur END_SUB
Un peu de 3D en vacances ! Emptypar jjn4 Lun 22 Avr 2024 - 13:43

» Bug sur DIM_LOCAL ?
Un peu de 3D en vacances ! Emptypar papydall Dim 21 Avr 2024 - 23:30

» 2D_fill_color(résolu)
Un peu de 3D en vacances ! Emptypar leclode Sam 20 Avr 2024 - 8:32

» Consommation gaz électricité
Un peu de 3D en vacances ! Emptypar leclode Mer 17 Avr 2024 - 11:07

» on_key_down (résolu)
Un peu de 3D en vacances ! Emptypar leclode Mar 16 Avr 2024 - 11:01

» Sous-programme(résolu)
Un peu de 3D en vacances ! Emptypar jjn4 Jeu 4 Avr 2024 - 14:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2024
LunMarMerJeuVenSamDim
1234567
891011121314
15161718192021
22232425262728
2930     
CalendrierCalendrier
Le Deal du moment :
Jeux, jouets et Lego : le deuxième à ...
Voir le deal

 

 Un peu de 3D en vacances !

Aller en bas 
4 participants
AuteurMessage
The Gamer

The Gamer


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

Un peu de 3D en vacances ! Empty
MessageSujet: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptyJeu 30 Juil 2015 - 22: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
http://pierrehardy.pagesperso-orange.fr/
silverman

silverman


Nombre de messages : 968
Age : 51
Localisation : Picardie
Date d'inscription : 18/03/2015

Un peu de 3D en vacances ! Empty
MessageSujet: Re: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptyLun 3 Aoû 2015 - 9: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 - 8:00, édité 1 fois
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Un peu de 3D en vacances ! Empty
MessageSujet: Re: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptyLun 3 Aoû 2015 - 11: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
Jicehel

Jicehel


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

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

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

The Gamer


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

Un peu de 3D en vacances ! Empty
MessageSujet: Re: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptySam 8 Aoû 2015 - 12: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
http://pierrehardy.pagesperso-orange.fr/
The Gamer

The Gamer


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

Un peu de 3D en vacances ! Empty
MessageSujet: Avec chainage   Un peu de 3D en vacances ! EmptyVen 21 Aoû 2015 - 23: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
http://pierrehardy.pagesperso-orange.fr/
Jean Claude

Jean Claude


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

Un peu de 3D en vacances ! Empty
MessageSujet: Re: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptySam 22 Aoû 2015 - 8:14

Gros travail,

J'ai hâte de voir la suite.

A+
Revenir en haut Aller en bas
Jicehel

Jicehel


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

Un peu de 3D en vacances ! Empty
MessageSujet: Re: Un peu de 3D en vacances !   Un peu de 3D en vacances ! EmptySam 22 Aoû 2015 - 9: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
Contenu sponsorisé





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

Revenir en haut Aller en bas
 
Un peu de 3D en vacances !
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: