PANORAMIC: CONSEILS

PAGE PRINCIPALE

1 - GÉNÉRALITÉS

2 - MONDE 3D

3 - OBJETS

4 - MULTIMÉDIA : SONS, MUSIQUES, FILMS

5 - DIVERS

1 - GÉNÉRALITÉS
1.1 - Quelle est la structure d'un programme ?

La structure conseillée d'un programme est la suivante :

1 - Déclaration : LABEL et DIM

2 - Programme principal : définition des composants (objets), calculs, comportement, END

3 - Traitement d'événements

Exemple : création d'un bouton qui affiche "Cliquez sur moi", puis "Salut!" quand on a cliqué sur lui.

rem déclaration des étiquettes utilisées
LABEL clk

rem déclaration des variables utilisées
DIM A$

rem --- PROGRAMME PRINCIPAL ---
A$ = "Cliquez sur moi"
rem
création d'un OBJET
button 1
rem lui donner un petit texte (son "intitulé")
caption 1,a$
rem définir le traitement quand il est cliqué
on_click 1,clk

rem --- FIN DU PROGRAMME PRINCIPAL ---
end

rem --- TRAITEMENT DES ÉVÉNEMENTS---
Clk :
caption 1,"Salut!"
return

Haut de Page

2 - MONDE 3D
2.1-Comment créer un monde 3D ?

1 - Tout d'abord, créez un objet pour visualiser votre monde 3D avec le mot-clé scene3d et lui donner un numéro :

scene3d 1

Une caméra 3D et une lumière 3D sont alors automatiquement créés avec votre scene3d et maintenant vous pouvez les utiliser (pour les positionner et viser un point avec la caméra)

2 - Placer des objets dans votre monde 3D

Vous pouvez créer des objets 3D prédéterminés (3d_box, 3d_cube, 3d_cone, 3d_torus, 3d_sphere, 3d_cylinder, 3d_text, 3d_teapot, 3d_dodecahedron) ou des objets 3D formatés : 3d_mesh (en "3DS" format de Studio 3D Max) ou 3d_actor (en "MD2", format de Quake).

Avec le mot-clé correspondant, vous lui donnez un numéro 3D :

3d_teapot 1

3 - Vous pouvez alors les déplacer, les dimensionner, les faire tourner, les colorer, leur donner une texture...

Haut de Page

2.2 - Comment avoir un monde 3D emplissant tout l'espace disponible ?

Créer un monde 3D :

scene3D 1

Lui donner tout l'espace disponible dans FORM numéro 0

full_space 1

Remarque : pour donner tout l'espace de l'écran à FORM numéro 0 :

full_space 0

En combinant les 2 commandes, vous avez un monde 3D prenant tout l'écran :

full_space 0 : rem FORM0 prend tout l'espace sur l'écran
scene3D 1
full_space 1 : rem SCENE3D prend tout l'espace sur FORM0

Haut de Page
2.3 - Comment avoir deux mondes 3D avec des objets 3D ?

Utilisez 3D_TARGET_IS pour désigner le récepteur d'objet 3D

scene3d 1 : rem créer le premier monde 3D
scene3d 2 : rem créer le deuxième monde 3D
left 2,210 : rem le positionner (autrement il recouvre le premier)
3d_teapot 1 : rem créer le premier objet 3D dans le premier monde 3D
3d_target_is 2 : rem assigner le deuxième monde 3D comme le récepteur de commandes 3D
3d_teapot 2 : rem créer le deuxième objet 3D dans le deuxième monde 3D

Haut de Page
2.4 - Comment colorer le fond d'un monde 3D ?

Utilisez le numéro N du scene3D (le monde 3D a été créé par la commande scene3d N) dans la commande color :

color N, Rouge, Vert, Bleu

Haut de Page
2.5 - Comment utiliser des rotations 3D ?

3D_X_rotate, 3D_Y_rotate, 3D_Z_rotate sont relatifs aux axes propres de l'objet.

Les axes propres de l'objet 3D sont les axes qui étaient parallèles aux axes du monde quand l'objet 3D a été créé.

Les angles de rotation sont exprimés par rapport à la position d'origine:

3D_X_rotate N,30 : rem positionne l'objet 3D N à 30° par rapport à sa position d'origine

Haut de Page

2.6 - Comment déplacer un objet 3D ?

Tous les objets 3D sont créés à la position (0,0,0).

Pour déplacer un objet 3D, utilisez les commandes : 3d_x_position, 3d_y_position, 3d_z_position

Exemple :

rem la sphère n°1 avec rayon=2 est créée en (0,0,0)
3d_sphere 1,2

rem la déplacer en (5,6,7)
3d_x_position 1,5
3d_y_position 1,6
3d_z_position 1,7

Haut de Page

2.7 - Comment utiliser un objet 3D créé dans le format 3DS (3D Studio Max) ?

rem créez un scene3D (monde 3D)
scene3d 1 : rem 1 est le numéro d'objet

