FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par JL35 Aujourd'hui à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Hier à 18:08

» mise a jour calculatrice
par joeeee2017 Hier à 15:57

» [solved] 3D_LINE How to ?
par Jicehel Hier à 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 editeur de monde 3d

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
carl



Nombre de messages : 6
Date d'inscription : 14/08/2010

MessageSujet: editeur de monde 3d   Dim 15 Aoû 2010 - 1:32

Bonjour a tous, et merci a tous ceux qui m'ont souhaité la bienvenue.
voila, j'ai découvert panoramic il y a peut de temps et ce langage m'a tout de suite intéressé de par sa simplicité. mais le coté qui m'interresse le plus est la 3d, je vous dévoille donc ce petit programme que je viens de finir en une journée ,merci la doc et les forums ! , j'espère le faire évoluer car il est encore très simpliste , bref j'attends vos remarques et conseils merci.
Code:

error_french
dim dxx,dxy
dxx = screen_x : dxy = screen_y : width 0,dxx : height 0,dxy : caption 0,""
scene3d 1 : height 1,dxy : width 1,dxx : left 1,0 : top 1,0 :full_space 1
dim camerax,cameray,cameraz,angle,rayon,souris,pointx,pointy,pointz,speedcam
angle=3.2 : rayon=1000 : camerax = -200 : cameray = 8 : cameraz = -200 :speedcam = .5
dim objetfile$(100),pxobjet(100),pyobjet(100),pzobjet(100),sxobjet(100),syobjet(100),szobjet(100)
dim rotxobjet(100),rotyobjet(100),rotzobjet(100)
dim objetmax,objet,x,objetencours,scale,a$,b$,dir$,info$,aide ,b ,r,s,file$,msg
objet = 39 : scale = .1 : dir$ = dir_current$ : aide = 1
rem on demarre les objets a 40 pour laisser la place aux objets de base
label init,save,main,quit,open,undo,skybox,pointe_camera,pointe_cameray,scrollchange,event,opentexture,resetscroll,opensavefile,savefile
scroll_bar 3  : left 3,00 : top 3,100 : min 3,-200 : max 3,200 : position 3,0 : hide 3 : rem posxobjet
scroll_bar 4  : left 4,00 : top 4,120 : min 4,-200 : max 4,200 : position 4,0 : hide 4 : rem posyobjet
scroll_bar 5  : left 5,00 : top 5,140 : min 5,-200 : max 5,200 : position 5,0 : hide 5 : rem poszobjet
scroll_bar 6  : left 6,00 : top 6,160 : min 6,0 : max 6,200 : position 6,0 : hide 6 : rem scalexobjet
scroll_bar 7  : left 7,00 : top 7,180 : min 7,0 : max 7,200 : position 7,0 : hide 7 : rem scaleyobjet
scroll_bar 8  : left 8,00 : top 8,200 : min 8,0 : max 8,200 : position 8,0 : hide 8 : rem scalezobjet
scroll_bar 9  : left 9,00 : top 9,220 : min 9,-200 : max 9,200 : position 9,0 : hide 9 : rem rotationxobjet
scroll_bar 10  : left 10,00 : top 10,240 : min 10,-200 : max 10,200 : position 10,0 : hide 10 : rem rotationyobjet
scroll_bar 11  : left 11,00 : top 11,260 : min 11,-200 : max 11,200 : position 11,0 : hide 11 : rem rotationzobjet
gosub skybox
3D_PLANE 15
3d_x_position 15,camerax
3d_y_position 15,cameray -8
3d_z_position 15,cameraz
3d_x_scale 15,200
3d_y_scale 15,200
3d_z_scale 15,200
3d_x_rotate 15,90
3d_load_texture 15,"media/terrain_0.bmp"
3D_U_TILE 15,30
3D_V_TILE 15,30
edit 2 : left 2,00 : top 2,5 : width 2,160 : height 2,20 : hide 2
button 17 : left 17,00 : top 17,30 : caption 17," << precedent " : hide 17
button 18 : left 18,80 : top 18,30 : caption 18," suivant >> " : hide 18
button 19 : left 19,00 : top 19,60 : caption 19,"texture " : hide 19
button 20 : left 20,80 : top 20,60 : caption 20,"aller a l'objet " : hide 20
button 21 : left 21,00 : top 21,300 : caption 21,"ouvrir " : hide 21
button 22 : left 22,80 : top 22,300 : caption 22,"sauver " : hide 22
button 23 : left 23,50 : top 23,360 : caption 23,"quitter " : hide 23
while scancode <> 45
gosub main
end_while
gosub quit
return
rem ---------------------------------------------------------------------------
init:
if file_exists(file$) = 1
file_open_read 13,file$
file_readln 13,a$
file_readln 13,a$ : camerax = val(a$)
file_readln 13,a$ : cameray = val(a$)
file_readln 13,a$ : cameraz = val(a$)
file_readln 13,a$
if a$=""
objet = 39
else
objet = val(a$)
end_if
if objet >= 40
objetmax = objet
for x = 40 to objetmax
3d_mesh  x
file_readln 13,a$
objetfile$(x) = a$
3d_load_object x,objetfile$(x)
file_readln 13,a$
pxobjet(x)=a$
3d_x_position x,pxobjet(x)
file_readln 13,a$
pyobjet(x)=a$
3d_y_position x,pyobjet(x)
file_readln 13,a$
pzobjet(x)=a$
3d_z_position x,pzobjet(x)
file_readln 13,a$
sxobjet(x)=a$
3d_x_scale x,sxobjet(x)
file_readln 13,a$
syobjet(x)=a$
3d_y_scale x,syobjet(x)
file_readln 13,a$
szobjet(x)=a$
3d_z_scale x,szobjet(x)
file_readln 13,a$
rotxobjet(x)=a$
3d_x_rotate x,rotxobjet(x)
file_readln 13,a$
rotyobjet(x)=a$
3d_y_rotate x,rotyobjet(x)
file_readln 13,a$
rotzobjet(x)=a$
3d_z_rotate x,rotzobjet(x)
text 2," objet n° " +  str$(x)
next x
end_if
file_close 13
end_if
return
rem ---------------------------------------------------------------------------
opensavefile:
open_dialog 12
filter 12,"fichiers world|*.world"
b$=file_name$(12)
If Right$(b$,5) = "world"
file$ = b$
gosub init
end_if
b$ = ""
delete 12
return
rem ---------------------------------------------------------------------------
savefile:
save_dialog 12
filter 12,"fichiers world|*.world"
b$=file_name$(12)
file$ = b$
file$ = file$+".world"
gosub save
b$ = ""
delete 12
return
rem ---------------------------------------------------------------------------
save:
rem dir_change dir$
file_open_write 14,file$
file_writeln 14,date$ + " " + time$
file_writeln 14,camerax
file_writeln 14,cameray
file_writeln 14,cameraz
if objet > 39
file_writeln 14,objetmax
for x = 40 to objetmax
if  objetfile$(x)="" : return : end_if
file_writeln 14,objetfile$(x)
file_writeln 14,o3d_x_position(x) : rem pxobjet(x)
file_writeln 14,o3d_y_position(x) : rem pyobjet(x)
file_writeln 14,o3d_z_position(x) : rem pzobjet(x)
file_writeln 14,o3d_x_scale(x) : rem sxobjet(x)
file_writeln 14,o3d_y_scale(x) : rem syobjet(x)
file_writeln 14,o3d_z_scale(x) : rem szobjet(x)
file_writeln 14,o3d_x_rotate(x) : rem rotxobjet(x)
file_writeln 14,o3d_y_rotate(x) : rem rotyobjet(x)
file_writeln 14,o3d_z_rotate(x) : rem rotzobjet(x)
next x
end_if
file_close 14
return
rem ---------------------------------------------------------------------------
quit:
msg = message_confirmation_yes_no("Etes vous sur de vouloir quitter ? ")
if msg = 1 then terminate
if msg = 0 then return
if msg = 2 then return
return
rem ---------------------------------------------------------------------------
open:
open_dialog 12
filter 12,"fichiers 3ds|*.3ds|md2|*.md2"
b$=file_name$(12)
If Right$(b$,3) = "3ds" or Right$(b$,3) ="md2"
objet = objet + 1
objetfile$(objet) = b$
pxobjet(objet)=camerax
pyobjet(objet)=cameray
pzobjet(objet)=cameraz
sxobjet(objet)=scale
syobjet(objet)=scale
szobjet(objet)=scale
3d_mesh  objet
3d_load_object objet,objetfile$(objet)
3d_x_scale objet,sxobjet(objet)
3d_y_scale objet,syobjet(objet)
3d_z_scale objet,szobjet(objet)
3d_x_position objet,pxobjet(objet)
3d_y_position objet,pyobjet(objet)
3d_z_position objet,pzobjet(objet)
3d_x_rotate objet,rotxobjet(objet)
3d_y_rotate objet,rotyobjet(objet)
3d_z_rotate objet,rotzobjet(objet)
end_if
text 2," objet n° " +  str$(objet)
objetmax = objet
b$ = ""
delete 12
return
rem ---------------------------------------------------------------------------
opentexture:
open_dialog 12
filter 12,"fichiers jpg|*.jpg|bmp|*.bmp"
b$=file_name$(12)
If Right$(b$,3) = "jpg" or Right$(b$,3) ="bmp"
if objetmax>39 : 3d_load_texture objet,b$ : end_if
end_if
b$ = ""
delete 12
return
rem ---------------------------------------------------------------------------
undo:
if objet > 39 : 3d_delete objet : objet = objet - 1 :end_if
return
rem ---------------------------------------------------------------------------
main:
if scancode = 114 : camerax = 0 : cameray = 0 : cameraz = 0 : end_if : rem f3
if scancode = 33 : cameray = cameray + speedcam : end_if
if scancode = 34 : cameray = cameray - speedcam : end_if
if scancode = 90 : camerax = camerax + speedcam : end_if :rem z
if scancode = 83 : camerax = camerax - speedcam : end_if :rem s
if scancode = 81 : cameraz = cameraz + speedcam : end_if :rem q
if scancode = 68 : cameraz = cameraz - speedcam : end_if :rem d
if scancode = 37 : angle=angle+0.005 : gosub pointe_camera : end_if
if scancode = 39 : angle=angle-0.005 : gosub pointe_camera : end_if
if scancode = 38 : angle=angle+0.005 : gosub pointe_cameray : end_if
if scancode = 40 : angle=angle-0.005 : gosub pointe_cameray : end_if
cam_x_position camerax
cam_y_position cameray
cam_z_position cameraz
if cameray < o3d_y_position(15)+10 : cameray = cameray +1 : end_if
if mouse_left_down(1)=1 : souris = 1 : end_if
if mouse_left_up(1)=1 : souris = 0 : end_if
if mouse_right_down(1)=1 : aide = 0 : end_if
if mouse_right_up(1)=1 : aide = 1 : end_if
if scancode = 112 : gosub open : end_if
if scancode = 113 : aide = aide +1 : end_if
if aide = 0 : height 1,dxy : width 1,dxx : left 1,200 : top 1,0 : cursor_default 1 : for b= 2  to 11 : show b : next b : show 17 : show 18 : show 19 :show 20: show 21 : show 22: show 23 : end_if
if aide = 1 : left 1,00 : full_space 1 : cursor_hide 1 : for b= 2  to 11 : hide b : next b : hide 17 : hide 18 : hide 19 : hide 20 :hide 21 : hide 22: hide 23: end_if
if aide > 1 : aide =  0 : end_if
if objetmax>39 : gosub event : else : text 2,"aucun objet chargé press f1" :end_if
if CLICKED(21)=1
gosub opensavefile
end_if
if CLICKED(22)=1
gosub savefile
message "sauvegarde effectuée "
end_if
if CLICKED(23)=1
gosub quit
end_if
return
rem ---------------------------------------------------------------------------
skybox:
3D_SKYBOX 16
3D_LOAD_TEXTURE_TOP 16,"media/SKY_up.jpg"
3D_LOAD_TEXTURE_LEFT 16,"media/SKY_bk.jpg"
3D_LOAD_TEXTURE_BACK 16,"media/SKY_rt.jpg"
3D_LOAD_TEXTURE_FRONT 16,"media/SKY_lf.jpg"
3D_LOAD_TEXTURE_RIGHT 16,"media/SKY_fr.jpg"
3D_LOAD_TEXTURE_BOTTOM 16,"media/SKY_floor.jpg"
return
rem ---------------------------------------------------------------------------
pointe_camera:
pointx = camerax + rayon*sin(angle)
pointz = cameraz + rayon*cos(angle)
point_x_position pointx
point_z_position pointz
return
rem ---------------------------------------------------------------------------
pointe_cameray:
pointy = cameray + (rayon*sin(angle))/2
point_y_position pointy
return
rem ---------------------------------------------------------------------------
event:
if CLICKED(17)=1
objet  = objet - 1
if objet < 40 : objet = 40 : end_if
text 2," objet n° " +  str$(objet)
gosub resetscroll
end_if
if CLICKED(18)=1
objet  = objet + 1
if objet > objetmax : objet = objetmax : end_if
text 2," objet n° " +  str$(objet)
gosub resetscroll
end_if
if CLICKED(19)=1
gosub opentexture
end_if
if CLICKED(20)=1
camerax = o3d_x_position(objet)
cameray = o3d_y_position(objet)
cameraz = o3d_z_position(objet)
end_if
gosub scrollchange
return
rem ---------------------------------------------------------------------------
resetscroll:
position 3,o3d_x_position(objet)
position 4,o3d_y_position(objet)
position 5,o3d_z_position(objet)
position 6,o3d_x_scale(objet)
position 7,o3d_y_scale(objet)
position 8,o3d_z_scale(objet)
position 9,o3d_x_rotate(objet)
position 10,o3d_y_rotate(objet)
position 11,o3d_z_rotate(objet)
return
rem ---------------------------------------------------------------------------
scrollchange:
3d_x_position objet,pxobjet(objet)+ position(3)
3d_y_position objet,pyobjet(objet)+ position(4)
3d_z_position objet,pzobjet(objet)+ position(5)
3d_x_scale objet,sxobjet(objet) + position(6)
3d_y_scale objet,syobjet(objet) + position(7)
3d_z_scale objet,szobjet(objet) + position(8)
3d_x_rotate objet,rotxobjet(objet)  + position(9)
3d_y_rotate objet,rotyobjet(objet) + position(10)
3d_z_rotate objet,rotzobjet(objet) + position(11)
return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
JL35



