Voilà, je voudrais savoir comment faire ( car je sais que c´ est possible) de faire un chargement en attendant, car la, avant de voir la scène 3D, on attends bien 15 secondes avec un joli écran tout blanc. Mais je ne sais pas comment faire.
Deuxièmement, les collisions avec les arbres. Je veux faire ces collisions par calcul mathématique et non en utilisant la fonction SET COLLISION ON. Je voulais faire les collisions avec la commande sqrt qui renvoie la distance entre deux objets, et quand cette dernière approche de 0, on bloque le mouvement de la shpère. Je pensais à celà, mais ça ne marche pas:
-------------------------------------------------
IF Sqrt((aX#-X#)^2)+(aY#-Y#)^2+(aZ#-Z#)^2) < 10
X# = aX#
Y# = aY#
Z# = aZ#
ENDIF
-------------------------------------------------
Et je vous laisse le code source, pour pouvoir le modifier afin que les éléments qui font attendre au démarrage soit chargé en voyant un écran de chargement pour ne pas attendre.
-------------------------------------------------
`Active le rafraichissement et défini la résoultion
SYNC ON : SYNC RATE 30
SET DISPLAY MODE 1024,768,32
HIDE MOUSE
`Chargement des médias qui serviront de textures pour les objets ( non vu dans le tutorial mais simple)
LOAD IMAGE " texture_objet.bmp",1
LOAD IMAGE " texture_matrice.bmp",2
`Création de la sphère
Make object sphere 1,25
Position object 1,500,0,1000
Texture object 1,1
`Fabrication de la Matrice
Make matrix 1,10000.0,10000.0,50,50
Randomize matrix 1,90.0
prepare matrix texture 1,2,2,2
`Positionne les objets aléatoirement sur la matrice
FOR arbres = 2 TO 500
`Chargement du modèle
LOAD OBJECT " arbre.x",arbres
position_x = RND(10000) : position_z = RND(10000)
`Positionne les objets
Position object arbres,position_x,GET GROUND HEIGHT(1,position_x,position_z),position_z : Scale object arbres,5000,5000,5000
`Initialise les variables concernant la position ( aléatoire) des arbres
aX# = Object position X(arbres)
aZ# = Object position Z(arbres)
aY# = Get ground height(1,aX#,aZ#)
NEXT arbres
`Definition de l´environnement
SET CAMERA RANGE 1,5000
`Active le brouillard puis défini la distance d´affichage et enfin sa couleur
FOG ON : Fog distance 4000 : Fog color RGB(128,128,128)
`Défini la couleur de l´arrière plan
Color backdrop RGB(128,128,128)
`Début de la boucle principale
DO
`Un petit ajout, le scrolling de la texture de la sphère, si vous ne comprenez pas, laissez un message sur le forum ; )
Scroll object texture 1,0,0.010
`Initialise les variables concernant la sphère
aY# = Object angle Y(1)
`Test si on appuie à gauche et fait tourner la sphère en concéquence
IF rightkey()
YROTATE OBJECT 1,WRAPVALUE(aY#+5.0)
ENDIF
`Test si on appuie à droite et fait tourner la sphère en conséquence
IF leftkey()
YROTATE OBJECT 1,WRAPVALUE(aY#-5.0)
ENDIF
`Test si on appuie sur la touche haut, et fait bouger la sphère uniquement si elle se trouve sur la matrice
IF upkey()
XTest# = NEWXVALUE(X#,aY#,20) : ZTest# = NEWZVALUE(Z#,aY#,20)
IF XTest# > 0 and XTest# < 10000 and ZTest# > 0 and ZTest# < 10000
Move Object 1,10
ENDIF
ENDIF
`Initialise les variables concernant la position de la sphère
X# = Object position X(1)
Z# = Object position Z(1)
Y# = Get ground height(1,X#,Z#)
`Positionne la sphère
Position object 1,X#,Y#+12.5,Z#
`Initialise les variables concernant la caméra
caX# = Camera angle X()
caZ# = Camera angle Z()
`Renvoie les nouvelles valeurs de caX# et caZ# pour positionner la caméra
caX# = NEWXVALUE(X#,aY#-180,100)
caZ# = NEWZVALUE(Z#,aY#-180,100)
`Positionne la caméra
Position camera caX#,Y#+50,caZ#
Point camera X#,Y#+25,Z#
`Fin de la boucle principale
SYNC : LOOP
-------------------------------------------------
J´ espère que vous m´avez compris et que vous pourrez m´aider, même si vous me proposer des réponses dans un autre langage c´ est aps grave, ça servira toujours 