rem créez un objet "maillé"
3d_mesh 1 : rem 1 est le numéro d'objet 3D

rem chargez votre fichier dans l'objet 3D numéro 1
3d_load_object 1,"MonObjet.3ds"

Haut de Page

2.8 - Comment utiliser un objet 3D créé dans le format MD2 (Quake) ?

rem créez un scene3D (monde 3D)
scene3d 1 : rem 1 est le numéro d'objet

rem créez un objet3D "acteur"
3d_actor 1 : rem 1 est le numéro d'objet 3D

rem chargez votre fichier dans l'objet 3D numéro 1
3d_load_object 1,"MonObjet.md2"

Haut de Page
3 - OBJETS
3.1 - Comment colorer le fond d'un FORM ?

Utiliser le numéro N du FORM dans la commande color (0 pour le FORM de Base, ou N pour un FORM créé par la commande form N) :

color N, Rouge, Vert, Bleu

Haut de Page

3.2 - il est conseillé de faire une pause après la coloration d'un FORM :

rem mettre le fond en couleur blanche
color 0,255,255,255 : display

Haut de Page
3.3 - Comment colorer le fond d'une image ?

Une image a été créée par la commande picture N . Utilisez le numéro N dans la commande color :

color N, Rouge, Vert, Bleu

Haut de Page
3.4 - Comment créer un MENU ?

Voir l'exemple suivant :

rem créer l'objet "menu principal"
main_menu 1

rem créer 2 "sous menus" au même niveau (fils de l'objet numéro 1)
sub_menu 2 : caption 2,"Fichier" : parent 2,1
sub_menu 3 : caption 3,"Edition" : parent 3,1

rem créer 3 "sous-menus" fils de l'objet numéro 2
sub_menu 4 : caption 4,"Ouvrir" : parent 4,2
sub_menu 5 : caption 5,"Sauvegarder" : parent 5,2
sub_menu 6 : caption 6,"Quitter" : parent 6,2

rem créer 3 "sous-menus" fils de l'objet numéro 3
sub_menu 7 : caption 7,"Copier" : parent 7,3
sub_menu 8 : caption 8,"Coller" : parent 8,3
sub_menu 9 : caption 9, "Défaire" : parent 9, 3

Haut de Page
3.5 - Comment utiliser LEFT, TOP, WIDTH, HEIGHT ?

left et top sont utilisés pour positionner un objet sur son père (son conteneur).

width et height sont utilisés pour dimensionner un objet.

Haut de Page

3.6 - Comment placer un BUTTON (ou un autre objet) sur un autre FORM que FORM numéro 0 ?

Première possibilité :

form 3 : rem créer un autre FORM (numéro 3)
button 1 : rem créer un BUTTON (numéro 1)
parent 1,3 : rem le BUTTON va sur son père (le container) : FORM numéro 3

Deuxième possibilité :

form 3 : rem créer un autre FORM (numéro 3)
command_target_is 3 : rem toutes les commandes vont sur l'objet numéro 3
button 1 : rem créer un BUTTON : il va sur sur FORM numéro 3

Haut de Page
3.7 - Comment placer un MENU sur un autre FORM que FORM numéro 0 ?

form 3 : rem créer une autre forme (numéro 3)
command_to 3 : rem toutes les commandes vont sur l'objet numéro 3
main_menu 1 : rem créer un menu sur FORM numéro 3
caption 1,"Menu" : rem lui donner un caption le rend visible

Haut de Page
3.8 - Comment utiliser un OPEN_DIALOG pour choisir un fichier ?

Un open_dialog est créé par la commande open_dialog N et est utilisé par la commande file_name$ (N), N étant le numéro de l'open_dialog.

Comme file_name$ retourne soit le nom du fichier choisi par l'utilisateur, soit le caractère souligné "_" si aucun fichier n'est choisi, la valeur rendue doit être stockée dans une variable string puis comparée à "_".

dim a$ : rem déclarer une variable string

open_dialog 1 : rem créer un open_dialog
a$=file_name$(1) : rem choisir un nom de fichier avec l'open_dialog numéro 1
if a$ <> "_" then - - - : rem si a$ contient un nom de fichier, alors - - -

Haut de Page
3.9 - Comment sauvegarder un MEMO dans un fichier avec SAVE_DIALOG ?

Un save_dialog est créé par la commande save_dialog N et est utilisé par la commande file_name$(N), N étant le numéro du save_dialog.

save_dialog 1 : rem créer un save_dialog
memo 2 : rem créer un memo

rem pour sauvegarder le contenu du memo avec le save_dialog
file_save 2,file_name$(1)

Haut de Page
3.10 - Comment charger une image avec un fichier dont le nom absolu est dans a$ ?

dim a$ : rem déclarer une variable string

picture 1 : rem créer une image
a$="c:\MyPicture.bmp" : rem définir le nom du fichier
file_load 1,a$ : rem the file is loaded in the picture

Haut de Page
3.11 - Comment charger une image avec un fichier choisi par un OPEN_DIALOG ?

dim a$ : rem déclarer une variable string

picture 1 : rem créer une image
open_dialog 2 : rem créer un open_dialog
a$=file_name$ (2) : rem active l'open_dialog numéro 2
if a$ <> "_" then file_load 1,a$ : rem si un fichier est choisi, le charger dans l'image

Rappel : la fonction file_name$ retourne le caractère souligné "_" si aucun fichier n'a été choisi par l'utilisateur. C'est pourquoi il faut comparer la valeur de a$ avec "_" : if a$ <> "_"
Haut de Page
3.12 - Comment charger un MEMO avec un fichier choisi par un OPEN_DIALOG ?

dim a$ : rem déclarer une variable string

memo 1 : rem créer un memo
open_dialog 2 : rem créer un open_dialog
a$ = file_name$(2) : rem activer l'open_dialog
if a$ <> "_" then file_load 1,a$ : rem si un fichier est choisi, le charger dans le memo

Rappel : la fonction file_name$ retourne le caractère souligné "_" si aucun fichier n'a été choisi par l'utilisateur. C'est pourquoi il faut comparer la valeur de a$ avec "_" : if a$ <> "_"
Haut de Page
3.13 - CAPTION est possible seulement avec BUTTON, OPTION, CHECK, ALPHA ou FORM

caption N,"Salut" : rem N doit être un numéro de button, d''option, de check, d'alpha ou de form

Cette commande sur un autre type d'objet produit une erreur.

Haut de Page

3.14 - TEXT est possible seulement avec EDIT ou COMBO

text N,"Salut" : rem N doit être le numéro d'un EDIT ou d'un COMBO

Cette commande sur un autre type d'objet produit une erreur.

Haut de Page
3.15 - Comment utiliser les barres ?

Il y a 3 sortes de barres : track_bar, scroll_bar et progress_bar.

- Pour lire la position du curseur :

A=position(N) : rem N est le numéro de l'objet barre.

- Pour changer la position de curseur :

position N, P : rem P est la position à prendre par le curseur de la barre numéro N.

Quand vous créez des barres, elles ont des valeurs standards pour le minimum et le maximum.

- Pour changer la valeur minimale :

min N,M : rem M est la valeur minimale, N est le numéro de l'objet barre.

- Pour changer la valeur maximale :

max N,M : rem M est la valeur maximale, N est le numéro de l'objet barre.

Haut de Page
4 - MULTIMÉDIA : SONS, MUSIQUES, FILMS
4.1 - Comment charger et jouer un fichier de musique MIDI ?

sound 1 : rem créer un son
file_load 1,"file.mid" : rem charger un fichier
play 1 : rem le jouer

Haut de Page
4.2 - Comment charger et jouer un fichier son WAV ?

sound 1 : rem créer un son
file_load 1,"file.wav" : rem charger un fichier
play 1 : rem le jouer

Haut de Page
4.3 - Comment charger et jouer un fichier de musique MP3 ?

sound 1 : rem créer un son
file_load 1,"fichier.mp3" : rem charger un fichier
play 1 : rem le jouer

Haut de Page
4.4 - Comment charger et jouer un film avec un fichier dont le nom absolu est dans a$

dim a$ : rem déclarer une variable string

a$="c:\MonFilm.avi" : rem définir le nom du fichier
movie 1 : rem créer un film
file_load 1,a$ : rem charger le fichier
play 1 : rem le jouer

Haut de Page
5 - DIVERS

5.1 - Comment utiliser des fonctions mathématiques manquantes ?

tangente(x) = SIN(x) / COS(x)

- > utiliser SIN(X) / COS(X)

ArcSin(x) = ArcTan(x/sqr(1-sqr(x)))

-> utiliser ATN(X/SQR(1-SQR(X)))

ArcCos(x) = ArcTan(sqr(1-sqr(x)) /x)

-> utiliser ATN(SQR(1-SQR(X))/X)

Haut de Page

5.2 - Comment utiliser INKEY$ ?

Voir l'exemple suivant :

dim a$
label loop

loop:
a$=inkey$
if a$="" then goto loop

rem ici, a$ contient la touche qui a été enfoncée

Haut de Page

5.3 - Comment utiliser les sous-programmes ?

Un sous-programme est un groupe de commandes qui peut être traités un certain nombre de fois.

Un sous-programme commence par un LABEL (que l'on doit déclarer par le mot clé LABEL) et finit par RETURN.

Quand RETURN est exécuté, l'exécution de programme retourne à la commande immédiatement après la commande GOSUB.

Haut de Page

5.4 - Comment utiliser les événements ?

Quand un événement (clic, changement) arrive sur un objet, vous définissez dans un sous-programme les commandes à traiter pour répondre à l'événement.

Un sous-programme commence par un LABEL et se termine par RETURN.

Attention : Certains événements ne sont pas possibles avec certains objets !

Haut de Page

Dernière mise à jour : 25 Avril 2008