basic_FrameWork by Serge Adjo28th Jan 2009 8:18
|
---|
Summary THIS is just a framework for an FPS: Description THIS is just a frame work for an FPS: Code ` This code was downloaded from The Game Creators ` It is reproduced here with full permission ` http://www.thegamecreators.com rem * Titre : programmer1 rem * Auteur : programmeur prog' rem * Date : 22/ 02/ 2009 `; `################################################################################### `|PROG PRINCIPAL "_prog.dba" ; "_prog-PRO.dbpro"///////////////////////////////////| `################################################################################### # `Débuter PROGRAMME PRINCIPAL ; déclarer les variables en premier; `; GOSUB Initialiser_GOS ;` commencer par déclarer variables ; f_Initialiser_prog() :` commencer le prog' par cette fonction ; `; FINIR_TOUT: END :` FIN de TOUT LE PROGRAMME `; ` ===================== ` FIN `; 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 -CHEMINS "\" séparateur ; ".." dossier parent ; |-------------------------------------------------------| 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" |--------------------------------------------------------| Répertoires à structurer; |-----------------------------|| |------------------------------------------------------||| ->\Repertoire Parent\; *Exécutable.exe ; _prog-PRO.dbpro ; LisezMoi.txt ; _Préférences.txt* ___|->\Aide_Help_Informations\; * Aide.txt ; Auteur.txt ; Raccourci vers _Préférences.txt* ___|->\_Cprog-PRO\; * _Fprog.dba ; _Fprog-PRO.dbpro ; Lisez-Moi.txt * ___|->\Bin32\; * * ______|->\Données_0a\; * _initialisation.txt ; _Préférences.txt (défaut)* -à zipper-protéger ______|->\Données_0b\; * * -à zipper-protéger ______|->\Données_001 (&++)\; * * (\Données_001 (&++)\ ces répertoires sont à zipper-protéger) ______|->\Algos\; *(copie de) _prog-PRO.dbpro* _________|->\mes_Sources\; *tutos.dba ; médias et icône.ico* fin; |__|__|__| 1__2__3__4 ème niveau |-------------------------------------------------------| INCLURE dans l'éxecutable; |---------------------------|| |-----------------------------------------------------||| médias de base, icône, sprites ; données textuelles. |*******************************************************| LIRE comme suit; |**********************---------------|| |*****************************************************||| ; ------------------------------------------------ séparateur simple ------------------------------------------------ ; ************************************************ séparateur plus ************************************************ ; __________________________________________________________ BOUCLE DO|________________________________________________| ; __________________________________________________________ FIN LOOP|_________________________________________________| ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< CHANGEMENT DE REPERTOIRE DE TRAVAIL <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ; ################################################# |//////////////////////////////////////////////| ################################################# début de fichier prog' ; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| début et fin de fonction `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin ; remend `; `; `############################################################# `|"F_Initialisation.dba" |///////////////////////////////////| `# (c) prog' ############################################ ############################# `But du programme; initialiser le programme, ajuster résolution et rafraîchissement de l'écran; `; `DéCLARER les variables du programme; Initialiser_GOS: ` déclarer Variables globales d'erreurs; GLOBAL V_Erreur1_$ : GLOBAL V_Erreur2_$ : V_Erreur2_$=" Erreur - presser ECHAP pour QUITTER ce programme. " GLOBAL V_Langue1_E :` VARIABLE GLOBALE LANGUE remstart ` déclarer Variables globales de lecture; GLOBAL _LectureA$ : GLOBAL _LectureB$ : GLOBAL _LectureC$ : GLOBAL _LectureD$ : GLOBAL _LectureE$ : GLOBAL _LectureF$ ` Crée/efface un memblock pour permmettre à SC_Collision de marcher; IF MEMBLOCK EXIST(1) THEN DELETE MEMBLOCK 1 remend ` Fin retour; RETURN `; remstart `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| rem f_Deroulement() gère le bon déroulement de TOUT le programme; FUNCTION f_Deroulement() f_Sequence_INTRO() ` FIN de la Fonction; GOTO FINIR_TOUT ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin remend `; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| rem f_Initialiser_prog() initialiser le prog., ajuster résolution, charger fichier "_préférences.txt" FUNCTION f_Initialiser_prog() remstart ENDFUNCTION ` >>>>>>>> CHANGE LE REPERTOIRE DE TRAVAIL <<<<<<<<<<<< !!! SET DIR ".." : ` <<<<<<<<< !!! f_OPEN_TO_READ(1,"Données_0a\Préférences.txt","Fichier introuvable: ''FPSute-New\Bin32\Données_0a\Préférences.txt''") : ` Charger fichier "Préférences.txt" afin de changer résolution; READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : ` lire 3 lignes résolution LxHxProfondeur; READ STRING 1,_LectureB$ : READ STRING 1,_LectureC$ : READ STRING 1,_LectureD$ : READ STRING 1,_LectureE$ : READ STRING 1,_LectureF$ SET DISPLAY MODE VAL(_LectureA$),VAL(_LectureB$),VAL(_LectureC$),VAL(_LectureD$),VAL(_LectureE$),VAL(_LectureF$) READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : _Langue1=VAL(_LectureA$) : ` lire 1, langue READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : SET TEXT FONT _LectureA$ : ` lire 1, Police texte READ STRING 1,_LectureA$ : SET TEXT SIZE VAL(_LectureA$) : ` lire 1, TAILLE texte READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : SYNC ON : SYNC RATE VAL(_LectureA$) : ` lire 1, fréquence d'image SYNC RATE; READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : SET WINDOW TITLE _LectureA$ : SET WINDOW OFF : ` lire 1, Titre du programme; READ STRING 1,_LectureA$ : ` lire 1 ligne intermédiaire; READ STRING 1,_LectureA$ : ` lire 1, Activer ECHAP Presto; IF 10=VAL(_LectureA$) THEN ENABLE ESCAPEKEY IF 0=VAL(_LectureA$) THEN DISABLE ESCAPEKEY : ` Sinon désactiver ECHAP ; ` <<<<<<<<<<<<< !!!!!! ECHAP !!! ^^^^ READ STRING 1,_LectureA$ : _Erreur1$=_LectureA$ : ` message d'erreur CLOSE FILE 1 BACKDROP ON COLOR BACKDROP RGB(64,64,64) AUTOCAM OFF SET NORMALIZATION ON null = MAKE VECTOR3(1) :` réglages pour fonctions distance entre 2 points ; remend ` FIN DE FONCTION ; ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin `; `; `###################################################### `|"F_variées.dba" |///////////////////////////////////| `# (c) prog' ############################################ ############################# `But du programme; plusieurs fonctions variées; `; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| `f_Message_erreur() prévenir le programme du plantage, afficher un message d'erreur, afficher menu QUITTER. FUNCTION f_Message_erreur() ` informer Utilisateur du problème, proposer ECHAP pour QUITTER ; ENABLE ESCAPEKEY : ` <<<<<<<<<<<< !!!!! TOUCHE ECHAP ACTIVE !!!!!!!! SET TEXT FONT "Arial" SET TEXT SIZE SCREEN WIDTH()/40 SYNC RATE 60 BACKDROP OFF CLS DO SET CURSOR 0,35 PRINT TEXT FONT$() PRINT TEXT SIZE() PRINT _Langue1 PRINT SCREEN FPS() PRINT SCREEN WIDTH() PRINT SCREEN HEIGHT() PRINT SCREEN DEPTH() TEXT 5,5,"message d'erreur" PRINT _Erreur1$ PRINT _Erreur2$ SYNC LOOP ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin `; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| `f_QUITTER_ECHAP() permet de QUITTER grâce à la touche ECHAP; FUNCTION f_QUITTER_ECHAP() IF KEYSTATE(1)=0 THEN GOTO FIN CLS DO SET CURSOR 0,0 PRINT "VOUS POUVEZ QUITTER EN APPUYANT SUR ENTREE SINON ESPACE POUR CONTINUER" IF RETURNKEY()=1 THEN END IF SPACEKEY()=1 : WAIT 300 : EXIT : ENDIF SYNC LOOP FIN: ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin `; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| `f_OPEN_TO_READ_(id,nom_du_fichier,message_d'erreur) vérifie si fichier existe et l'ouvre ; FUNCTION f_OPEN_TO_READ_(v_id_E,v_nom_$,v_Erreur_$) IF FILE EXIST (v_nom_$)=0 : V_Erreur1_$=v_Erreur_$ : f_Message_erreur() : ENDIF OPEN TO READ v_id_E,v_nom_$ ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin `; `__________________________________________________ `|||||||||||||||||||||||||||||||||||||||||||||||||| `f_Sequence_INTRO() affiche une Séquence_d'_Intro au début du programme; FUNCTION f_Sequence_INTRO() CLS ` SET CURSOR 0,5 DO TEXT 0,5,"BIENVENUE DANS '';;;;;;'', LE JEU VIDEO DE ;;;;;;; (c);;;;; - " TEXT 0,50,"LE CONTENU PRESENTé DANS CE PROGRAMME N'EST PAS REEL." TEXT 0,95,"Cliquez POUR CONTINUER ou bien ECHAP POUR QUITTER" f_QUITTER_ECHAP() IF MOUSECLICK()=1 THEN EXIT SYNC LOOP ENDFUNCTION `__________________________________________________ `||||||||||||||||||||||||||||||||||||||||||||||||||fin `; `; `####################################################### `|"Conclusion.dba" |///////////////////////////////////| `# (c) prog' ########################################### ############################# `Conclusion, notes finales; `; ` faut Arranger le prog' comme suit; `Initialiser_GOS ; commencer par déclarer variables; `f_Initialiser_prog() : ` commencer le prog' par cette fonction ; `f_Sequence_INTRO() `; `FINIR_TOUT: ` pour finir `END :` FIN de TOUT LE PROGRAMME `; `------------------------------- `pour charger des fichiers; `f_OPEN_TO_READ_(id,nom_du_fichier,message_d'erreur) `charger fichiers; `; `f_Message_erreur() `message d'erreur ; `f_QUITTER_ECHAP() `Quitter ECHAP; `; `; `; `#CORBEILLE, à supprimer; `f_Deroulement() `gèrer le déroulement du programme ENTIER ; `; `; `TODO liste; ` corriger variables ` ajouter des champs info, initialisation.txt ` lister les menus ` decrire les médias ; `; `; |