Forum tama's team

cp: ne peut évaluer `brain': Aucun fichier ou dossier de ce type
AccueilPortailGalerieCalendrierFAQRechercherS'enregistrerMembresGroupesConnexion
Connexion
Nom d'utilisateur:
Mot de passe:
Connexion automatique: 
:: Récupérer mon mot de passe
Derniers sujets
» Network, essai 1
par godbod Dim 09 Juil 2017, 02:18

» GODBOD
par godbod Sam 08 Juil 2017, 14:05

» Numbers
par godbod Sam 08 Juil 2017, 13:54

» Mort ?
par godbod Sam 08 Juil 2017, 13:47

» 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

Quick message
Qui est en ligne ?
Il y a en tout 1 utilisateur en ligne :: 0 Enregistré, 0 Invisible et 1 Invité

Aucun

Le record du nombre d'utilisateurs en ligne est de 367 le Dim 18 Oct 2009, 00:16

Partagez | 
 

 Comment faire ?

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Ver2guerre
chasseur en chef
chasseur en chef
avatar

Nombre de messages : 3139
Age : 107
Localisation : Partout en même temps (V2g quantique)
Loisirs : #pkill boulet
Humeur : Happy :)
items :
Personalized field : 12 jetons
Réputation : 8
Points : 5169
Date d'inscription : 15/09/2007

Profil
TI: (TI-89Tita)^2+TI83Plus
TO: 50 [2380 - 2%] {54}
Spécialité: Autres

MessageSujet: 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.

_________________
Help, j'ai rien compris

C'est moche :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7085
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: 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...

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ver2guerre
chasseur en chef
chasseur en chef
avatar

Nombre de messages : 3139
Age : 107
Localisation : Partout en même temps (V2g quantique)
Loisirs : #pkill boulet
Humeur : Happy :)
items :
Personalized field : 12 jetons
Réputation : 8
Points : 5169
Date d'inscription : 15/09/2007

Profil
TI: (TI-89Tita)^2+TI83Plus
TO: 50 [2380 - 2%] {54}
Spécialité: Autres

MessageSujet: 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...)

_________________
Help, j'ai rien compris

C'est moche :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7085
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: 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

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ver2guerre
chasseur en chef
chasseur en chef
avatar

Nombre de messages : 3139
Age : 107
Localisation : Partout en même temps (V2g quantique)
Loisirs : #pkill boulet
Humeur : Happy :)
items :
Personalized field : 12 jetons
Réputation : 8
Points : 5169
Date d'inscription : 15/09/2007

Profil
TI: (TI-89Tita)^2+TI83Plus
TO: 50 [2380 - 2%] {54}
Spécialité: Autres

MessageSujet: Re: Comment faire ?   Lun 05 Mai 2008, 19:51

Ma foi, si tu y arrives, pourquoi pas...

_________________
Help, j'ai rien compris

C'est moche :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7085
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: Re: Comment faire ?   Lun 05 Mai 2008, 20:32

en attendant, peut-être que quelqu'un a une idée ?

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
geogeo
nouveau
nouveau


Nombre de messages : 9
Age : 31
items : o
Personalized field :
Réputation : 0
Points : 3629
Date d'inscription : 24/03/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Ver2guerre
chasseur en chef
chasseur en chef
avatar

Nombre de messages : 3139
Age : 107
Localisation : Partout en même temps (V2g quantique)
Loisirs : #pkill boulet
Humeur : Happy :)
items :
Personalized field : 12 jetons
Réputation : 8
Points : 5169
Date d'inscription : 15/09/2007

Profil
TI: (TI-89Tita)^2+TI83Plus
TO: 50 [2380 - 2%] {54}
Spécialité: Autres

MessageSujet: 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 Wink

_________________
Help, j'ai rien compris

C'est moche :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7085
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: 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 ? ^^

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
geogeo
nouveau
nouveau


Nombre de messages : 9
Age : 31
items : o
Personalized field :
Réputation : 0
Points : 3629
Date d'inscription : 24/03/2008

MessageSujet: 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.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
tama
Admin
Admin
avatar

Nombre de messages : 12375
Age : 26
Localisation : DTC ? :triso:
Humeur : =)
items : o
Personalized field : huh ? oO
Réputation : 3
Points : 7085
Date d'inscription : 08/08/2007

Profil
TI: 84+, 89 tita, 89 tita
TO: infini :p
Spécialité: C 68k

MessageSujet: Re: Comment faire ?   Jeu 08 Mai 2008, 12:07

:)

_________________


Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Comment faire ?   

Revenir en haut Aller en bas
 

Comment faire ?

Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum tama's team :: TI :: TI 68k :: WIP (Work in progress) :: Projet 14 : WoW [en cours]-
Créer un forum | © phpBB | Forum gratuit d'entraide | Contact | Signaler un abus | Forum gratuit