Mai 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 | 31 | | | Calendrier |
|
| | Vaisseau spatial | |
| | Auteur | Message |
---|
The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Vaisseau spatial Mer 2 Juin 2010 - 19:31 | |
| Voici un début de simulateur spatial qui devrait aboutir a un jeu ( il reste encore beaucoup de bugs a corriger (au niveau de la direction du mesh et de la camera): - Code:
-
dim lf,hf,l3d,h3d,angle_x,angle_z,angle_y ,ok_y,ok_z,stopit,cam_x,cam_z,vais_x,vais_y,cam_y angle_x = 0
lf = screen_x hf = screen_y - 30 height 0,hf width 0,lf caption 0, "Exo_traquer V 0.3"
l3d = lf - 8 h3d = hf - 34 scene3d 1 height 1,h3d width 1,l3d color 1,0,0,0 axes_show cam_position 0,5,-10 light_position 0,100,0 left 1,60
3d_mesh 1 3d_load_object 1,"C:\Documents and Settings\utilisateur\Mes documents\Programmation\3d\exo-traquer\VAISSEAU2.3ds" 3d_x_rotate 1,angle_x
3d_sphere 2,1 3d_x_position 2,5 3d_y_position 2,0 3d_z_position 2,5
3d_sphere 3,1 3d_x_position 3,-5 3d_y_position 3,0 3d_z_position 3,5
3d_sphere 4,1 3d_x_position 4,5 3d_y_position 4,0 3d_z_position 4,-5
3d_sphere 5,1 3d_x_position 5,-5 3d_y_position 5,0 3d_z_position 5,-5
while stopit = 0
point_position o3d_x_position(1),o3d_y_position(1),o3d_z_position(1)
if scancode = 38 angle_x = angle_x - 1 3d_x_rotate 1,angle_x 3d_move 1,0.5 end_if
if scancode = 40 angle_x = angle_x + 1 3d_x_rotate 1,angle_x 3d_move 1,0.5 end_if
if scancode = 37 angle_y = angle_y + 1 3d_y_rotate 1,angle_y 3d_move 1,0.5 end_if
if scancode = 39 angle_y = angle_y - 1 3d_y_rotate 1,angle_y 3d_move 1,0.5 end_if
if scancode = 67 angle_z = angle_z + 1 3d_z_rotate 1,angle_z end_if
if scancode = 86 angle_z = angle_z - 1 3d_z_rotate 1,angle_z end_if
3d_move 1,0.1
if scancode = 27 terminate stopit = 1 end_if
cam_x = sin(angle_y/57.33333) * -10 + o3d_x_position(1) cam_z = cos(angle_y/57.33333) * -10 + o3d_z_position(1) cam_y = o3d_y_position(1) + 5 cam_z_position cam_z cam_x_position cam_x cam_y_position cam_y
end_while
end télécharger le mesh ici : http://www.sendspace.com/file/r5ra1uLe simulateur de Lagman m'a beaucoup inspiré et le nom "Exo-traquer me vient d'un jeu dont j'ai commencé le développement en 2D (il fallait éviter des astéroïdes) mais j'aimerai aboutir grâce a ce simulateur a un jeu en 3D ou l'on naviguerais dans un champ d'astéroïdes. PS : Les sphères sont sensées représenter les astéroïdes, elle feront l'objet de collisions prochainement grâce à la formule de Tecking (merci a toi d'ailleurs ! ). Voila vous pouvez maintenant le tester | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Vaisseau spatial Mer 2 Juin 2010 - 21:07 | |
| Qu'est-ce que c'est que ce truc le mesh ??? à part ce qu'on allume pour faire tout sauter... | |
| | | Jack Admin
Nombre de messages : 2386 Date d'inscription : 28/05/2007
| Sujet: Re: Vaisseau spatial Mer 2 Juin 2010 - 22:29 | |
| Eh bien, c'est plutôt réussi pour un début. Cet exemple me motive pour coder des commandes spécifiques en 3D (collision, animation, brouillard, terrain, feu, point de pivot, skybox, dome, etc...) Et vivent les jeux vidéos ! | |
| | | Invité Invité
| Sujet: Re: Vaisseau spatial Mer 2 Juin 2010 - 22:44 | |
| Super ce jeu!
mais utilise key_xxx pour les flèches, comme ça on va pouvoir quitter sans aller par le gestionnaire des taches. |
| | | Invité Invité
| Sujet: Re: Vaisseau spatial Mer 2 Juin 2010 - 23:24 | |
| Je viens de faire l'essais pour voir ce que les nouveaux nous proposent.
Très bien. Pour quitter Nicolas: ESC (c'est codé). Ce que je ne sais pas, lorsqu'il y aura les collisions de prévus par Jack, avec les événements ils faudra certainement faire le programme en dehors du END.
Ce qui serait bien et plus lisible serait d'indenter les lignes pour qu'on retrouve plus facilement le début et la fin d'une boucle quelconque. Dans les grands programmes les erreurs sont plus lisibles. Je ne donne pas de conseil, ce genre de programme je ne le fais pas, mais pour relire le travail d'un autre, c'est plus facile, et il t'appartiens de coder à ta guise.
Par contre aillant un vielle ordi qui ronfle avec le ventilo qui tourne à plein pot lorsqu'il tourne à 100/100, avec le gestionnaire de tâche, l'UC=100, si je mets wait 1, il descend à 91, wait 2, celui-ci tourne au environ de 81. J'ai pas été plus loin, mais je n'ai pas vu de différence dans le comportement. Je pense qu'il faut laisser un peu de marge et ne pas prendre toute la ressource dans une boucle infini.
Je me retire de la partie, vu que les jeux c'est pas mon truc. Bonne programmation. |
| | | Tecking
Nombre de messages : 114 Age : 35 Localisation : Toulouse Date d'inscription : 30/05/2010
| Sujet: Re: Vaisseau spatial Jeu 3 Juin 2010 - 0:07 | |
| moi pour quitter j'attend que panoramic me dise invalid floating point value 0.1 (ou 0.5). sinon pas mal du tout ton petit prog. j'ai tenté de le remanier: - Code:
-
full_space 0 scene3D 1 full_space 1 color 1, 0, 0, 0
dim camera(5) dim ship(5) dim dir(1) dim speed dim x, z
for x=-2 to 2 step 4 for z=-2 to 2 step 4 speed = speed+1 3D_box speed, 1, 1, 1 3D_x_position speed, x 3D_z_position speed, z next z next x
speed = 10
3D_box 5, 1, 0.5, 1.5 3D_sphere 6, 1
repeat
3D_x_position 6, ship(0)+ship(3) 3D_y_position 6, ship(1)+ship(4) 3D_z_position 6, ship(2)+ship(5) 3D_move 5, Speed/100 3D_point 5, 6 ' cam_x_position camera(0) ' cam_y_position camera(1) ' cam_z_position camera(2) point_x_position ship(0) point_y_position ship(1) point_z_position ship(2)
ship(0) = O3D_x_position(5) ship(1) = O3D_y_position(5) ship(2) = O3D_z_position(5) ship(3) = sin(dir(0)/100)*cos(dir(1)/100) ship(4) = sin(dir(1)/100) ship(5) = cos(dir(0)/100)*cos(dir(1)/100)
camera(0) = camera(0)+((camera(0)-camera(3))/10) camera(1) = camera(1)+((camera(1)-camera(4))/10) camera(2) = camera(2)+((camera(2)-camera(5))/10) camera(3) = ship(0)-(3*ship(3)) camera(4) = ship(1)-(3*ship(4)) camera(5) = ship(2)-(3*ship(5)) if scancode = 37 then dir(0)=dir(0)+1 if scancode = 38 then dir(1)=dir(1)+1 if scancode = 39 then dir(0)=dir(0)-1 if scancode = 40 then dir(1)=dir(1)-1 wait 1 until scancode = 27
terminate
mais panoramic n'as pas l'air d'aimer le 3D_point | |
| | | The Gamer
Nombre de messages : 110 Age : 30 Localisation : Toulouse (31) Date d'inscription : 11/05/2010
| Sujet: Re: Vaisseau spatial Jeu 3 Juin 2010 - 19:46 | |
| Merci pour tous ses encouragements , cela me motive encore plus !! J'ai l'intention de continuer | |
| | | JL35
Nombre de messages : 7095 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Vaisseau spatial Jeu 3 Juin 2010 - 21:33 | |
| @Tecking, dans ton listing, ligne 31, le 3D_POINT ne doit-il pas être remplacé par 3D_POINT_OBJECT ? sinon, joli résultat. | |
| | | Contenu sponsorisé
| Sujet: Re: Vaisseau spatial | |
| |
| | | | Vaisseau spatial | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |