| Un déplacement FPS en 3D | |
|
+4Jean Claude Jicehel Yannick The Gamer 8 participants |
Auteur | Message |
---|
The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Un déplacement FPS en 3D Mar 21 Avr 2015 - 12:15 | |
| Bonjour a tous, J'ai pas touché a Panoramic depuis deux ans et je me suis remotivé il y a quelque jours pour écrire un programme de déplacement dans un environnement 3D. C'est peu être le début d'un FPS ? Mais pour l'instant ca reste inutile. Je le partage car il peut vous interesser... - Code:
-
' ======= Déclaration des label ======= ' Positionnnement de la souris label position_souris
' ======= Déclaration des variables =======
' Comportement de la souris dim souris_x_init dim souris_x_comp dim souris_y_init dim souris_y_comp
' 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
' Sensibilité de la souris dim sensi
' Vitesse de déplacement dim vit_depl
' ======= Initialisation des variables ======= sph_point_R = 0.5 sph_point_teta=0 sph_point_phi=0 sensi=-0.05 cam_pos_x = 0 cam_pos_y = 0 vit_depl = 0.1
' ======= Initialisation de l'affichage =======
' Création de la fenetre caption 0,"Test de caméra 3D" full_space 0
' === Création de l'environnement 3D de déplacement de la caméra === ' Légende des couleur ' x: Rouge ' y: vert ' z: Bleu
scene3d 1 full_space 1 axes_show color 1,0,0,0 cursor_hide 1
3d_plane 2 3d_position 2,0,0,0 3d_load_texture 2,"terrain.bmp" 3d_x_rotate 2,90 3d_u_tile 2,5 3d_v_tile 2,5
3d_sphere 3,0.005 3d_color 3,255,0,0
' === FIN de la création de la map ===
' affichage de la fenetre de test commande form 10 caption 10,"test" height 10,90 width 10,60
' ======= PROGRAMME PRINCIPAL Création du timer de surveillance de la souris ======= timer 30 timer_interval 30,5 on_timer 30,position_souris
end
' ======= Ecriture des sous-programmes =======
' === Programme principal ===
position_souris:
' Surveillance du pointeur + position pointage print_target_is 10 print_locate 0,0 print sph_point_teta
' Test sur le comportement du pointeur ' Comportement horizontal if souris_x_init <> mouse_x_position(1) sph_point_phi = sph_point_phi-(mouse_x_position(1)-souris_x_init)*sensi end_if
' Comportement vertical if souris_y_init <> mouse_y_position(1) sph_point_teta=sph_point_teta+(mouse_y_position(1)-souris_y_init)*sensi if sph_point_teta > 24.8 sph_point_teta=24.8 end_if if sph_point_teta < 14.85 sph_point_teta=14.85 end_if end_if
' Test sur le comportement des touches du clavier if scancode=90 cam_pos_x = cam_pos_x + vit_depl*(cart_point_x-cam_pos_x) cam_pos_y = cam_pos_y + vit_depl*(cart_point_y-cam_pos_y) end_if
if scancode=83 cam_pos_x = cam_pos_x - vit_depl*(cart_point_x-cam_pos_x) cam_pos_y = cam_pos_y - vit_depl*(cart_point_y-cam_pos_y) end_if if scancode=27 timer_off_all terminate end_if ' Calcul des coordonnées du pointeur 3D cart_point_x = cam_pos_x + sph_point_R*cos(sph_point_teta/3.141592654)*cos(sph_point_phi/3.141592654) cart_point_y = cam_pos_y + sph_point_R*cos(sph_point_teta/3.141592654)*sin(sph_point_phi/3.141592654) cart_point_z = 1+sph_point_R*sin(sph_point_teta/3.141592654) ' Calcul des coordonnées de la caméra ' Actualisation affichage 3d_position 3,cart_point_x,cart_point_z,cart_point_y point_position cart_point_x,cart_point_z,cart_point_y cam_position cam_pos_x,1,cam_pos_y
light_x_position cam_pos_x light_z_position cam_pos_y
souris_x_init=mouse_x_position(1) souris_y_init=mouse_y_position(1)
return
L'image de texture est à télécharger ici: terrain.bmpIl faut la placer au même endroit que le programme dans voter disque dur. J'avoue que mon système d'angle (ni en degres/ni en radians, un peu empirique en fait ) et de coordonées cartésienne (y et z inversés) est un peu bancale mais regardez ca marche ! N'hésitez pas a réemployer ce code !! Je dois avouer que j'étais un peu degouté quand j'ai découvert les nouvelle fonctions ajoutées a PANO le 19 Avril (elles m'auraient grandement simplifié la vie). Mais je préfère rester a l'ancienne pour garder un controle total (sur la position de la caméra et du pointeur 3D notemment). EDIT: Avancer --> touche Z Reculer --> touche S
Dernière édition par The Gamer le Mar 21 Avr 2015 - 18:54, édité 1 fois | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Mar 21 Avr 2015 - 13:23 | |
| Bravo ! juste une petite remarque pour les déplacements, il aurait été plus intuitif de prendre les touches "flèches" et pour quitter "Echap". Continu ! j' ai hate de voir la suite... | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mar 21 Avr 2015 - 14:17 | |
| Merci The Gamer pour ce partage. C'est excellent et ça répond très bien. PS pour Ygeronimi pour commander à partir des flèches: pour le up, il suffit de rajouter un or scancode=38 et pour le bas scancode=40
Tu peux regarder les programmes qu'avait fait Bignono (la ville 3D par exemple ou le labyrinthe 3D) qui était pas mal poussés au niveau du moteur et puisse que Bignono est devenu fainéant sur la 3D depuis quelques temps, tu peux essayer d'améliorer son jeu de Buggy en 3D qui est à ce jour, sauf homission de ma part le jeu en 3D le plus évolué réalisé en Panoramic (il a fait un autre jeu super jouable dont j'ai oublié le nom ou tu avance tout le temps en évitant des obstacles. Il est encore plus jouable mais moins "développé" ou complexe que le jeu de buggy même s'il reste pas mal de boulot à faire dessus pour le rendre parfait.
Je pense que tu vas ajouter la rotation (ou/et) le déplacement latéral par les touches ?
Tu vas laisser le contrôle de l'angle de vision à la souris ou tu va ajouter la possibilité de le faire aussi au clavier ? (PS: avec aussi la réinit à la vue "horizontale de face" du personnage qui est souvent la plus utilisée quand on joue au FPS ?)
En tout cas ton moteur de FPS est bien commencé et j'espère que tu vas pouvoir continuer et réussir à faire un moteur complet et un FPS très sympa.
PS: Sur nos webdav, il y a plein d'objets et de personnages avec des animations (M2D pour les 3D_actor). | |
|
| |
The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mar 21 Avr 2015 - 18:58 | |
| Merci pour vos encouragements !! Et merci pour vos idées d'améliorations aussi. Pour les touches de déplacement c'est Z et S (je sais pas si vous avez testé). Je vais essayer de créer un décor et d'ajouter un déplacement latéral. Mais c'est un projet qui va peux etre pas voir le jour tout de suite ^^ mais ca m'a bien remotivé d'arriver a faire ca Le scancode n°27 ne correspond pas à la touche échap chez vous ? | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Un déplacement FPS en 3D Mar 21 Avr 2015 - 20:07 | |
| J'ai testé ton code ce matin, The Gamer, et je te confirme que la sortie par la touche [Echap] fonctionne. Je ne vois pas comment il pourrait en être autrement, car les codes des touches du clavier sont universelles.
Impatient de voir la suite.
A+ | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mar 21 Avr 2015 - 20:41 | |
| Pour le scancode de la touche "echap", c' est 35. 27, c' est pour keydown_special.
flèche haut : 38 flèche bas :40 flèche gauche : 37 flèche droite : 39 Echap : 35 | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mar 21 Avr 2015 - 21:40 | |
| Tu as un clavier special ygeronimi pour nous le code de la touche echap est bien 27. C'est ce que l'on met tous dans nos programmes depuis pas mal de temps ... Désolé de te contrarier mais là à priori c'est ton clavier qui marche mal ou qui envoi un code special. | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un déplacement FPS en 3D Mar 21 Avr 2015 - 23:27 | |
| @ygeronimi Le scancode 35 n’est pas pour <ESCAPE> (<ECHAPE> si vous voulez) : c’est pour <#> Le scancode de <ECHAPE> est bien 27. Si ton clavier « s’entête » à fournir 35 comme scancode pour <ESCAPE>, tu feras mieux de l’envoyer ad patres. Mais je pense qu'il est innocent le pauvre ! En attendant, tu peux exécuter ce - Code:
-
EXECUTE_WAIT "osk.exe" | |
|
| |
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Mer 22 Avr 2015 - 3:31 | |
| Voilà ce que j' ai, lorsque que je "tape" sur <Echap> : et 51 pour <#> qui est aussi <3> et <"> @ Papydall, mon clavier visuel est inaccessible par cette commande. Edit : J' ai le même résultat avec le clavier visuel | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 9:40 | |
| Etrange. Chez moi, ça donne bien 27 pour KEY_DOWN_CODE et pour SCANCODE. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 12:26 | |
| Pour moi, le scancode 35 correspond à la touche 1 de mon pavé numérique | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 12:32 | |
| @Jicehel, Oui c'est bien 35 pour le 1 du pavé numérique s'il est verrouillé, sinon c'est 97. Bizarre le problème de Ygéronimi. A+ | |
|
| |
papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 13:58 | |
| - Spoiler:
POUR <echap> Pour <#>Pour <1> du pavé numérique s'il est verrouillé
@ygeronimi Teste ce code en REMant tantôt la ligne 4, tantôt la ligne 3 Si dans les deux cas, tu sors du programme, c’est que c’est « OK » Sinon redémarre ton PC et fais un autre test. Si le problème persiste, tu peux soupçonner ton clavier. - Code:
-
repeat print key_down_code ; " " ; scancode : pause 1000 until key_down_code = 27 ' until scancode = 27 print key_down_code ; " " ; scancode message "terminé"
| |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 16:21 | |
| Hey the gamer! On été sur proxs 2D ya longtemps!
Je test ce soir, la je suis sur mon tel, j'ai des trucs intéressent pour toi. | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 17:31 | |
| Jinx78 revient J'espère que ça relancera les jeux 3D, tu avais pas mal avancé sur le sujet. Avec vous 2 et pour le peu que Bignono s'en mêle, ça promet de bonnes choses...
Dernière édition par Jicehel le Mer 22 Avr 2015 - 18:15, édité 1 fois | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:09 | |
| merci Jicehel
J'ai changer depuis le temps, (j'étais un grand timide) pour ceux qui veulent discuter autre que sur le forum, mon skype c'est jimx78
J'ai aussi un téléphone mais c'est pour les intimes ;D Sinon, y a t'il un TS ? | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:20 | |
| TS ? J'imagine que tu ne parles pas de tentatives de suicides ou de Taxe sur les Salaires ou, Traitements et Salaires Team speak ? Tir subbit ? Tir sur soucoupes ? Terminal Serveur ? Thème Suspect ? Travailleur sous-payé ? Tatami Souillé ? Time Share ? Tintin scandinave ?
Bon, j’arrête les supposition et je te laisse dire de quoi tu parlais ... ^^ | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:22 | |
| J'avais arrêter le développement sur Panormaic pour de bonne raison :
La gestion de la souris pas compatible, des problèmes de son (play pause stop) Son 3D etc
EDITER A 18h30:[ A non, la souris n'est pas bien géré. On ne peux pas faire de jeux si la souris ne permet pas de déplacer la vue. Quand on vas a fond a gauche, ou a droite, ou en haut, ou en bas, la souris est bloquer par l'ecran.]
Chargement des textures trop longue avec les objets 3D etc.
Bref, je me suis pris un claque avec ce test ! J'été en train d'appendre a utiliser unity 3D et suis suis passer voir le forum mais je vais certainement regarder le potentiel de panoramic maintenant...
Bien jouer Jack !
Dernière édition par jimx78 le Mer 22 Avr 2015 - 18:32, édité 1 fois | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:23 | |
| Mdr
TS = Team Speak
Si je travail avec quelqu’un sur un projet désormais, se sera par TS ou skype, c'est plus productif. | |
|
| |
The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:43 | |
| Salut a toi jimx78 et merci de partager ton enthousiasme Je me rappelle plus trop de l'époque Proxs 2D j'étais assez jeune . Tu sais ce qu'il advient de ce langage d'ailleurs ? Mythic avait parlé d'un nouveau langage: Cygma... Pour l'instant je suis dsl mais je n'ai pas encore de projet pour développer un jeu. Ca devrait venir... Je préfère pour l'instant avancer seul parce que j'ai un rythme un peu irrégulier. Genre la je me suis plongé deux soirs a fond pour faire ce petit programme, mais ce sera plus possible quand je vais reprendre les cours :p (Non non ne chambrez pas les étudiants ils bossent aussi ). | |
|
| |
jimx78
Nombre de messages : 241 Age : 33 Localisation : Yvelines Date d'inscription : 24/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 18:54 | |
| | |
|
| |
The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 19:08 | |
| Pour le problème du pointeur, j'avoue que la possibilité de définir la position du pointeur dans Panoramic serait bienvenue. En attendant peut être existe t-il un code compilé dans un autre language (.exe) permettant de réinitialiser la position du pointeur a intervalles réguliers... | |
|
| |
Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 20:29 | |
| Enfin du nouveau sur Panoramic, A SUIVRE | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 20:59 | |
| Le truc par rapport à la souris c'est que tu as la position par rapport à la fenêtre donc quand tu en sort, les coordonnées ne sont plus correctes puisqu' en dehors. En Panoramic pur je crois que l'on n'a pas le choix. Pour faire ce que tu souhaites, il faut utiliser une DLL comme mouse.dll ou kgf.dll (C'est peut être possible et j'ai peut être oublié comment faire aussi ) | |
|
| |
mindstorm
Nombre de messages : 685 Age : 55 Localisation : charente Date d'inscription : 13/02/2013
| Sujet: Re: Un déplacement FPS en 3D Mer 22 Avr 2015 - 21:56 | |
| vraiment extra tu peux prendre mon labyrinthe (1 seul objet ) si tu as besoin j'ai aussi une paire de lunette 3D icibon courage | |
|
| |
Contenu sponsorisé
| Sujet: Re: Un déplacement FPS en 3D | |
| |
|
| |
| Un déplacement FPS en 3D | |
|