Une version instantanée est la version actuelle du développement de PANORAMIC, elle vous permet d'utiliser les toutes dernières améliorations, sans attendre la sortie de la prochaine version.
Une version instantanée n'a pas de procédure d'installation (c'est un fichier zip contenant l'EDITEUR).
Les nouveaux mots-clés n'ont pas de coloration syntaxique dans l'EDITEUR.
Pour obtenir la version instantanée du 30 juillet 2010, cliquez sur
Télécharger ce fichierVoici les apports de cette version, par rapport à la dernière version instantanée du 17 juillet 2010:
--------------------------------------------------------------------------------
1 - nouvel objet 3D:3D_SKYBOX N : crée une boite à 6 cotés de taille infinie représentant un décor pour le monde 3D (en général le ciel). Tout le monde 3D qui est créé se trouve à l'intérieur de cette boite. Cet objet 3D est immobile et recoit une texture par coté (le décor).
Il y a une contrainte: cet objet doit être le premier objet 3D créé.
Nouvelles commandes pour lui appliquer ses textures (une par coté):
3D_LOAD_TEXTURE_BOTTOM N,F$ : applique au coté bas de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_FRONT N,F$ : applique au coté avant de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_RIGHT N,F$ : applique au coté droit de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_BACK N,F$ : applique au coté arrière de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_LEFT N,F$ : applique au coté gauche de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
3D_LOAD_TEXTURE_TOP N,F$ : applique au coté haut de l'objet 3D_SKYBOX numéro N la texture contenue dans le fichier de nom F$
2 - nouvel objet 3D:
3D_PLANE N : crée un plan dont la texture est tuilable: sa texture peut être répétée comme les tuiles d'un toit.
Par défaut, il a 4 tuiles (2 sur U et 2 sur V).
Cet objet peut:
- se positionner par les commandes classiques (3D_X_POSITION, 3D_Y_POSITION, 3D_Z_POSITION, 3D_POSITION),
- se tourner sur ses axes par les commandes classiques (3D_X_ROTATE, 3D_Y_ROTATE, 3D_Z_ROTATE, 3D_ROTATE),
- se dilater ou se rétrécir par les commandes classiques (3D_X_SCALE, 3D_Y_SCALE, 3D_Z_SCALE, 3D_SCALE). 3D_Z_SCALE est inactive (un plan n'ayant que 2 dimensions),
- recevoir une texture par la commande classique 3D_LOAD_TEXTURE. L'image de la texture se place sur une tuile (elle est donc répétée 4 fois sur le plan).
Nouvelles commandes pour répéter la texture:
3D_U_TILE N,T : nombre T de répétition de la texture sur l'axe U du 3D_PLANE numéro N (=nombre de tuiles sur U)
3D_V_TILE N,T : nombre T de répétition de la texture sur l'axe V du 3D_PLANE numéro N (=nombre de tuiles sur V)
3 - nouvelles commandes 3D pour créer un brouillard:FOG_ON : crée un effet de brouillard dans le SCENE3D cible. Le brouillard est alors blanc et sa distance d'opacité est 1000 (un objet 3D de distance supérieure à 1000 de la caméra n'est plus vu).
FOG_OFF : retire l'effet de brouillard dans le SCENE3D cible
FOG_DISTANCE D : dans le SCENE3D cible, le brouillard rend invisibles les objets 3D situés à une distance de la caméra supérieure à D. Par défaut, D=1000 (les objets 3D situés à une distance > D de la caméra ne sont pas vus)
FOG_COLOR R,G,B : le brouillard dans le SCENE3D cible prend la couleur définie par les composantes R,G,B.
4 - l'inversion des lignes et des colonnes de GRID_WRITE et GRID_READ$ a été corrigée.
On a bien:
GRID_WRITE N,L,C,V$ : écriture de V$ dans la case L (ligne) C (colonne) du GRID de numéro N
V$=GRID_READ$(N,L,C) : lecture du contenu de la case L (ligne) C (colonne) du GRID de numéro N
5 - numéro des objets ayant subi un événement:NUMBER_CLICK variable système, numéro du dernier objet cliqué (-1 à l'initialisation)
NUMBER_CHANGE variable système, numéro du dernier objet changé (-1 à l'initialisation)
NUMBER_KEY_UP variable système, numéro du dernier objet sur lequel une touche a été relachée (-1 à l'initialisation)
NUMBER_KEY_DOWN variable système, numéro du dernier objet sur lequel une touche a été enfoncée (-1 à l'initialisation)
--------------------------------------------------------------------------------
Exemples:
1 - brouillard:
- Code:
-
DIM I%,S%
SCENE3D 1:FULL_SPACE 1
FOR I%=1 TO 200
3D_SPHERE I%,0.3
IF RND(2)<1
S%=1
ELSE
S%=-1
END_IF
3D_X_POSITION I%,S%*RND(10)
IF RND(2)<1
S%=1
ELSE
S%=-1
END_IF
3D_Y_POSITION I%,S%*RND(10)
3D_Z_POSITION I%,-1*RND(100)
NEXT I%
WAIT 1000
FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 500:FOG_OFF
WAIT 500:FOG_ON:FOG_DISTANCE 30
WAIT 1000
FOG_COLOR 255,220,220
WAIT 1000
FOG_COLOR 220,255,220
WAIT 1000
FOG_COLOR 220,220,255
2 - utilisation d'un 3D_SKYBOX:
- Code:
-
dim key,angle,rayon
label boucle,pointe_camera
FULL_SPACE 0:SCENE3D 1:FULL_SPACE 1
3D_SKYBOX 1
3D_LOAD_TEXTURE_TOP 1,"SKY_TOP.jpg"
3D_LOAD_TEXTURE_LEFT 1,"SKY_LEFT.jpg"
3D_LOAD_TEXTURE_BACK 1,"SKY_BACK.jpg"
3D_LOAD_TEXTURE_FRONT 1,"SKY_FRONT.jpg"
3D_LOAD_TEXTURE_RIGHT 1,"SKY_RIGHT.jpg"
3D_LOAD_TEXTURE_BOTTOM 1,"SKY_BOTTOM.jpg"
angle=3.2
rayon=10
cam_x_position 0
cam_y_position 0
cam_z_position 0
gosub pointe_camera
CAPTION 0,"clic DROIT de la souris pour sortir"
boucle:
key=scancode
if key=37
angle=angle+0.01
gosub pointe_camera
end_if
if key=39
angle=angle-0.01
gosub pointe_camera
end_if
if key=2 then terminate
display
goto boucle
end
pointe_camera:
point_x_position rayon*sin(angle)
point_z_position rayon*cos(angle)
return
Les textures peuvent être téléchargées à
http://dl.free.fr/hUOwu4iIq/SKY_BOX.zip3 - numéro d'objet sur lequel on clique:
- Code:
-
label affiche
on_click 0,affiche
button 10
caption 10,"cliquez"
on_click 10,affiche
button 20:left 20,80
caption 20,"cliquez"
on_click 20,affiche
end
affiche:
caption 0,"l'objet cliqué a pour numéro "+str$(number_click)
return