Nombre de messages : 5953
Localisation : 77
Date d'inscription : 29/11/2007

MessageSujet: Re: editeur de monde 3d   Dim 15 Aoû 2010 - 1:56

tu devrais éditer pour rajouter la balise de fin [/code]...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
659_minifly



Nombre de messages : 590
Age : 69
Localisation : Valenciennes Nord
Date d'inscription : 29/04/2010

MessageSujet: Re: editeur de monde 3d   Dim 15 Aoû 2010 - 2:03

salut bienvenue
dans to prog il manque maleureusement les *.jpg
alors on peut pas tester dommage
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Nardo26

avatar

Nombre de messages : 2294
Age : 49
Localisation : Valence
Date d'inscription : 02/07/2010

MessageSujet: Re: editeur de monde 3d   Dim 15 Aoû 2010 - 3:10

Bienvenue Carl, cheers

Pour les images tu devrais utiliser un site comme :

http://monimag.eu/

cela nous permettrai de pouvoir tester ton programme...

on petit conseil, tu devrais définir le chemin d'accès à tes fichiers en début de programme dans une variable. Cela nous permettrai de pouvoir stocker tes fichiers dans le répertoire que l'on souhaite...

par exemple en ligne 2:
Code:
dim dxx,dxy,chemin$
chemin$="C:\Media\"
puis par la suite en ligne 31 par exemple :
Code:
3d_load_texture 15,chemin$+"terrain_0.bmp"

