You can download the newest demo of 'TIREUR D'ELITE' there:
link 1 :
https://forumfiles.thegamecreators.com/download/1788358
link 2 :
http://www.mediafire.com/?wzm3nladznq
link 3 :
http://www.mediafire.com/file/wzm3nladznq/_TIREUR D'ELITE_26_06_09c.zip
note these links are different mirrors for the same file (same version )
You can watch youtube video there :
link:
http://www.youtube.com/watch?v=cXWk8HMptZ0
a second video is there:
http://www.youtube.com/watch?v=nTzJJBs5vJI
description: This is the new version of my programme 'TIREUR d'ELITE' ('The Marksman') a first person shooter. still WIP, ATM... but will be a full video game soon.
Controls: use the arrowkeys to move around, use mouse to aim and mousewheel to move upward or downward (mouse scroll = move up or down).
The aim of this demo is :
-to show Dark A.I. entities in action, following and attacking the player (you). there are two entities represented by a cube and an eye (ball, textured with eyes textures).
-to show new Lightning idea that produce real time light & shadows on every object in the scene: the brightness of the objects change as they move around the lights or around the shadows.
TRY IT ! this is a must ! and I would like to share it with you... I will keep on updating the programme.
the full programme is there below :
REM * Titre : programmer1
REM * Auteur : programmeur prog'
REM * Date : 01/ 06/ 2009
REM ;
REM ###################################################################################
REM |PROG PRINCIPAL "_prog.dba" ; "_prog-PRO.dbpro"///////////////////////////////////|
REM ################################################################################### #
IF FILE EXIST("util.txt")=1 THEN f_Util()
f_INITIALISER()
REM Débuter PROGRAMME PRINCIPAL ; déclarer les variables ;
GLOBAL V_Joueur_# as float : V_Joueur_#= 0
GLOBAL V_TailleJoueur_# as float : V_TailleJoueur_#=2
GLOBAL V_OldJoueur_X_# as float : V_OldJoueur_X_#= 2.5
GLOBAL V_OldJoueur_Y_# as float : V_OldJoueur_Y_#= 2.5
GLOBAL V_OldJoueur_Z_# as float : V_OldJoueur_Z_#= 2.5
GLOBAL V_Joueur_X_# as float : V_Joueur_X_#= V_OldJoueur_X_#
GLOBAL V_Joueur_Y_# as float : V_Joueur_Y_#= V_OldJoueur_Y_#
GLOBAL V_Joueur_Z_# as float : V_Joueur_Z_#= V_OldJoueur_Z_#
GLOBAL V_Joueur_Vitesse_# : V_Joueur_Vitesse_#= 0.2
GLOBAL V_Camera_Vitesse_# : V_Camera_Vitesse_#= 0.2
GLOBAL V_Avance_# : V_Avance_#= 0.0
GLOBAL V_Droite_# : V_Droite_#= 0.0
GLOBAL V_Recul_# : V_Recul_#= 0.0
GLOBAL V_Gauche_# : V_Gauche_#= 0.0
GLOBAL V_OldCameraY_#
GLOBAL V_OldCameraX_#
GLOBAL V_CameraY_#
GLOBAL V_CameraX_#
GLOBAL V_CameraTest_X_#
REM VARIABLE D'USAGE ET DE LECTURE
GLOBAL V_LECTURE1_# : GLOBAL V_LECTURE2_# : GLOBAL V_LECTURE3_#
// GLOBAL V_COL_E
// GLOBAL V_LIN_E
REM CHEMINS ET NOM$
GLOBAL V_Niveau_E : V_Niveau_E = 2
GLOBAL V_Niveau_JEU_$ : V_Niveau_JEU_$ = "1"
REM TEMPS:
global V_BOUCLE1=0
global V_SYNC1=0
global V_TEMPS_ZERO1=0
REM LUMIERE:
GLOBAL A3= 1
GLOBAL B3= 1
// GOTO Declarer_Variables_aGOT
// Declarer_Variables_zGOT:
F_DEROULEMENT1()
REM ___ F I N ____/////////////////
FINIR_TOUT:
END
REMSTART
; NOTER | Enregistrer sousI | Enregistrer sousII | Répertoire à structurer | INCLURE dans l'éxecutable | LIRE comme suit |
;
|***********************************************************|
NOTER; |************---------------------------------------||
|*********************************************************|||
-FONCTIONS préfixe 'f_'
-VARIABLES préfixe majuscule 'V_' = globale ; 'v_' = locale ; SUFFIXE Variables _E ; _# ; _$ (Entier ; réel ; caractères)
-numéroter variables globales 1,2 etc pour les différencier des locales déclarées dans des fonctions;
-TABLEAUX préfixes majuscule 'T_' = GLOBAL ; 't_' = LOCAL ; SUFFIXE Tableaux _E ; _# ; _$
-TYPES préfixes 'TYP_'
-ETIQUETTES suffixe majuscule '_GOT' = GOTO ; '_GOS' = GOSUB / de A à Z : zGOT:
-CHEMINS "" séparateur ; ".." dossier parent ;
-COLONNES PUIS LIGNES / LARGEUR puis HAUTEUR
|-------------------------------------------------------|
Enregistrer sousI '_Préférences.txt'; |----------------||
|-----------------------------------------------------|||
>enregistrer sous '_Préférences.txt'
>enregistrer sous 'Bin32Données_0a_Préférences.txt' (<-préf. par défaut)
>Fichier '_Préférences.txt' ; contenu;
-résolution largeur. hauteur. profondeur. Vsync. Anti-aliasing;
1024
-
768
-
32
-
1
-
1
-Langue, 1 français, 2 Anglais;
1
-Qualité / performances 1=très bas, 2=bas, 3=Bon, 4=Très Bon, 5=Max élevé;
4
-Typo texte (s'assurer que la typo est installée sur votre disque dur) sinon laisser ARIAL;
Arial
-Taille Texte: 1,2 ou 3 pour améliorer la définition utilisée par les lettres du texte;
1
-demander confirmation avant de quitter le programme grâce à touche ECHAP ; 0=non ;1=oui ;
0
|--------------------------------------------------------|
Enregistrer sousII _initialisation.txt; |---------------||
|------------------------------------------------------|||
>enregistrer sous 'Bin32Données_0a_initialisation.txt'
>Fichier '_initialisation.txt' ; contenu;
-fréquence d'images/seconde;
60
-Titre de barre de titre;
programme darkbasicpro
-Titre jeu;
"programme1"
-Auteur;
"programmeur prog'"
-année;
(c)2009
-Message d'erreur de base;
"erreur"
REMEND
Rem ***** Included Source File *****
REM * Titre : programmer1
REM * Auteur : programmeur prog'
REM * Date : 01/ 06/ 2009
REM ;
REM ###################################################################################
REM |***** Included Source File ***** "_prog.dba" ; "_prog-PRO.dbpro"///////////////////////////////////|
REM ################################################################################### #
REM /////// CONTROLES /////////////
FUNCTION f_CONTROLES()
REM AVANT / ARRIERE
IF UPKEY()=1 THEN INC V_Avance_#,0.1 ELSE V_Avance_#= 0
IF DOWNKEY()=1 THEN INC V_Recul_#,0.1 ELSE V_Recul_#= 0
IF V_Avance_# > V_Recul_#
IF V_Recul_#>0 THEN DEC V_Recul_#, 0.1
ENDIF
IF V_Avance_# < V_Recul_#
IF V_Avance_#>0 THEN DEC V_Avance_#, 0.1
ENDIF
REM DROITE / GAUCHE
IF RIGHTKEY()=1 THEN INC V_Droite_#,0.1 ELSE V_Droite_#= 0
IF LEFTKEY()=1 THEN INC V_Gauche_#,0.1 ELSE V_Gauche_#= 0
IF V_Droite_# > V_Gauche_#
IF V_Gauche_#>0 THEN DEC V_Gauche_#, 0.1
ENDIF
IF V_Droite_# < V_Gauche_#
IF V_Droite_#>0 THEN DEC V_Droite_#, 0.1
ENDIF
REM Enregistre coordonnées joueur axe xyz
V_OldJoueur_X_# = CAMERA POSITION X()
V_OldJoueur_Y_# = CAMERA POSITION Y()
V_OldJoueur_Z_# = CAMERA POSITION Z()
V_OldCameraY_# = V_CameraY_#
V_OldCameraX_# = V_CameraX_#
REM CAMERA / SOURIS
// V_CameraY_# = WrapValue(V_CameraY_#+MousemoveX()*V_Camera_Vitesse_#)
// V_CameraX_# = WrapValue(V_CameraX_#+MousemoveY()*V_Camera_Vitesse_#)
// V_CameraZ_# = Camera angle Z()
REM CONTROLES MODIFIES
V_CameraX_# = V_CameraX_#+((mousemovey()+0.0)/7.0)
V_CameraY_# = V_CameraY_#+((mousemovex()+0.0)/7.0)
V_CameraZ_# = Camera angle Z()
// rotate camera camera angle x()+((mousemovey()+0.0)/2.0),camera angle y()+((mousemovex()+0.0)/2.0),0
Rem Control pour camera
IF V_Avance_#>0 AND V_Gauche_#=0 AND V_Droite_#=0
MOVE CAMERA V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
IF V_Recul_#>0 AND V_Gauche_#=0 AND V_Droite_#=0
MOVE CAMERA 0-V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
IF V_Gauche_#>0 AND V_Avance_#=0 AND V_Recul_#=0
V_Joueur_X_# = Newxvalue(V_Joueur_X_#,Wrapvalue(V_CameraY_#-90),V_Joueur_Vitesse_#)
V_Joueur_Z_# = Newzvalue(V_Joueur_Z_#,Wrapvalue(V_CameraY_#-90),V_Joueur_Vitesse_#)
ENDIF
IF V_Droite_#>0 AND V_Avance_#=0 AND V_Recul_#=0
V_Joueur_X_# = Newxvalue(V_Joueur_X_#,Wrapvalue(V_CameraY_#+90),V_Joueur_Vitesse_#)
V_Joueur_Z_# = Newzvalue(V_Joueur_Z_#,Wrapvalue(V_CameraY_#+90),V_Joueur_Vitesse_#)
ENDIF
REM DIAGONALES: AVANCER.
IF V_Gauche_#>0 AND V_Avance_#>0
YROTATE CAMERA CAMERA ANGLE Y()-45
MOVE CAMERA V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
IF V_Droite_#>0 AND V_Avance_#>0
YROTATE CAMERA CAMERA ANGLE Y()+45
MOVE CAMERA V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
REM DIAGONALES: RECULER.
IF V_Gauche_#>0 AND V_Recul_#>0 AND V_Avance_#=0
YROTATE CAMERA CAMERA ANGLE Y()+45
MOVE CAMERA 0-V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
IF V_Droite_#>0 AND V_Recul_#>0 AND V_Avance_#=0
YROTATE CAMERA CAMERA ANGLE Y()-45
MOVE CAMERA 0-V_Joueur_Vitesse_#
V_Joueur_X_# = CAMERA POSITION X()
V_Joueur_Y_# = CAMERA POSITION Y()
V_Joueur_Z_# = CAMERA POSITION Z()
ENDIF
REM MOUVEMENT DE HAUT EN BAS :
V_Joueur_Y_# = V_Joueur_Y_#+MOUSEMOVEZ()/100
// V_Joueur_Y_# = CURVEVALUE (V_Joueur_Y_#+MOUSEMOVEZ()/90,0,0.01)
// V_Joueur_Y_# = Get ground height(1,V_Joueur_X_#,V_Joueur_Z_#)+35
Rem Tourne camera
// V_CameraTest_X_#=WrapValue(V_CameraX_#-180)
// if V_CameraTest_X_# > 225 then V_CameraX_#=45
// if V_CameraTest_X_# < 135 then V_CameraX_#=315
V_CameraTest_X_#=WrapValue(V_CameraX_#-180)
if V_CameraTest_X_# > 270 then V_CameraX_#=90
if V_CameraTest_X_# < 90 then V_CameraX_#=270
YRotate camera CurveAngle(V_CameraY_#,V_OldCameraY_#,24)
XRotate camera CurveAngle(V_CameraX_#,V_OldCameraX_#,24)
// rotate camera camera angle x()+((mousemovey()+0.0)/2.0),camera angle y()+((mousemovex()+0.0)/2.0),0
Rem REPositionne Camera
Position Camera V_Joueur_X_#,V_Joueur_Y_#,V_Joueur_Z_#
f_CollisionGlissante(V_OldJoueur_X_#,V_OldJoueur_Y_#,V_OldJoueur_Z_#,V_Joueur_X_#,V_Joueur_Y_#,V_Joueur_Z_#,V_TailleJoueur_#,V_Niveau_E)
Rem Position Listener
Position Listener V_Joueur_X_#,V_Joueur_Y_#,V_Joueur_Z_#
Rotate Listener 0,V_CameraY_#,0
ENDFUNCTION
REM /////// COLLISION GLISSANTE /////////////
FUNCTION f_CollisionGlissante(X1#,Y1#,Z1#,X2#,Y2#,Z2#,Radius#,Obj)
C = sc_SphereSlide(Obj,X1#,Y1#,Z1#,X2#,Y2#,Z2#,Radius#,0)
IF C > 0
V_Joueur_X_# = sc_getCollisionSlideX()
V_Joueur_Y_# = sc_getCollisionSlideY()
V_Joueur_Z_# = sc_getCollisionSlideZ()
POSITION CAMERA V_Joueur_X_#, V_Joueur_Y_#, V_Joueur_Z_#
Position Listener V_Joueur_X_#, V_Joueur_Y_#, V_Joueur_Z_#
Rotate Listener 0,V_CameraY_#,0
ENDIF
REM Sliding Collision with Sparky's Collision dll
REM By RUCCUS ----- Email/MSN: Ask-RUCCUS@hotmail.com
ENDFUNCTION
REM ///////// intervalle de temps en millisecondes /////////////
FUNCTION Sync_TEMPS1(V_T1)
IF V_SYNC1>0
DEC V_SYNC1,1
V_BOUCLE1 = 0
ENDIF
IF V_BOUCLE1 = 0 THEN V_TEMPS_ZERO1 = TIMER()
IF TIMER()-V_TEMPS_ZERO1 => V_T1 : V_SYNC1 = 1 : ENDIF
IF V_BOUCLE <=90000 THEN INC V_BOUCLE1,1
// PRINT TIMER()
// PRINT V_BOUCLE1
// PRINT V_TEMPS_ZERO1
// print V_SYNC1
ENDFUNCTION V_SYNC1
REM ////// INITIER /////////////////
FUNCTION f_INITIALISER()
AUTOCAM OFF : SYNC ON : SYNC RATE GET DISPLAY REFRESH RATE( )
SET DISPLAY MODE 1024,768,32,1,0,0 : MAKE OBJECT CUBE 1,1 : POSITION OBJECT 1,-5,-5,-5 : EXCLUDE OBJECT ON 1
RANDOMIZE TIMER()
AI START
ENDFUNCTION
REM /////// SCENE //////////////////
FUNCTION f_PREPARE_SCENE()
SET DIR "BIN" : SET DIR V_Niveau_JEU_$
IF FILE EXIST(V_Niveau_JEU_$+".DBO") = 0
LOAD OBJECT V_Niveau_JEU_$+".x",V_Niveau_E : SAVE OBJECT V_Niveau_JEU_$+".dbo",V_Niveau_E : DELETE OBJECT V_Niveau_E : LOAD OBJECT V_Niveau_JEU_$+".dbo",V_Niveau_E
ELSE
LOAD OBJECT V_Niveau_JEU_$+".dbo",V_Niveau_E
ENDIF
SET OBJECT LIGHT V_Niveau_E, 0
REM Met le niveau dans le groupe 0 avec collision complexe polygone (type 0) 2 facesPerNode
SC_SETUPCOMPLEXOBJECT V_Niveau_E,0,2 : SC_allowObjectScaling V_Niveau_E : SCALE OBJECT V_Niveau_E,100,100,100 : SC_updateObject V_Niveau_E
REM CHARGER 3 NIVEAUX....
POSITION CAMERA V_Joueur_X_#,V_Joueur_Y_#,V_Joueur_Z_#
MAKE OBJECT CUBE 200,4 : POSITION OBJECT 200,2,2,5
REM ENEMI:
AI SET RADIUS 1.5
AI ADD OBSTACLE FROM LEVEL V_Niveau_E,0,0.1,0.1
AI COMPLETE OBSTACLES 0
AI DEBUG SHOW OBSTACLE BOUNDS 0,-4
// AI DEBUG SHOW WAYPOINTS 0,-3
MAKE OBJECT SPHERE 202,3.5
LOAD IMAGE "eye.bmp",202
TEXTURE OBJECT 202,202
TURN OBJECT LEFT 202,180
FIX OBJECT PIVOT 202
// TURN OBJECT LEFT 202,180
// MAKE OBJECT CUBE 202,2 :
POSITION OBJECT 202,24,-0,24
AI ADD ENEMY 202
AI SET ENTITY STANCE 202,1
// AI SET ENTITY AGGRESSIVE 202
AI Set Entity Can Attack 202,1
AI SET ENTITY CAN STRAFE 202,1
AI SET ENTITY CAN SEARCH 202,1
AI SET ENTITY CAN ROAM 202,1
AI SET ENTITY AVOID DISTANCE 202, 10
MAKE OBJECT CUBE 203,2
POSITION OBJECT 203,20,-0,20
AI ADD ENEMY 203
AI SET ENTITY STANCE 203,1
// AI SET ENTITY AGGRESSIVE 202
AI Set Entity Can Attack 203,1
AI SET ENTITY CAN STRAFE 203,1
AI SET ENTITY CAN SEARCH 203,1
AI SET ENTITY CAN ROAM 203,1
AI SET ENTITY AVOID DISTANCE 203, 10
MAKE OBJECT SPHERE 201,4 : POSITION OBJECT 201,20,-2,20 : HIDE OBJECT 201
AI ADD FRIENDLY 201
AI SET ENTITY CONTROL 201,0
REM LUMIERE:
SET POINT LIGHT 0,CAMERA POSITION X(),CAMERA POSITION Y(),CAMERA POSITION Z()
SET AMBIENT LIGHT 0
COLOR LIGHT 0,1,1,1
MAKE LIGHT 1
SET POINT LIGHT 1,CAMERA POSITION X(),CAMERA POSITION Y()+35,CAMERA POSITION Z()
COLOR LIGHT 1,255,0,0
DIM T_lecture_E(1) : LOAD ARRAY "1Z",T_lecture_E() : V_LECTURE1_#=T_lecture_E(0) : V_LECTURE2_#=T_lecture_E(1)
GLOBAL DIM T_CARTEB_E(V_LECTURE1_#-1,V_LECTURE2_#-1)
LOAD ARRAY "1A",T_CARTEB_E(0)
// FOR V_COL_E=0 TO V_LECTURE1_#
// FOR V_LIN_E=0 TO V_LECTURE2_#
// T_CARTEB_E(V_COL_E,V_LIN_E)=RGBR(POINT(V_COL_E,V_LIN_E))
// IF T_CARTEB_E(V_COL_E,V_LIN_E)=255
// ENDIF
// NEXT V_LIN_E
// NEXT V_COL_E
ENDFUNCTION
REM ///////
FUNCTION f_NETTOYER()
ENDFUNCTION
FUNCTION f_QUITTER()
ENDFUNCTION
FUNCTION f_INTRO()
ENDFUNCTION
FUNCTION f_MENU()
ENDFUNCTION
REM /////////////////////////////////
Rem ***** Included Source File *****
REM * Titre : programmer1
REM * Auteur : programmeur prog'
REM * Date : 01/ 06/ 2009
REM ;
REM ###################################################################################
REM |***** Included Source File ***** "_prog.dba" ; "_prog-PRO.dbpro"///////////////////////////////////|
REM ################################################################################### #
REM ////////// UTILITAIRES ////////////
FUNCTION f_Util()
V_Niveau_JEU_$ = SAVE FILE DIALOG(GET DIR$(),".","NUMERO DU NIVEAU: 1,2,3... ")
SYNC
WAIT 350
IF FILE EXIST(V_Niveau_JEU_$+".X") = 1 AND FILE EXIST(V_Niveau_JEU_$+".DBO") = 0
V_LECTURE1_$ = SAVE FILE DIALOG(GET DIR$(),"","NOMBRE TEXTURES : 1,2,3... ")
// V_LECTURE3_$ = ""
V_Niveau_E = 1
LOAD OBJECT V_Niveau_JEU_$+".x",V_Niveau_E
SAVE OBJECT V_Niveau_JEU_$+".dbo",V_Niveau_E : DELETE OBJECT V_Niveau_E
ENDIF
DIM T_CARTEZ_E(1) AS INTEGER
LOAD BITMAP "1A.BMP",1 : SET CURRENT BITMAP 1 : V_LECTURE1_#=BITMAP WIDTH(1) : V_LECTURE2_#=BITMAP HEIGHT(1)
DIM T_CARTEA_E(V_LECTURE1_#-1,V_LECTURE2_#-1) : T_CARTEZ_E(0) = V_LECTURE1_# : T_CARTEZ_E(1) = V_LECTURE2_#
LOCK PIXELS
FOR V_COL_E=0 TO V_LECTURE1_#-1
FOR V_LIN_E=0 TO V_LECTURE2_#-1
T_CARTEA_E(V_COL_E,V_LIN_E)=RGBR(POINT(V_COL_E,V_LIN_E))
NEXT V_LIN_E
NEXT V_COL_E
SAVE ARRAY "1A",T_CARTEA_E() : SAVE ARRAY "1Z",T_CARTEZ_E()
UNLOCK PIXELS
DELETE BITMAP 1
UNDIM T_CARTEA_E() : DIM T_CARTEA_E(V_LECTURE1_#-1,V_LECTURE2_#-1)
LOAD ARRAY "1A",T_CARTEA_E()
CREATE BITMAP 1,V_LECTURE1_#,V_LECTURE2_# : SET CURRENT BITMAP 1
FOR V_COL_E=0 TO V_LECTURE1_#-1
FOR V_LIN_E=0 TO V_LECTURE2_#-1
rem T_CARTEA_E(V_COL_E,V_LIN_E)=RGBR(POINT(V_COL_E,V_LIN_E))
dot V_COL_E,V_LIN_E,rgb(T_CARTEA_E(V_COL_E,V_LIN_E),0,0)
NEXT V_LIN_E
NEXT V_COL_E
DO
COPY BITMAP 1,0
// SET CURSOR 0,0
// FOR C=0 TO V_LECTURE1_#-15
// PRINT C
// NEXT C
SYNC
LOOP
// LOAD BITMAP "1B.BMP",1 : SET CURRENT BITMAP 1 : V_LECTURE1_#=BITMAP WIDTH(1) : V_LECTURE2_#=BITMAP HEIGHT(1)
// GLOBAL DIM T_CARTEB_E(V_LECTURE1_#,V_LECTURE2_#)
// LOCK PIXELS
// FOR V_COL_E=0 TO V_LECTURE1_#
// FOR V_LIN_E=0 TO V_LECTURE2_#
// T_CARTEB_E(V_COL_E,V_LIN_E)=RGBR(POINT(V_COL_E,V_LIN_E))
// NEXT V_LIN_E
// NEXT V_COL_E
// SAVE ARRAY "CB",T_CARTEB_E(0)
// DIM T_lecture_E(1) : T_lecture_E(0)=V_LECTURE1_# : T_lecture_E(1)=V_LECTURE2_# : SAVE ARRAY "CD",T_lecture_E(0)
// UNLOCK PIXELS : DELETE BITMAP 1
END
ENDFUNCTION
REM
Rem ***** Included Source File *****
// declarer_Variables_aGOT:
//
//
// GOTO Declarer_Variables_zGOT
`#######################################################
`|"F_Deroulement.dba" |///////////////////////////////////|
`# (c) prog' ########################################### #############################
FUNCTION F_DEROULEMENT1()
f_INTRO()
f_MENU()
f_PREPARE_SCENE()
REM f_NETTOYER()
REM f_QUITTER()
JOUER_LA_SCENE_Zgot:
REM BOUCLE ////////////////////////
DO
SET CURSOR 0,0
PRINT V_Joueur_X_#
PRINT V_Joueur_Y_#
PRINT V_Joueur_Z_#
A = INT(CAMERA POSITION X())
B = INT(CAMERA POSITION Z())
A2 = INT(OBJECT POSITION X(202))
B2 = INT(OBJECT POSITION Z(202))
A3 = INT(OBJECT POSITION X(203))
B3 = INT(OBJECT POSITION Z(203))
// PRINT v_lecture2_#
PRINT T_CARTEB_E(B,A)
SET OBJECT DIFFUSE 201,rgb(T_CARTEB_E(B,A),T_CARTEB_E(B,A),T_CARTEB_E(B,A))
SET OBJECT DIFFUSE 202,rgb(T_CARTEB_E(B2,A2),T_CARTEB_E(B2,A2),T_CARTEB_E(B2,A2))
SET OBJECT DIFFUSE 203,rgb(T_CARTEB_E(B3,A3),T_CARTEB_E(B3,A3),T_CARTEB_E(B3,A3))
POSITION LIGHT 1,CAMERA POSITION X(),CAMERA POSITION Y(),CAMERA POSITION Z()
AI SET ENTITY POSITION 201,CAMERA POSITION X(),CAMERA POSITION Z()
// AI Set Entity Idle Position 201, CAMERA POSITION X(),CAMERA POSITION Z()
// AI SET ENTITY ANGLE Y 201, CAMERA ANGLE Y()
// CONTROL CAMERA USING ARROWKEYS 0,0.1,1
f_CONTROLES()
// IF Sync_TEMPS1(1) = 1 THEN f_CONTROLES()
IF Sync_TEMPS1(1000) = 1 THEN TURN OBJECT RIGHT 200,6
POSITION MOUSE SCREEN WIDTH()/2,SCREEN HEIGHT()/2
AI UPDATE
SYNC
LOOP
ENDFUNCTION
thanks in advance for testing, enjoy please leave some comments, I'll read it
come see my DarkAI examples: <a>http://forum.thegamecreators.com/?m=forum_view&t=151610&b=30</a>
http://forum.thegamecreators.com/?m=forum_view&t=151610&b=30