Quote: "put DarkAI.ini in keywords."
Thanks for the help files
but It doesn't work: where is DarkAI.ini file , I don't find it, ? The file is missing ? all I can find is the DarkAI folder and an internet link / shortcut to JZIP software homepage !? please do you have the keywords file ?
apart from that I've tried to write a continuation to the previous program: I've tried to make some First person controls with mouse and arrowkeys : but it's little bit jerky movement when it comes to collision IMO collisions with sparky are far better... :
Rem Project: PROGRAMME1
Rem Created: Tuesday, June 23, 2009
Rem ***** Main Source File *****
REM initialiser le programme:
f_INITIALISER()
REM déclarer les variables :
GOTO Declarer_Variables_aGOT
Declarer_Variables_zGOT:
f_PREPARE_SCENE()
DO
SET CURSOR 0,0
PRINT V_ENEMIZ_E
PRINT V_NiveauZ_E
PRINT V_JOUEUR_E
f_CONTROLES()
AI UPDATE
SYNC
LOOP
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 ; "." dossier courant
-COLONNES PUIS LIGNES / LARGEUR puis HAUTEUR
|-------------------------------------------------------|
Enregistrer sousI '_Préférences.txt'; |----------------||
|-----------------------------------------------------|||
>enregistrer sous '_Préférences.txt'
>enregistrer sous '\Bin32\Donné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 '\Bin32\Donné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 *****
FUNCTION f_INITIALISER()
AUTOCAM OFF : SYNC ON : SYNC RATE GET DISPLAY REFRESH RATE()
SET DISPLAY MODE 1024,768,32,1,2,0 : MAKE OBJECT PLAIN 1,1,1 : POSITION OBJECT 1,-5,-5,-5 : EXCLUDE OBJECT ON 1
AI START : RANDOMIZE TIMER()
AI SET RADIUS 1.5
HIDE MOUSE
ENDFUNCTION
FUNCTION f_PREPARE_SCENE()
REM AJOUTE CONTAINER 1
// AI ADD CONTAINER 1
REM AJOUTE L'IA:
REM ENEMIES:
FOR C = 1 TO 3
FOR L = 1 TO 3
MAKE OBJECT CONE V_ENEMIZ_E,4 : PITCH OBJECT DOWN V_ENEMIZ_E,90 : FIX OBJECT PIVOT V_ENEMIZ_E
SCALE OBJECT V_ENEMIZ_E,50,100,50
POSITION OBJECT V_ENEMIZ_E,8+C*16,2,8+L*16 : COLOR OBJECT V_ENEMIZ_E,RGB(255,0,0)
AI ADD ENEMY V_ENEMIZ_E
INC V_ENEMIZ_E,1
NEXT
NEXT C
REM AMIS:
V_AmiA_E = V_EnemiZ_E+0
V_AmiZ_E = V_AMIA_E
REM AJOUTE LE JOUEUR et CURSEUR :
V_JOUEUR_E = V_AmiZ_E
V_DESTINATION_E = V_JOUEUR_E + 1
V_CURSEUR1_E = V_JOUEUR_E + 2
V_CURSEUR2_E = V_JOUEUR_E + 3
MAKE OBJECT CUBE V_JOUEUR_E,3 : POSITION OBJECT V_JOUEUR_E,-10,-1.5,-10 : `` HIDE OBJECT V_JOUEUR_E
AI ADD FRIENDLY V_JOUEUR_E
AI SET ENTITY CONTROL V_JOUEUR_E,0
MAKE OBJECT BOX V_DESTINATION_E,3,0.5,3 : SET OBJECT EMISSIVE V_DESTINATION_E,RGB(50,255,50) : COLOR OBJECT V_DESTINATION_E,RGB(50,255,50)
MAKE OBJECT SPHERE V_CURSEUR1_E,1 : SCALE OBJECT V_CURSEUR1_E,400,25,400 : SET OBJECT EMISSIVE V_CURSEUR1_E,RGB(0,255,0) : COLOR OBJECT V_CURSEUR1_E,RGB(0,255,0)
MAKE OBJECT CUBE V_CURSEUR2_E,1 : SCALE OBJECT V_CURSEUR2_E,120,500,120 : SET OBJECT EMISSIVE V_CURSEUR2_E,RGB(0,255,0) : COLOR OBJECT V_CURSEUR2_E,RGB(0,255,0)
DISABLE OBJECT ZDEPTH V_CURSEUR2_E
DISABLE OBJECT ZDEPTH V_DESTINATION_E
// AI ADD PLAYER 0,0
REM LE NIVEAU:
V_NiveauA_E = V_JOUEUR_E+4
V_NiveauZ_E = V_NiveauA_E
FOR C = 0 TO 5
FOR L = 0 TO 5
MAKE OBJECT CUBE V_NIVEAUZ_E,4
POSITION OBJECT V_NIVEAUZ_E,C*16,2,L*16
AI ADD STATIC OBSTACLE V_NIVEAUZ_E
INC V_NIVEAUZ_E,1
NEXT
NEXT C
REM WAYPOINTS :
// FOR C = 0 TO 6
// FOR L = 0 TO 6
// AI ADD WAYPOINT 0, 6+(C*16), 6+(L*16)
// NEXT
// NEXT C
// AI ADD WAYPOINT 0, -8, -8
// AI DEBUG SHOW WAYPOINTS 0,-1
REM MET A JOUR :
AI COMPLETE OBSTACLES : AI Update Waypoint Visibility 0
REM PREPARE CAMERA :
POSITION CAMERA 0,2,0 : PITCH CAMERA DOWN 0
MAKE OBJECT SPHERE 2000,5 ; HIDE OBJECT 2000
// AI DEBUG SHOW VIEW ARCS -4
// MAKE OBJECT CUBE 2,3
// POSITION OBJECT 2,6,3,6 : COLOR OBJECT 2,RGB(255,255,0)
// AI ADD ENEMY 2 :
// AI ENTITY FOLLOW PLAYER 2,20
//
// MAKE OBJECT CUBE 1000,3 : POSITION OBJECT 1000,-6,0,6
REM DEBUG :
// AI DEBUG SHOW OBSTACLE BOUNDS 0,4
// AI DEBUG HIDE PATHS
// AI DEBUG SHOW PATHS -1
// AI DEBUG SHOW VIEW ARCS 4
// AI Debug Show Waypoints 0,4
// AI Debug Show Waypoint Edges 0,4
// DIM T_lecture_E(1) : LOAD ARRAY "1Z",T_lecture_E() : V_LECTURE1_#=T_lecture_E(0) : V_LECTURE2_#=T_lecture_E(1)
// LOCAL DIM T_CARTEB_E(V_LECTURE1_#,V_LECTURE2_#) AS BYTE
// LOAD ARRAY "1A",T_CARTEB_E()
// 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
FUNCTION f_CONTROLES()
V_OldCameraY_# = V_CameraY_#
V_OldCameraX_# = V_CameraX_#
V_CameraX_# = V_CameraX_#+((mousemovey()+0.0)/7.0)
V_CameraY_# = V_CameraY_#+((mousemovex()+0.0)/7.0)
V_CameraZ_# = Camera angle Z()
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)
AI SET ENTITY ANGLE Y V_JOUEUR_E,V_CameraY_#
IF UPKEY() = 1 AND RIGHTKEY()=0
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+0,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+0,0.1)
ENDIF
IF UPKEY() = 1 AND RIGHTKEY()=1
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+45,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+45,0.1)
ENDIF
IF RIGHTKEY() = 1 AND UPKEY() = 0
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+90,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+90,0.1)
ENDIF
IF RIGHTKEY() = 1 AND DOWNKEY() = 1
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+135,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+135,0.1)
ENDIF
IF DOWNKEY() = 1 AND RIGHTKEY() = 0
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+0,-0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+0,-0.1)
ENDIF
IF LEFTKEY() = 1 AND DOWNKEY() = 1
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+225,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+225,0.1)
ENDIF
IF LEFTKEY() = 1 AND DOWNKEY() = 0
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+90,-0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+90,-0.1)
ENDIF
IF UPKEY() = 1 AND LEFTKEY()=1
AI ENTITY GO TO POSITION V_JOUEUR_E, NEWXVALUE(CAMERA POSITION X(),CAMERA ANGLE Y()+315,0.1), NEWZVALUE(CAMERA POSITION Z(),CAMERA ANGLE Y()+315,0.1)
ENDIF
POSITION CAMERA AI GET ENTITY X(V_JOUEUR_E),2,AI GET ENTITY Z(V_JOUEUR_E)
// CONTROL CAMERA USING ARROWKEYS 0,0.1,1
// AI SET ENTITY POSITION V_JOUEUR_E,CAMERA POSITION X(),CAMERA POSITION Z()
rem position mouse marker
// if mouseclick()=1
// rem position mouse marker
// pick screen mousex(),mouseY(),1000
// pick screen mousex(),mouseY(),1
// vx# = get pick vector x()
// vy# = get pick vector y()
// vz# = get pick vector z()
// dy# = -camera position y()/vy#
// vx# = vx#*dy# + camera position x()
// vz# = vz#*dy# + camera position z()
// position object 1000,CURVEVALUE(vx#,OBJECT POSITION X (1000),10),0,CURVEVALUE(vZ#,OBJECT POSITION Z (1000),10)
// endif
// position object V_CURSEUR1_E,vX#,0,vZ#
// position object V_CURSEUR2_E,vX#,2.5,vZ#
// IF MOUSECLICK()=1
// position object V_DESTINATION_E,vX#,0.5,vZ#
// ENDIF
// POSITION CAMERA CURVEVALUE(vx#,OBJECT POSITION X (V_JOUEUR_E),5),64,CURVEVALUE(vZ#,OBJECT POSITION Z (V_JOUEUR_E),5)
// POSITION CAMERA OBJECT POSITION X (V_JOUEUR_E),80,OBJECT POSITION Z (V_JOUEUR_E)
// POSITION CAMERA CURVEVALUE(vx#,CAMERA POSITION X(),80),110,CURVEVALUE(vZ#,CAMERA POSITION Z(),80)
// POSITION CAMERA CURVEVALUE(OBJECT POSITION X (V_JOUEUR_E),CAMERA POSITION X(),25),110,CURVEVALUE(OBJECT POSITION Z(V_JOUEUR_E),CAMERA POSITION Z(),25)
//
// POSITION OBJECT 2000,CAMERA POSITION X(),2,CAMERA POSITION Z()
rem marker position
// x# = object position x(1000)
// z# = object position z(1000)
// AI ENTITY GO TO POSITION V_JOUEUR_E,OBJECT POSITION X (V_DESTINATION_E),OBJECT POSITION Z (V_DESTINATION_E)
// AI SET ENTITY IDLE POSITION V_JOUEUR_E,OBJECT POSITION X (V_DESTINATION_E),OBJECT POSITION Z (V_DESTINATION_E)
// AI SET PLAYER POSITION OBJECT POSITION X(V_JOUEUR_E),OBJECT POSITION Z(V_JOUEUR_E)
// AI SET PLAYER POSITION AI GET ENTITY X(V_JOUEUR_E), AI GET ENTITY Z(V_JOUEUR_E) : AI SET PLAYER ANGLE Y AI GET ENTITY ANGLE Y(V_JOUEUR_E)
ENDFUNCTION
Rem ***** Included Source File *****
declarer_Variables_aGOT:
GLOBAL V_EnemiA_E : V_EnemiA_E = 3
GLOBAL V_EnemiZ_E : V_EnemiZ_E = V_EnemiA_E
GLOBAL V_AmiA_E : V_AmiA_E = V_EnemiZ_E+0
GLOBAL V_AmiZ_E : V_AmiZ_E = V_AMIA_E
GLOBAL V_JOUEUR_E : V_JOUEUR_E = V_AmiZ_E
GLOBAL V_DESTINATION_E : V_DESTINATION_E = V_JOUEUR_E + 1
GLOBAL V_CURSEUR1_E : V_CURSEUR1_E = V_JOUEUR_E + 2
GLOBAL V_CURSEUR2_E : V_CURSEUR2_E = V_JOUEUR_E + 3
GLOBAL V_NiveauA_E : V_NiveauA_E = V_JOUEUR_E+4
GLOBAL V_NiveauZ_E : V_NiveauZ_E = V_NiveauA_E
REM CAMERA :
GLOBAL V_OldCameraY_#
GLOBAL V_OldCameraX_#
GLOBAL V_CameraX_#
GLOBAL V_CameraY_#
GLOBAL V_CameraZ_#
GLOBAL V_CameraTest_X_#
REM PICK SCREEN VARIABLES :
GLOBAL vx#
GLOBAL vy#
GLOBAL vz#
GLOBAL dy#
GOTO Declarer_Variables_zGOT
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) AS BYTE : 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) AS BYTE
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
PRINT "EXECUTIONS TERMINEES ; ECHAP POUR QUITTER..."
// 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
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