A+
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://nardo26.lescigales.org
jjn4

avatar

Nombre de messages : 1601
Date d'inscription : 13/09/2009

MessageSujet: +++   Dim 15 Aoû 2010 - 13:45

Ouah, je ne sais pas ce que donne ton programme,
mais tu as l'air d'être un crac en 3D !

Désolé de t'avoir souhaité la bienvenue
avec un programme aussi simpliste,
(dans la rubrique Présentation et bavardage)
mais je débute en 3D.
(j'ai plus l'habitude des utilitaires...
ou inutilitaires...)
Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://jjn4.e-monsite.com
Jean Claude

avatar

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

MessageSujet: Re: editeur de monde 3d   Lun 16 Aoû 2010 - 11:24

Bienvenu à Carl,

Une remarque:
3d_z_scale objet,szobjet(objet) + position(Cool

Code:
3d_z_scale objet,szobjet(objet) + position(8)
Un avantage d'utiliser les balises "[code]" et "[\code]"

Et si tu pouvais nous mettre tout dans un Zip à télécharger, pour que l'on puisse éssayer, çà s'rait super.

Very Happy
.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
bhv2010



Nombre de messages : 10
Date d'inscription : 16/05/2010

MessageSujet: Re: editeur de monde 3d   Mer 18 Aoû 2010 - 15:46

Salut,

J'ai une instruction inconnue ligne 243 quand j'execute ton code ???

ça marche chez toi ????
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
carl



Nombre de messages : 6
Date d'inscription : 14/08/2010

MessageSujet: reponse a bvh2010   Mer 18 Aoû 2010 - 19:31

je pense que c'est surement parce que j'ai utilisé la derniere version test la 0.9.20i2 du 30 juillet 2012 de panoramic ; il y a un lien sur le forum anglais , c'est la que je l'ai telechargé
sinon pour les images il te faudras en trouver une pour representer le sol et les autres pour composer le skybox espérant avoir repondu a ta question et merci d'y avoir porté interêt
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jack
Admin
avatar

Nombre de messages : 1764
Date d'inscription : 28/05/2007

MessageSujet: Re: editeur de monde 3d   Mer 18 Aoû 2010 - 19:50

Citation :
J'ai une instruction inconnue ligne 243 quand j'execute ton code ???

De la ligne 243 à la ligne 249, on trouve effectivement des commandes spécifiques à la version instantanée 0.9.20i2 du 30 juillet 2010 qui permettent de gérer un SKYBOX:
3D_SKYBOX
3D_LOAD_TEXTURE_TOP
3D_LOAD_TEXTURE_LEFT
3D_LOAD_TEXTURE_BACK
3D_LOAD_TEXTURE_FRONT
3D_LOAD_TEXTURE_RIGHT
3D_LOAD_TEXTURE_BOTTOM
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramic.free-boards.net
Contenu sponsorisé




MessageSujet: Re: editeur de monde 3d   

Revenir en haut Aller en bas
 
editeur de monde 3d
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» editeur de monde 3d
» Editeur de monde 3D
» sondage région du monde !
» le monde d'Edenay
» Certificat Castello( Le monde du jeu et de la fête) à vendre

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos projets-
Sauter vers: