Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Objet 3D_PLANE, réalisation d'un dé en 3D Sam 19 Mai 2018 - 23:26 | |
| Bonjour à tous ! Voici un dé en 3D créé avec un assemblage de 6 objets 3D_PLANE. La souris permet de déplacer la caméra devant l'objet. - Code:
-
' ------------------------------------------------------------------------------ ' PANORAMIC 3D Dice / Dé 3D ' Marc - May 2018 - Panoramic v0.9.28.i18 ' http://panoramic-language.pagesperso-orange.fr/French/index.html ' http://panoramic.top-forum.net ' ------------------------------------------------------------------------------ ' main Init() Skin() Dice() Instructions() CAM_MOVE -15 ON_MOUSE_MOVE 100,Move END ' ------------------------------------------------------------------------------ SUB Init() LABEL Move,Quit DIM x,y HEIGHT 0,540 + HEIGHT(0)-HEIGHT_CLIENT(0) WIDTH 0,500 + WIDTH(0)-WIDTH_CLIENT(0) LEFT 0,(screen_x-WIDTH(0))/2 TOP 0,(screen_y-HEIGHT(0))/2 COLOR 0,50,150,50 PICTURE 1 WIDTH 1,200 HEIGHT 1,200 ON_CLOSE 0, Quit END_SUB ' ------------------------------------------------------------------------------ SUB dice() DIM_LOCAL i% SCENE3D 100 HEIGHT 100,500 WIDTH 100,500 COLOR 100,50,150,50 FOR i% = 1 TO 6 3D_PLANE i% 3D_V_TILE i%,1 3D_U_TILE i%,1 NEXT i% 3D_Z_POSITION 1,5 3D_IMAGE_TEXTURE 1,10 3D_IMAGE_TEXTURE 2,11 3D_Z_POSITION 2,-5 3D_Y_ROTATE 2,180 3D_IMAGE_TEXTURE 3,12 3D_X_POSITION 3,5 3D_Y_ROTATE 3,90 3D_IMAGE_TEXTURE 4,13 3D_X_POSITION 4,-5 3D_Y_ROTATE 4,-90 3D_IMAGE_TEXTURE 5,14 3D_X_ROTATE 5,90 3D_Y_POSITION 5,5 3D_U_TILE 6,1 3D_IMAGE_TEXTURE 6,15 3D_X_ROTATE 6,-90 3D_Y_POSITION 6,-5 END_SUB ' ------------------------------------------------------------------------------ SUB Skin() 2D_TARGET_IS 1 face1() face2() face3() face4() face5() face6() END_SUB ' ------------------------------------------------------------------------------ SUB Face1() COLOR 1,250,0,0 2D_FILL_COLOR 250,250,250 2D_CIRCLE 40,40,15 2D_CIRCLE 40,160,15 2D_CIRCLE 160,160,15 2D_CIRCLE 160,40,15 2D_CIRCLE 100,100,15 2D_FILL_COLOR 250,0,0 PRINT_TARGET_IS 1 FONT_NAME 1,"Times New Roman" FONT_SIZE 1,7 PRINT_LOCATE 130,185 PRINT "Marc - May 2018" 2D_FILL_COLOR 250,250,250 IMAGE 10 2D_IMAGE_COPY 10,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Face2() COLOR 1,0,250,0 2D_CIRCLE 40,40,15 2D_CIRCLE 160,160,15 IMAGE 11 2D_IMAGE_COPY 11,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Face3() COLOR 1,0,0,250 2D_CIRCLE 40,40,15 2D_CIRCLE 100,100,15 2D_CIRCLE 160,160,15 IMAGE 12 2D_IMAGE_COPY 12,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Face4() COLOR 1,250,250,0 2D_CIRCLE 40,40,15 2D_CIRCLE 40,160,15 2D_CIRCLE 160,160,15 2D_CIRCLE 160,40,15 IMAGE 13 2D_IMAGE_COPY 13,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Face5() COLOR 1,0,250,250 2D_CIRCLE 100,100,15 IMAGE 14 2D_IMAGE_COPY 14,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Face6() COLOR 1,250,0,250 2D_CIRCLE 40,40,15 2D_CIRCLE 40,100,15 2D_CIRCLE 40,160,15 2D_CIRCLE 160,160,15 2D_CIRCLE 160,40,15 2D_CIRCLE 160,100,15 IMAGE 15 2D_IMAGE_COPY 15,0,0,200,200 END_SUB ' ------------------------------------------------------------------------------ SUB Instructions() PICTURE 50 HEIGHT 50,40 WIDTH 50,500 TOP 50,500 COLOR 50,50,150,50 2D_TARGET_IS 50 2D_FILL_COLOR 50,150,50 PRINT_TARGET_IS 50 FONT_NAME 50,"Times New Roman" FONT_SIZE 50,18 FONT_ITALIC 50 PRINT_LOCATE 60,10 PRINT "Move the mouse / Bougez la souris" END_SUB ' ------------------------------------------------------------------------------ Move: CAM_X_POSITION 50-(MOUSE_X_POSITION(100)/5) CAM_Y_POSITION (MOUSE_Y_POSITION(100)/5)-50 RETURN ' ------------------------------------------------------------------------------ Quit: TERMINATE RETURN
EDIT : Sur une excellente remarque de FredIsland, mise à jour du source (explications dans les posts ci-dessous).
Dernière édition par Marc le Mar 22 Mai 2018 - 0:25, édité 1 fois | |
|
Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: Objet 3D_PLANE, réalisation d'un dé en 3D Mar 22 Mai 2018 - 0:33 | |
| Bonsoir à tous ! Merci à tous de vos retours. - Fredisland a écrit:
- J'ai apporté une petite amélioration pour éviter que le CPU ne s'emballe avec la boucle WHILE
Excellent ! Très pertinent ! Merci ! Je prends ! Avec ma boucle WHILE : 28 % de taux d’occupation processeur Avec ta solution ON_MOUSE_MOVE : 0% de taux d’occupation processeur J’ai mis à jour le source du premier post. - Papydall a écrit:
- et dis-lui qu'on ne peut pas montrer la face deux du dé !
- Minibug a écrit:
- Par contre, comme le dit Papydall, comment on fait pour voir la face avec le chiffre 2
La face 2 existe bien mais la caméra dans un SCENE3D opère un déplacement rectiligne devant l’objet. Elle ne tourne pas autour de l’objet. Pour voir la face cachée, il faudrait faire tourner le dé lui-même sur son axe x ou y. | |
|