Derniers sujets | » Numbers par Ver2guerre Dim 02 Avr 2023, 00:47
» Mort ? par godbod Dim 22 Aoû 2021, 12:23
» Network, essai 1 par godbod Dim 09 Juil 2017, 02:18
» GODBOD par godbod Sam 08 Juil 2017, 14:05
» mon humeur par Ver2guerre Sam 30 Juil 2016, 19:44
» [A voir] Programme de traduction original : WikiTranslate par AdRiWeB Lun 01 Fév 2016, 04:50
» Reprise ? par Emyl Jeu 14 Juin 2012, 21:17
» Euh, ah ? par Ver2guerre Dim 27 Mai 2012, 12:11
» Problème TI 89 Titanium non visible après mise à jour par abdoukid Mer 23 Mai 2012, 13:37
» Y'a quelqu'un ? par Ver2guerre Sam 21 Avr 2012, 23:10
|
Qui est en ligne ? | Il y a en tout 16 utilisateurs en ligne :: 0 Enregistré, 0 Invisible et 16 Invités Aucun Le record du nombre d'utilisateurs en ligne est de 367 le Dim 18 Oct 2009, 00:16 |
| | Auteur | Message |
---|
Ver2guerre chasseur en chef
Nombre de messages : 3145 Age : 113 Localisation : Partout en même temps (V2g quantique) Loisirs : #pkill boulet Humeur : Happy :) items : Personalized field : 12 jetons Réputation : 8 Points : 7523 Date d'inscription : 15/09/2007
Profil TI: (TI-89Tita)^2+TI83Plus TO: 50 [2380 - 2%] {54} Spécialité: Autres
| Sujet: Comment faire ? Dim 04 Mai 2008, 21:03 | |
| J'ai un petit souci, à propos de la boss key. Je voudrais permettre à l'utilisateur d'utiliser toutes les fonctionnalités de la calculatrice (à savoir, l'écran Home, IO, graph, toutes les APPS...), mais qu'il puisse reprendre le jeu n'importe quand en appuyant sur une touche. Il ne s'agit pas d'arrêter le jeu, et de relancer le programme plus tard, car lors de l'arrêt du jeu, beaucoup de variables sont effacées. Or, lors de la reprise du jeu après l'utilisation de la boss key, je veux que le joueur reprenne à l'étape exacte à laquelle il était (en combat, en chargement de carte...).
J'ai comme l'impression que mon explication n'est pas claire. Si tel est le cas, demandez-moi des explications que je vous fournirai volontiers. |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Comment faire ? Dim 04 Mai 2008, 21:14 | |
| ouch, le mieux reste quand même d'arrêter tout simplement le jeu et de sauvegarder tes variables quelque part avant de les effacer, puis de relancer le jeu et de les recharger... |
| | | Ver2guerre chasseur en chef
Nombre de messages : 3145 Age : 113 Localisation : Partout en même temps (V2g quantique) Loisirs : #pkill boulet Humeur : Happy :) items : Personalized field : 12 jetons Réputation : 8 Points : 7523 Date d'inscription : 15/09/2007
Profil TI: (TI-89Tita)^2+TI83Plus TO: 50 [2380 - 2%] {54} Spécialité: Autres
| Sujet: Re: Comment faire ? Dim 04 Mai 2008, 22:09 | |
| D'accord, pourquoi pas... Et bien, parce-que si je sauvegarde toutes les données, le passage du mode "jeu" au mode "calculatrice" sera bien trop long (j'ai essayé, il faut compter 3 à 4 secondes, ce qui est bien trop long pour une opération d'urgence, d'autant plus que le jeu est encore loin d'être fini, et que de nombreuses variables vont être ajoutées...) |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Comment faire ? Dim 04 Mai 2008, 22:53 | |
| dans ce cas, reste plus que la possibilité de l'faire en C...mais même ça j'sais pas trop comment faire |
| | | Ver2guerre chasseur en chef
Nombre de messages : 3145 Age : 113 Localisation : Partout en même temps (V2g quantique) Loisirs : #pkill boulet Humeur : Happy :) items : Personalized field : 12 jetons Réputation : 8 Points : 7523 Date d'inscription : 15/09/2007
Profil TI: (TI-89Tita)^2+TI83Plus TO: 50 [2380 - 2%] {54} Spécialité: Autres
| Sujet: Re: Comment faire ? Lun 05 Mai 2008, 19:51 | |
| Ma foi, si tu y arrives, pourquoi pas... |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Comment faire ? Lun 05 Mai 2008, 20:32 | |
| en attendant, peut-être que quelqu'un a une idée ? |
| | | geogeo nouveau
Nombre de messages : 9 Age : 37 items : o Personalized field : Réputation : 0 Points : 5977 Date d'inscription : 24/03/2008
| Sujet: Re: Comment faire ? Mar 06 Mai 2008, 12:13 | |
| Le plus simple étant dé déclarer tes variables en globales (statique à l'extérieur de tes fonctions) et de forcer TIGCC à ne pas initialiser la section BSS. --omit-bss-init de mémoire ? C'est un paramètre à passer au compilateur TIGCC. -mno-bss semble mieux adapté et plus sûr. Exemple de code pratique: - Code:
-
static struct MyGameConfig { int bGamePreviewState; int nPlayerPosX, nPlayerPosY; char sPlayerName[9]; ... };
int _main() { // Programme lancé pour la première fois ou sans état précédent if (bGamePreviewState==0) { ... // Initialiser les variables ... } // Sinon on reprend le jeu à l'état précédent else { ... } // Le joueur à quitter le jeu bGamePreviewState = -1; // Indique que l'état précédent à été stocké
// bGamePreview = 0; // Le joueur à réinitialiser le jeu return 0; }
Attention toute fois, tout ce qui sera déclaré en globale ou statique ne sera jamais initialisé. Ainsi : - Code:
-
int foo() { static int r = 0; return ++r; }
foo retournera combien de fois elle a été exécutée depuis le tout premier lancement du programme. A noter que cette méthode ne marche pas si le programme a été exécuté à partir d'une version en archive. La solution que je préfères est tout simplement de créer un fichier de sauvegarde ! Et enfin la vraie solution à ton problème c'est une gestion multitâche de l'OS. Chose que bien sûr ne sait pas gérer AMS. Une solution mais assez difficile à mettre en oeuvre (et en ASM) serait la suivant. Dans le jeu le gars appuie sur la fameuse Boss key. Les registres du processeur sont sauvés dans le programme. Un TSR est installé sur une interruption (disons la 1) et enfin, on restaure les registres pour AMS et on met le pointeur de pile à l'adresse avant exécution de ton programme. Le gars se balade dans IO, screen, fait de jolies graphs... L'appui sur Boss key déclenche le TSR, qui récupères les registres sauvés pour ton programme, sauvegardes les registres AMS et change seulement l'adresse du pointeur de pile, à l'adresse où a été interrompu le programme. |
| | | Ver2guerre chasseur en chef
Nombre de messages : 3145 Age : 113 Localisation : Partout en même temps (V2g quantique) Loisirs : #pkill boulet Humeur : Happy :) items : Personalized field : 12 jetons Réputation : 8 Points : 7523 Date d'inscription : 15/09/2007
Profil TI: (TI-89Tita)^2+TI83Plus TO: 50 [2380 - 2%] {54} Spécialité: Autres
| Sujet: Re: Comment faire ? Mar 06 Mai 2008, 19:32 | |
| Oulà... J'ai un peu du mal à comprendre vu que je ne programme qu'en TI-Basic, et que je commence depuis très peu de temps le C. Je vais prendre le temps demain après-midi de décortiquer tout ça. En tout cas, merci pour le truc |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Comment faire ? Mer 07 Mai 2008, 20:14 | |
| hmm c'est quoi ces options de compilation ? et sinon, pourquoi foo ? enfin, pourquoi on utilise ce nom de fonction ? ^^ |
| | | geogeo nouveau
Nombre de messages : 9 Age : 37 items : o Personalized field : Réputation : 0 Points : 5977 Date d'inscription : 24/03/2008
| Sujet: Re: Comment faire ? Jeu 08 Mai 2008, 00:36 | |
| foo : http://en.wikipedia.org/wiki/Foo Ahlala ces jeunes !!! ^^ L'option de compilation permet de ne pas initialiser les variables globales à l'exécution du programme. Ainsi, elles conservent leurs valeurs à l'exécution suivante. |
| | | tama Admin
Nombre de messages : 12376 Age : 32 Localisation : DTC ? :triso: Humeur : =) items : o Personalized field : huh ? oO Réputation : 3 Points : 9434 Date d'inscription : 08/08/2007
Profil TI: 84+, 89 tita, 89 tita TO: infini :p Spécialité: C 68k
| Sujet: Re: Comment faire ? Jeu 08 Mai 2008, 12:07 | |
| |
| | | Contenu sponsorisé
| Sujet: Re: Comment faire ? | |
| |
| | | |
Page 1 sur 1 | |
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
|
|