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 |
|
|
| Erreur en chaine | |
| | Auteur | Message |
---|
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Erreur en chaine Sam 15 Juil 2023 - 18:57 | |
| Bonjour à tous ! J'ai cette erreur quand je veux chainer deux objets 3D avec ce début de code : - Code:
-
dim x%,y% scene3D 10:width 10,300:height 10,300 cam_position 0,0,10 light_position 0,0,15 color 10,0,0,0 3d_cone 1,1,0.5 3d_color 1,255,128,128 3d_position 1,0,0,0 3d_cylinder 2,1,0.5,0.5 3d_position 2,0,-1,0 3d_chain 2,1 Quid ? | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Erreur en chaine Dim 16 Juil 2023 - 11:49 | |
| Bonjour à tous !
@Froggy One Oui, tu as raison, le chaînage de ces deux objets crée une erreur.
Donc pas de chaînage possible… On passe au plan B ! Au lieu d’envoyer une commande pour les deux objets chainés, il faudra envoyer deux commandes, une par objet, pour qu’ils restent synchronisés lors de leur évolution dans l’espace 3D.
Tu peux aussi utiliser les déplacements de la caméra pour créer l’impression que ce sont les objets qui sont en mouvement. Tout dépend de ce que tu souhaites faire.
Bonne programmation !
| |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: Erreur en chaine [Résolu] Mar 18 Juil 2023 - 8:12 | |
| Pas de problème, j'avais juste envie de voir comment ça marche ; j'ai découvert récemment KSP, simulateur gratuit de vol spatial et j'ai encore en tête de refaire un escape game sur ce thème, mais je n'ai pas encore de projet précis. J'en reste à ceci : - Code:
-
dim x%,y%,z%,i% scene3D 10:width 10,300:height 10,300 left 10,100:top 10,75 cam_position 0,0,10 light_position 0,0,15 color 10,0,0,0
3d_cone 1,1,0.5 3d_color 1,28,26,33 3d_position 1,0,0,0
3d_cylinder 2,1,0.6,0.6 3d_color 2,28,26,33 3d_position 2,0,-1,0
3d_sphere 3,0.6 3d_position 3,0,-2,0 3d_hide 1:3d_hide 2:3d_hide 3 ' Animation initiale ' Apparition for i%=0 to 10 3d_move 1,-0.1 3d_rotate 1,50,0,0 3d_move 2,-0.1 3d_rotate 2,50,0,0 3d_move 3,-0.1 3d_rotate 3,50,0,0 wait 60 next i%
3d_show 1:3d_show 2:3d_show 3
for i%=1 to 5 cam_pitch -0.5 :wait 200 next i%
' Extinction du moteur 3d_scale 3,0.5,1,1 wait 200 3d_hide 3 et je laisse infuser... | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: Erreur en chaine [Résolu] Ven 21 Juil 2023 - 21:41 | |
| À toutes fins utiles, il semblerait que ce soient les cones et les sphères qui ne veulent pas se chainer. Dans ce début de code, certes très maladroit car tout copié collé, çà marche néanmoins ! - Code:
-
dim x%,y%,z%,i%,j% scene3D 10:width 10,300:height 10,300 left 10,100:top 10,75 light_position 0,0,15 color 10,0,0,0 ' ++++++++++++ ' La fusée de base ' ++++++++++++ ' Tête 3d_cylinder 1,1,0.5,0.1 3d_color 1,28,26,33 3d_position 1,0,1,0 ' Corps 3d_cylinder 2,1,0.5,0.5 3d_color 2,28,26,33 3d_position 2,0,-1,0 3d_chain 2,1 ' Flamme 3d_cylinder 3,1,0.5,0.1 :3d_hide 3 3d_position 3,0,-2,0 3d_color 3,21,85,235 3d_chain 3,1 ' Tuyère 3d_cylinder 4,0.5,0.3,0.1 3d_position 4,0,-1.5,0 3d_color 4,12,8,15 3d_chain 4,1 ' xxxxxxxxxxxx ' Deux petits réacteurs additionnels ' xxxxxxxxxxxx 3d_cylinder 5,0.5,0.2,0.05 3d_position 5,0,-0.7,0.6 3d_rotate 5,0,0,0 3d_scale 5,0.5,0.5,1 3d_color 5,12,8,15 3d_chain 5,1 3d_cylinder 6,0.5,0.2,0.05 3d_position 6,0,-0.7,-0.6 3d_rotate 6,0,0,0 3d_scale 6,0.5,0.5,1 3d_color 6,12,8,15 3d_chain 6,1 ' Et deux jets 3d_cylinder 8,0.7,0.15,0.005 :3d_hide 8 3d_position 8,0,-0.27,-0.1 :3d_rotate 8,0,0,0 3d_color 8,21,85,232 3d_chain 8,5 3d_cylinder 9,0.7,0.15,0.005 :3d_hide 9 3d_position 9,0,-0.27,0.1 :3d_rotate 9,0,0,0 3d_color 9,21,85,232 3d_chain 9,6
' ++++++++++++ ' Un peu de déco ' ++++++++++++ picture 1:hide 1:image 2 width 1,32:height 1,32:color 1,255,255,255 2d_target_is 1 2d_line 4,4,28,4 2d_line 4,8,28,8 2d_line 4,12,28,12 2d_line 4,16,28,16 2d_image_copy 2,0,0,32,32 3d_image_texture 1,2 2d_clear 2d_ellipse 16,4,16,28 2d_line 4,8,28,8 2d_line 4,12,28,12 2d_image_copy 2,0,0,32,32 3d_image_texture 2,2
' ++++++++++++ ' Petite animation réacteur ' ++++++++++++
wait 150 3d_show 3 for i%=10 to 1 step -1 3d_scale 3,abs(i%/10),1,1 : wait 50 next i% 3d_hide 3
' ++++++++++++ ' BOUTONS pilotage ' ++++++++++++
label haut,bas,gauche,droite,std,avt,arr label quartG,quartD,rotG button 11:caption 11,"Gauche" left 11,left(10)-74 :top 11,top(10) on_click 11,gauche button 17:caption 17,"QuartG" left 17,left(10)-74 :top 17,top(10)+30 on_click 17,quartG button 12:caption 12,"Droite" left 12,left(10)+ 300 :top 12,top(10) on_click 12,droite button 18:caption 18,"QuartD" left 18,left(10)+ 300 :top 18,top(10)+30 on_click 18,QuartD button 13:caption 13,"Haut" left 13,left(10)+115 : top 13,top(10)-60 on_click 13,haut button 14:caption 14,"Bas" left 14,left(10)+115 : top 14,top(10)-30 on_click 14,bas button 15:caption 15,"Poussée" left 15,left(10)+115 : top 15,top(10)+ 300 on_click 15,avt button 16:caption 16,"Ralentir" left 16,left(10)+115 : top 16,top(10)+ 330 on_click 16,arr button 21:caption 21,"RotG" left 21,left(10)-74 :top 21,top(10)+60 on_click 21,rotG
END
gauche: for i%=1 to 15 3d_rotate 1,0,0,o3d_z_rotate(1)+1 wait 60 next i% return droite: for i%=1 to 15 3d_rotate 1,0,0,o3d_z_rotate(1)-1 wait 60 next i% return haut: for i%=1 to 15 3d_rotate 1,o3d_x_rotate(1)-1,o3d_y_rotate(1),o3d_z_rotate(1) wait 60 next i% for i%=1 to 15 3d_position 1,o3d_x_position(1),o3d_y_position(1),o3d_z_position(1)+1 wait 120 next i% for i%=1 to 15 3d_rotate 1,o3d_x_rotate(1)+1,o3d_y_rotate(1),o3d_z_rotate(1) wait 60 next i% return bas: for i%=1 to 15 3d_rotate 1,o3d_x_rotate(1)+1,o3d_y_rotate(1),o3d_z_rotate(1) wait 60 next i% for i%=1 to 15 3d_position 1,o3d_x_position(1),o3d_y_position(1),o3d_z_position(1)-1 wait 120 next i% for i%=1 to 15 3d_rotate 1,o3d_x_rotate(1)-1,o3d_y_rotate(1),o3d_z_rotate(1) wait 60 next i% return std: return avt: 3d_show 3 for i%=1 to 10 step 1 3d_scale 3,abs(i%/10),1,1 : wait 50 next i% for i%=10 to 1 step -1 3d_scale 3,abs(i%/10),1,1 : wait 50 next i% 3d_hide 3 return arr: 3d_show 3 for i%=1 to 12 3d_rotate 1,o3d_x_rotate(1)+15,o3d_y_rotate(1),o3d_z_rotate(1) 3d_position 1,o3d_x_position(1),o3d_y_position(1)- 0.2,o3d_z_position(1) wait 50 next i% for i%=10 to 1 step -1 3d_scale 3,abs(i%/10),1,1 : wait 50 next i% for i%=1 to 12 3d_rotate 1,o3d_x_rotate(1)+15,o3d_y_rotate(1),o3d_z_rotate(1) 3d_position 1,o3d_x_position(1),o3d_y_position(1)+ 0.2,o3d_z_position(1) wait 50 next i% 3d_hide 3 return quartG: for i%=1 to 90 3d_rotate 1,0,0,o3d_z_rotate(1)+1 wait 60 next i% return quartD: for i%=1 to 90 3d_rotate 1,0,0,o3d_z_rotate(1)-1 wait 60 next i% return rotG: for i%=1 to 6 3d_rotate 5,o3d_x_rotate(5),o3d_y_rotate(5),o3d_z_rotate(5)+15 :wait 50 3d_rotate 6,o3d_x_rotate(6),o3d_y_rotate(6),o3d_z_rotate(6)+15 :wait 50 next i% wait 50 :3d_show 8 :3d_show 9 for j%=1 to 10 step 1 3d_scale 8,abs(j%/10),1,1 3d_scale 9,abs(j%/10),1,1 : wait 10 next j% wait 10 for j%=10 to 1 step -1 3d_scale 8,abs(j%/10),1,1 3d_scale 9,abs(j%/10),1,1 : wait 10 next j% 3d_hide 8 for i%=1 to 6 3d_rotate 1,o3d_x_rotate(1),o3d_y_rotate(1)-15,o3d_z_rotate(1) wait 60 next i% return
Il a juste fallu utiliser uniquement des cylindres !!! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Erreur en chaine Mar 25 Juil 2023 - 12:14 | |
| Bonjour Froggy One et bonjour à tous ! Bravo Froggy One ! Elle est superbe cette fusée, très bien réalisée en 3D ! Aperçu du programme de Froggy One : Bonne continuation ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: Erreur en chaine Jeu 27 Juil 2023 - 10:11 | |
| Merci Marc ! ça évolue tout doux... - Code:
-
caption 0,"SpaceTry 0.1"
dim x,y,z,i,j,a,b,c,d
' 3D scene3D 10 width 10,300:height 10,300:left 10,100:top 10,75 color 10,0,0,0 light_position 0,0,15 LABEL Propulsion,Pschitt,Pschitt_Gauche,Pschitt_Droite LABEL TG_31_15,TD_31_15,Dive,Undive,PivG,PivD,EcartG,EcartD,Recentrage LABEL Descente,Montee,Positionner ' LABEL PivotG,MiniG,X_RotaG,Y_RotaG,Z_RotaG ' LABEL PivotD,MiniD,X_RotaD,Y_RotaD,Z_RotaD ' LABEL MiniG_Only,MiniD_Only ' LABEL TournerG,TournerD ' 1 FUSEE :4 CYLINDRES ' 31 et 32:TETE ET CORPS 3d_cylinder 31,1,0.5,0.1:3d_color 31,28,26,33:3d_position 31,0,1,0 3d_cylinder 32,1,0.5,0.5:3d_color 32,28,26,33:3d_position 32,0,-1,0 3d_chain 32,31 ' HABILLAGE picture 1:hide 1:width 1,32:height 1,32:color 1,255,255,255 image 2 2d_target_is 1 2d_line 4,4,28,4:2d_line 4,8,28,8:2d_line 4,12,28,12 2d_line 0,31,32,31:2d_line 4,4,4,12:2d_line 28,4,28,12 2d_image_copy 2,0,0,32,32 3d_image_texture 31,2 2d_clear ' 2d_ellipse 4,16,4,28 2d_line 4,8,28,8:2d_line 4,12,28,12:2d_line 4,20,28,20:2d_line 4,24,28,24 2d_line 0,31,32,31 2d_line 4,8,4,12:2d_line 28,8,28,12:2d_line 4,20,4,24:2d_line 28,20,28,24 ' 2d_rectangle 7,4,9,12:2d_rectangle 23,4,25,12 ' 2d_image_copy 2,0,0,32,32 3d_image_texture 32,2 ' 33:HUBLOT 3d_cylinder 33,0.1,0.25,0.15:3d_position 33,0,-0.12,0.3 3d_rotate 33,-66,0,0 3d_color 33,0,128,255:3d_chain 33,31 ' 34:TUYERE 3d_cylinder 34,0.3,0.2,0.5:3d_color 34,56,56,0:3d_position 34,0,-0.66,0 3d_chain 34,32 ' JET de carburant 3d_cylinder 35,0.3,0.5,0.2:3d_color 35,0,128,255:3d_position 35,0,-0.9,0 3d_scale 35,0.5,1,1:3d_chain 35,32:3d_hide 35 3d_sphere 36,0.36:3d_color 36,0,128,255:3d_hide 36 ' ' Deux PETITES TUYERES à taffer : 41 et 42 GAUCHE et DROITE 3d_cylinder 41,0.5,0.1,0.05 3d_position 41,-0.6,-0.77,0 3d_rotate 41,0,0,0 3d_scale 41,0.5,0.5,1 3d_color 41,12,8,15 3d_chain 41,31 ' 3d_cylinder 42,0.5,0.1,0.05 3d_position 42,0.6,-0.77,0 3d_rotate 42,0,0,0 3d_scale 42,0.5,0.5,1 3d_color 42,12,8,15 3d_chain 42,31 ' 43 et 44: deux Pschitt 3d_cylinder 43,0.7,0.15,0.005 :3d_hide 43 3d_position 43,0,-0.27,-0.1:3d_color 43,21,85,232 3d_chain 43,41 3d_cylinder 44,0.7,0.15,0.005 :3d_hide 44 3d_position 44,0,-0.27,0.1:3d_color 44,21,85,232 3d_chain 44,42
' INTERFACE PILOTAGE ' De base button 51:left 51,12:top 51,top(10):caption 51,"Gauche" on_click 51,TG_31_15 button 52:left 52,12:top 52,top(51)+30:caption 52,"Droite" on_click 52,TD_31_15 button 53:left 53,12:top 53,top(52)+30:caption 53,"POUSSEE" on_click 53,Propulsion button 54:left 54,12:top 54,top(53)+30:caption 54,"Bas" on_click 54,Dive button 55:left 55,12:top 55,top(54)+30:caption 55,"Haut" on_click 55,Undive button 56:left 56,12:top 56,top(55)+30:caption 56,"Pivot_G" on_click 56,PivG button 57:left 57,12:top 57,top(56)+30:caption 57,"Pivot_D" on_click 57,PivD ' Urgence container 60 left 60,left(10)+width(10)+4:top 60,top(10)-4:width 60,80:height 60,212 button 61:parent 61,60:left 61,2:top 61,6:caption 61,"ECART G" on_click 61,EcartG button 62:parent 62,60:left 62,2:top 62,32:caption 62,"ECART D" on_click 62,EcartD button 63:parent 63,60:left 63,2:top 63,58:caption 63,"RECENTRER" on_click 63,Recentrage button 64:parent 64,60:left 64,2:top 64,84:caption 64,"DESCENDRE" on_click 64,Descente button 65:parent 65,60:left 65,2:top 65,110:caption 65,"REMONTER" on_click 65,Montee button 66:parent 66,60:left 66,2:top 66,136:caption 66,"POSITION" on_click 66,Positionner ' ' Affichage XYZ scene2d 71:left 71,100:top 71,8:width 71,50:height 71,64:color 71,42,112,70 scene2d 72:left 72,160:top 72,8:width 72,50:height 72,64:color 72,42,68,70 scene2d 73:left 73,220:top 73,8:width 73,50:height 73,64:color 73,42,34,70 scene2d 74:left 74,280:top 74,8:width 74,50:height 74,64:color 74,42,68,70 scene2d 75:left 75,340:top 75,8:width 75,50:height 75,64:color 75,42,112,70
' ESSAIS ' 3d_y_rotate 31,90:wait 150:gosub Pschitt_Gauche ' PivotD31(60) ' TournerG31(60):wait 150:TournerD31(60) ' for i=1 to 24:3d_y_rotate 31,o3d_y_rotate(31)+15:wait 50:next i ' Bas(45):wait 150:Haut(45)
END
' ANIMATION PROPULSION du GROS REACTEUR Propulsion: 3d_show 35 if o3d_z_rotate(31)=0 3d_show 36 3d_position 36,o3d_x_position(35),o3d_y_position(35)-0.5,o3d_z_position(35) 3d_scale 36,0.1,1,1 for i=1 to 10 3d_move 36,abs(i/10) 3d_scale 36,abs(i/10),1,1 wait 50 next i 3d_hide 36 end_if wait 50 3d_hide 35 return
'PETIT JET Pschitt: 3d_position 43,o3d_x_position(41)+0.5,o3d_y_position(41),o3d_z_position(41) 3d_position 44,o3d_x_position(42)-0.5,o3d_y_position(42),o3d_z_position(42) 3d_show 43:3d_show 44:wait 150:3d_hide 43:3d_hide 44:wait 150 return Pschitt_Gauche: 3d_position 43,o3d_x_position(41)+0.5,o3d_y_position(41),o3d_z_position(41) 3d_show 43:wait 150:3d_hide 43:wait 150 return Pschitt_Droite: 3d_position 44,o3d_x_position(42)-0.5,o3d_y_position(42),o3d_z_position(42) 3d_show 44:wait 150:3d_hide 44:wait 150 return ' Commandes directes gauche tableau de bord TG_31_15: TournerG31(15) return TD_31_15: TournerD31(15) return Dive: Bas(45) return Undive: Haut(45) return PivG: PivotG31(15) return PivD: PivotD31(15) return ' Commandes d'URGENCE ' EcartG: TournerG31(45) gosub Propulsion for i=0 to 0.4 step 0.1 3d_x_position 31,o3d_x_position(31)-i:wait 150 next i TournerD31(45) return ' EcartD: TournerD31(45) gosub Propulsion for i=0 to 0.4 step 0.1 3d_x_position 31,o3d_x_position(31)+i:wait 150 next i TournerG31(45) return ' Recentrage: 3d_position 31,0,1,0 3d_rotate 31,0,0,0 return ' Descente: gosub Dive:gosub Propulsion for i=0 to 0.6 step 0.1 3d_y_position 31,o3d_y_position(31)-i:wait 100 next i gosub Undive return ' Montee: gosub Undive:gosub Propulsion for i=0 to 0.6 step 0.1 3d_y_position 31,o3d_y_position(31)+i:wait 100 next i gosub Dive return ' Positionner: return ' ' Les SUBs ' ' ROTATIONs sub RotaG41(a) if a<1 then exit_sub for i=1 to a:3d_x_rotate 41,o3d_x_rotate(41)+1:next i end_sub sub RotaD41(a) if a<1 then exit_sub for i=1 to a:3d_x_rotate 41,o3d_x_rotate(41)-1:next i end_sub sub RotaG42(a) if a<1 then exit_sub for i=1 to a:3d_x_rotate 42,o3d_x_rotate(42)+1:next i end_sub sub RotaD42(a) if a<1 then exit_sub for i=1 to a:3d_x_rotate 42,o3d_x_rotate(42)-1:next i end_sub ' ' MANOEUVRES sub TournerG31(a) if a=o3d_x_rotate(31) then exit_sub if a<1 then exit_sub RotaG41(180):RotaD42(360) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_z_rotate 31,o3d_z_rotate(31)+1:wait 50:next i RotaG41(180):RotaG42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaG42(180) end_sub ' sub TournerD31(a) if a=o3d_x_rotate(31) then exit_sub if a<1 then exit_sub RotaD41(360):RotaG42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_z_rotate 31,o3d_z_rotate(31)-1:wait 50:next i RotaG41(180):RotaG42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaG41(180) end_sub ' sub PivotG31(a) ' if a=o3d_y_rotate(31) then exit_sub if a<1 then exit_sub RotaG41(90):RotaD42(270) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_y_rotate 31,o3d_y_rotate(31)-1:wait 50:next i RotaG41(180):RotaG42(360) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaG41(90):RotaD42(90) end_sub ' sub PivotD31(a) ' if a=o3d_y_rotate(31) then exit_sub if a<1 then exit_sub RotaD41(270):RotaG42(270) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_y_rotate 31,o3d_y_rotate(31)+1:wait 50:next i RotaD41(180):RotaD42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaD41(270):RotaG42(270) end_sub ' sub Bas(a) if a=o3d_y_rotate(31) then exit_sub if a<1 then exit_sub RotaG41(90):RotaG42(90) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_x_rotate 31,o3d_x_rotate(31)+1:wait 50:next i RotaD41(180):RotaD42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaG41(90):RotaG42(90) end_sub ' sub Haut(a) if a=o3d_y_rotate(31) then exit_sub if a<1 then exit_sub RotaG41(90):RotaG42(90) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 for i=1 to a:3d_x_rotate 31,o3d_x_rotate(31)-1:wait 50:next i RotaD41(180):RotaD42(180) gosub Pschitt_Gauche:gosub Pschitt_Droite:wait 150 RotaG41(90):RotaG42(90) end_sub
On n'est pas encore sur Mars, mais qui sait ? | |
| | | Contenu sponsorisé
| Sujet: Re: Erreur en chaine | |
| |
| | | | Erreur en chaine | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |