Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Projet de RPG en panoramic, another time. | |
| | Auteur | Message |
---|
lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 0:40 | |
| Bon voilà, y'à beaucoup de personnes sur ce forum qui ne me connaissent pas, vu que celà fais une bonne année que je ne suis pas passé ici, j'ai déjà crée un jeu 3D assez basique et spécialement pourri et je voudrais passer à autre chose, j'en ai déjà parlé mais j'ai en effet un projet de Jeu de Rôle 3D en tête, j'ai vu qu'il y'avais beaucoup de nouveau éléments dans ce forum aptes à mener à bien ce projet. J'ai un début de scénario en tête, et j'aurais donc besoin d'un certain nombre de personnes ayant les capacités pour m'aider. - Une personne pour le son (Je ne possède pas de carte sonore sur mon ordinateur.) - Un graphiste ( Je ne maitrise que basiquement blender.) - Un autre programmeur Et tout ca devrais suffire. Je m'attelle au code dès ce soir pour vous pondre une petite démo pour dans une semaine ou deux ! Scenario : Vous êtes dans une prison, amnésique, promis à la peine de mort pour l'assassinat de 200 personnes en simultané (: O), et bah euh pour le moment vous devez vous tirer xDEnfin voilà j'ai pas mal d'idées qui viennent là en même temps que j'écris et voilà Si ca intéresse manifestez vous ! : )
Dernière édition par lagman le Dim 25 Juil 2010 - 22:34, édité 2 fois | |
| | | lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 3:14 | |
| - Code:
-
' Programme codé par Anthony REY
full_space 0 scene3D 1 color 1,0,0,0 full_space 1 label boucle dim rotation_perso label collision_check rotation_perso = 0
' setting up of der madame la caméra et son adjointe la lumos
cam_position 0,-15,10 light_position 0,0,50
' création de la pièce. ' création mur par murs.
' ajout d'un toit
3d_box 7,60,60,2 3d_z_position 7,14 3d_load_texture 7, "texture_sol.jpg"
' sol (un peu calculé au hazard a vrai dire lol)
3d_box 2,150,150,2 3d_y_position 2, -3 3d_z_position 2, -6.5
3d_load_texture 2, "texture_sol.jpg" ' je vous raconte pas la ram qu'on pourrais gagner en mappant une texture en multiples ' petites textures de 128*128 mais bon. Pasque du 1024 vla quoi. ' En plus c'est long à charger
' X= droite gauche Y = devant deriere Z = en haut en bas
' mur nord
3d_box 1,50,2,25 3d_y_position 1,20
3d_load_texture 1, "texture_mur.jpg"
' mur sud
3d_box 3,50,2,25 3d_y_position 3,-30 3d_transparent 3,50
3d_load_texture 3, "texture_mur.jpg"
' mur est ( droit ) (les pays de l'est sont vers la chine donc à droite de la France.)
3d_box 4,2,60,25 3d_x_position 4,25 3d_y_position 4,-5
3d_load_texture 4, "texture_mur.jpg"
' mur ouest
3d_box 5,2,60,25 3d_x_position 5,-25 3d_y_position 5,-5
3d_load_texture 5, "texture_mur.jpg"
' le pequenaud ! : D
3d_box 6,5,10,5 3d_x_rotate 6,90 3d_z_position 6,0
' la superbe caméra !
cam_y_position o3d_y_position (6) -20
' setting des collisions et debugage
3D_COLLISION_AS_CUBE 1 3D_COLLISION_AS_CUBE 2 3D_COLLISION_AS_CUBE 3 3D_COLLISION_AS_CUBE 4 3D_COLLISION_AS_CUBE 5 3D_COLLISION_AS_CUBE 6
boucle:
if scancode=27 terminate end_if
if scancode=19 message "Jeu en pause" end_if
' haut le gars avance if scancode = 38 3d_move 6, 0.3 display end_if
' bas le gars recule if scancode = 40 3d_move 6, -0.1 display end_if
' droite il tourne ( genre à la sauce vieux rpg genre shenmue) if scancode = 39 rotation_perso = rotation_perso +1 3d_y_rotate 6, rotation_perso display end_if
' gauche tourne if scancode = 37 rotation_perso = rotation_perso -1 3d_y_rotate 6,rotation_perso display end_if
point_x_position O3d_x_position (6) ' ca veut dire que la cam pointe tjr sur le centre X de l'objet 6
point_y_position O3d_y_position (6) ' idem mais sur le plan y point_z_position O3d_z_position (6) ' do I really need to explain ?
cam_y_position o3d_y_position (6) -10 cam_x_position o3d_x_position (6)
display goto collision_check
collision_check:
if O3D_collision(1,6)=1 and scancode = 38 3d_move 6, -1 end_if
if O3D_collision(3,6)=1 and scancode = 38 3d_move 6, -1 end_if
if O3D_collision(4,6)=1 and scancode = 38 3d_move 6, -1 end_if
if O3D_collision(5,6)=1 and scancode = 38 3d_move 6, -1 end_if
' hey ouais sinon il traverse le mur quand il recule !
if O3D_collision(1,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(3,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(4,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(5,6)=1 and scancode = 40 3d_move 6, 1 end_if
display goto boucle
C'est pas grave pour les textures virez les , ca devrait pas poser de problème je pense. Bon j'go dormir et demain, je vous code un jeu complet pour le fun C'est encore boggué mais ca iras quand j'aurais éxaminé en détail xD | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 7:13 | |
| Pas mal. Pour le faire tourner, j'ai mis toutes les lignes 3D_LOAD_TEXTURE en commentaire car je n'ai pas les fichiers de texture. Pour les murs, tu utilises des boites car tu as besoin d'un objet 3D_PLANE qui n'existe pas. Je fais ce nouvel objet dans les jours qui viennent. | |
| | | lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 13:07 | |
| Merci Jack Oui effectivement avec un plane je pourrais gagner un peu de temps je pense , mais j'aime bien les box parce que je n'ai pas besoin de les faire tourner sur un quelconque axe . D'ailleurs en parlant d'axe , impossible de les afficher ca bug >.< | |
| | | Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 18:39 | |
| Un objet 3D_PLANE sera: - un plan, - déplaçable (réagissant à 3D_X_POSITION, 3D_Y_POSITION, 3D_Z_POSITION, 3D_POSITION), - orientable (réagissant à 3D_X_ROTATE, 3D_Y_ROTATE, 3D_Z_ROTATE, 3D_ROTATE), - de taille modifiable (réagissant à 3D_X_SCALE, 3D_Y_SCALE, 3D_Z_SCALE, 3D_SCALE), - recevant une texture tuilable (tuiles de 2 sur 2 par défaut) par 3D_LOAD_TEXTURE, - pouvant avoir des répétitions de texture (tuiles) sur U et V (3D_U_TILE et 3D_V_TILE) On pourrait d'ailleurs généraliser cette notion de texture tuilable (motifs répétitifs) et l'étendre à tous les objets 3D. | |
| | | lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 19:05 | |
| ah ca les textures tuilables ca serais sympa, parce qu' il faut des textures géantes sinon >< (ce que je disais dans mes commentaires de code ^^) | |
| | | Tecking
Nombre de messages : 114 Age : 36 Localisation : Toulouse Date d'inscription : 30/05/2010
| Sujet: Re: Projet de RPG en panoramic, another time. Sam 24 Juil 2010 - 21:10 | |
| Jack tes idées de textures sont excellentes . Mais pour gagner en vitesse d'exécution, en serait-il pas possible de créer un nouveau type d'objet (qui existe déjà dans le 2D cela dit), les objet texture : Modifiable avec la commande flood. Stockés en ram donc accès rapide. Et plein d'autres choses... Remarque intégrer des sprites comme texture 3D ne me gène absolument pas. | |
| | | lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Projet de RPG en panoramic, another time. Dim 25 Juil 2010 - 15:43 | |
| - Code:
-
' Programme codé par Anthony REY
full_space 0 border_hide 0
scene3D 1 color 1,0,0,0 full_space 1 label boucle label reinit_tableau dim rotation_perso dim camera_pdv
' mouvements du personnage dim a$(19) dim no : ' pour le tableau de variable a$(0) = "1.3ds" a$(1) = "2.3ds" a$(2) = "3.3ds" a$(3) = "4.3ds" a$(4) = "5.3ds" a$(5) = "6.3ds" a$(6) = "7.3ds" a$(7) = "8.3ds" a$(8) = "9.3ds" a$(9) = "10.3ds" a$(10) = "11.3ds" a$(11) = "12.3ds" a$(12) = "13.3ds" a$(13) = "14.3ds" a$(14) = "15.3ds" a$(15) = "16.3ds" a$(16) = "17.3ds" a$(17) = "18.3ds"
no = 0
label collision_check rotation_perso = 0 camera_pdv = -10
' setting up of der madame la caméra et son adjointe la lumos
cam_position 0,-15,10 light_position 0,0,50
' création de la pièce. ' création mur par murs.
' ajout d'un toit
3d_box 7,60,60,2 3d_z_position 7,14 3d_load_texture 7, "texture_sol.jpg"
' sol (un peu calculé au hazard a vrai dire lol)
3d_box 2,150,150,2 3d_y_position 2, -3 3d_z_position 2, -6.5
3d_load_texture 2, "texture_sol.jpg"
' X= droite gauche Y = devant deriere Z = en haut en bas
' mur nord
3d_box 1,50,2,25 3d_y_position 1,20
3d_load_texture 1, "texture_mur.jpg"
' mur sud
3d_box 3,50,2,25 3d_y_position 3,-30 3d_transparent 3,50
3d_load_texture 3, "texture_mur.jpg"
' mur est ( droit ) (les pays de l'est sont vers la chine donc à droite de la France.)
3d_box 4,2,60,25 3d_x_position 4,25 3d_y_position 4,-5
3d_load_texture 4, "texture_mur.jpg"
' mur ouest
3d_box 5,2,60,25 3d_x_position 5,-25 3d_y_position 5,-5
3d_load_texture 5, "texture_mur.jpg"
' le pequenaud ! : D
3d_mesh 6 3d_load_object 6, a$(no) 3d_x_rotate 6,90 3d_scale 6, 1.2,1.2,1.2 3d_z_position 6,-5.5 3d_load_texture 6, "maleSkin.jpg"
3d_mesh 8 3d_load_object 8, "TSHIRT.3DS" 3d_load_texture 8, "shirt.jpg" 3d_chain 8,6
3d_mesh 9 3d_load_object 9, "jean.3ds" 3d_load_texture 9, "jean.jpg" 3d_chain 9,6
3d_mesh 10 3d_load_object 10, "cheveux.3ds" 3d_load_texture 10, "cheveux.jpg" 3d_chain 10,6 3d_scale 10 ,1.01,1,1
' la superbe caméra !
cam_y_position o3d_y_position (6) +camera_pdv
' setting des collisions et debugage
3D_COLLISION_AS_CUBE 1 3D_COLLISION_AS_CUBE 2 3D_COLLISION_AS_CUBE 3 3D_COLLISION_AS_CUBE 4 3D_COLLISION_AS_CUBE 5 3D_COLLISION_AS_cube 6
boucle:
if scancode=27 message "Merci d'avoir testé" 3d_delete_all end terminate end_if
if scancode=19 message "Jeu en pause" end_if
' haut le gars avance if scancode = 38 no = no+2
if no > 17 goto reinit_tableau end_if
3d_load_object 6, a$(no) 3d_move 6, 0.8
end_if
' bas le gars recule if scancode = 40
no = no+2
if no > 17 goto reinit_tableau end_if 3d_load_object 6, a$(no) 3d_move 6, -0.5
end_if
' droite il tourne ( genre à la sauce vieux rpg genre shenmue) if scancode = 39 no = 0
rotation_perso = rotation_perso +8 3d_y_rotate 6, rotation_perso no=0
end_if
' gauche tourne if scancode = 37 no = 0
rotation_perso = rotation_perso -8 3d_y_rotate 6,rotation_perso no =0 end_if
point_x_position O3d_x_position (6) ' ca veut dire que la cam pointe tjr sur le centre X de l'objet 6
point_y_position O3d_y_position (6) ' idem mais sur le plan y
cam_y_position o3d_y_position (6) +camera_pdv cam_x_position o3d_x_position (6)
' changement d'angle (a)
if scancode = 65 camera_pdv = 10 3d_transparent 3,0 3d_transparent 1,50 end_if
' changement d'angle (z)
if scancode = 90 camera_pdv = -10 3d_transparent 3,50 3d_transparent 1,0 end_if
display
goto collision_check
collision_check:
if O3D_collision(1,6)=1 and scancode = 38 3d_move 6, -1.5 end_if
if O3D_collision(3,6)=1 and scancode = 38 3d_move 6, -1.5 end_if
if O3D_collision(4,6)=1 and scancode = 38 3d_move 6, -1.5 end_if
if O3D_collision(5,6)=1 and scancode = 38 3d_move 6, -1. end_if
' hey ouais sinon il traverse le mur quand il recule !
if O3D_collision(1,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(3,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(4,6)=1 and scancode = 40 3d_move 6, 1 end_if
if O3D_collision(5,6)=1 and scancode = 40 3d_move 6, 1 end_if
display goto boucle
' reinitialiser le tableau
reinit_tableau:
no = 0
goto boucle
Bon c'est completement buggé, mais c'est une première version pour tester, je suis déjà en train de coder la seconde . Sources : http://www.megaupload.com/?d=C4VOW95V (Compressé en 7zip : http://www.7-zip.org/)Testé sur Windows XP SP3 sans problèmes. Hyper lent sur Vista sur un pc portable pourtant beaucoup plus puissant que mon fixe.. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Projet de RPG en panoramic, another time. Dim 25 Juil 2010 - 16:11 | |
| Un petit détail: tu exécutes tout ton programme en mode "initialisation", avant l'exécution de la commande "end". Je pense que tu vas au-devant des difficultés que tu peux éviter en te servant sciemment du fonctionnement "évènement" de Panoramic. Normalement, un programme est conçu de la manière suivante: - Citation :
' labels label on_click_0, key_down 0 : ' juste un exemple ' dims.
' création des objets permanents et du GUI ' initialisation de variables on_click 0,on_click_0 : ' pour l'exemple on_key_down 0,key_down_0 : ' pour l'exemple
end
' *** à partir de la ligne "end", rien n'est exécuté automatiquement, ' *** tout se passe par des évènements (on_click, on_key_down, ...)
' routines d'évènements on_click_0: ' routine pour l'exemple ' ici, traiter le click sur la form 0 return
key_down_0; ' ici, traiter une touche frappée sur la form 0 if key_down_code=27 ' ici, terminer tou, fermer les fichiers... terminate end_if ' routine pour l'exemple ' ici, traiter les autres touches return ...
' autres sous-programmes appelés par gosub
J'en viens aux consequences: tel que tu as écrit le traitement de la touche Esc pour sortir, la commande terminate n'est jamais exécutée car elle se trouve APRES le premier "end" rencontré par l'interpréteur. Ce dernier passe alors du mode "initialisation" en mode "évènement" et attent tout évènement qui pourrait arriver ET pour lequel on a défini une routine ON_xxx tel que c'est montré dans le squelette de programme ci-dessus. Donc, si vraiment tu souhaites continuer avec cette technique de programmation en te privant de la gestion simplissime des évènements de Panoramic, alors inverse au moins "end" et "terminate" pour avoir une sortie réelle de ton programme. D'ailleurs, tu trouveras sur le forum de multiples posts traitant de ce sujet: la prise en charge des évènements, l'utilisation ou non de scan_code, print etc. Tu verras, c'est intéressant. | |
| | | lagman
Nombre de messages : 205 Age : 32 Localisation : France Date d'inscription : 07/05/2008
| Sujet: Re: Projet de RPG en panoramic, another time. Dim 25 Juil 2010 - 16:21 | |
| C'est la première fois que je met sert de END, je l'ai inversé >.<
Sinon ouais j'vais essayer de mieux structurer ma prochaine démo ^^ | |
| | | Contenu sponsorisé
| Sujet: Re: Projet de RPG en panoramic, another time. | |
| |
| | | | Projet de RPG en panoramic, another time. | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |