| Sauvegardez la possition de son perso | |
|
|
Auteur | Message |
---|
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Sauvegardez la possition de son perso Dim 17 Juin 2007 - 2:04 | |
| je voudrais savoir si c'est posible de sauvegardez les possition du perso dans un fichier txt exemple: tu sauvegarde la possition de ton perso des 10 derniere seconde et suprime les plus vielle _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Super-Mouton *Excellent utilisateur*
Messages : 4916 Localisation : Cyberworld Projet Actuel :
| Sujet: Re: Sauvegardez la possition de son perso Dim 17 Juin 2007 - 2:29 | |
| ini_open(name) Opens the INI file with the given name. The ini file must be stored in the same folder as the game! ini_close() Closes the currently open INI file. ini_read_string(section,key,default) Reads the string value of the indicated key in the indicated section. When the key or section does not exist the default value is returned. ini_read_real(section,key,default) Reads the real value of the indicated key in the indicated section. When the key or section does not exist the default value is returned. ini_write_string(section,key,value) Writes the string value for the indicated key in the indicated section. ini_write_real(section,key,value) Writes the real value for the indicated key in the indicated section. ini_key_exists(section,key) Returns whether the indicated key exists in the indicated section. ini_section_exists(section) Returns whether the indicated section exists. ini_key_delete(section,key) Deletes the indicated key from the indicated section. ini_section_delete(section) Deletes the indicated section.
--> Tu marques la variable x et y dans un Ini Bon j'ai rien testé et pas élaboré, c'est la première chose que j'ai eu en tête _________________ Hey là tabarnak lâche ma sig sacha >=| |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Dim 17 Juin 2007 - 3:08 | |
| je vais tester demain matin car la je suis trop endormie :noel2: en vrai je veux faire un truc a la PoP remonter le temps en sauvegardant les derniere coordonné et faire jump to position pour les faire a l'envers _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Levans Utilisateur confirmé: Rang *****
Messages : 1598 Localisation : France -> Île de France -> Essonne -> Gif sur Yvette
| Sujet: Re: Sauvegardez la possition de son perso Dim 17 Juin 2007 - 9:06 | |
| - Code:
-
ini_open("remonter.ini"); // si le fichier n'existe pas, il est créé ini_write_real("remonter_le_temps", "x", x); ini_write_real("remonter_le_temps", "y", y); ini_close();
pour écrire les données - Code:
-
ini_open("remonter.ini"); x = ini_read_real("remonter_le_temps", "x", x); // si il n'y a aucunes valeurs dans le fichier, on prends les valeurs actuelles, sinon, on les lit y = ini_read_real("remonter_le_temps", "y", y); ini_close();
pour les lire |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Dim 17 Juin 2007 - 16:53 | |
| :p_merci: :p_merci: :p_merci: eu sa enregistre que une donnée moi j'en veux plusieurs :/ je veux qu'il enregistre la position des 8 derniere seconde dnas le fichier j'ai essayer de bidouiler le code mais ca sauvegarde toutjours que un code :/ _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Lun 18 Juin 2007 - 4:10 | |
| D'après moi, ce sera très lourd d'écrire dans un ini à tous les steps de ton jeu, tu devrais plutôt utiliser 2 files d'attentes (queues) - Spoiler:
Une file d'attente est pratiquement similaire à une pile de données mais fonctionne selon le principe FIFO (First-In First-Out : Premier Entré Premier Sorti). La valeur insérée en premier lieu dans la file d'attente sera donc la première à y être enlevée. Cela correspond au fonctionnement d'une file d'attente dans un magasin. La première personne de la file sera servie en premier. Les files d'attente sont généralement utilisées pour mémoriser des choses restant à faire mais il existe bien d'autres usages possible. Les fonctions suivantes existent (veuillez noter que les cinq premières sont équivalentes aux fonctions des piles de données : toutes les structures de données présentent d'ailleurs ces cinq fonctions).
ds_queue_create() Crée une nouvelle file d'attente. La fonction retourne un entier représentant l'ID de la file d'attente et devant être utilisé par toutes fonctions devant manipuler cette file. Plusieurs files d'attente peuvent être créées. ds_queue_destroy(id) Détruit la file d'attente d'ID id, libérant ainsi la mémoire utilisée. Ne pas oublier d'invoquer cette fonction lorsque vous aurez terminé de travailler avec la file. ds_queue_clear(id) Efface le contenu de la file d'attente d'ID id, supprimant ainsi toutes les données qu'elle contient mais ne détruit pas la file. ds_queue_size(id) Retourne le nombre de valeurs que contient la file d'attente. ds_queue_empty(id) Indique si la file d'attente est vide. Cela revient à tester si sa taille est égale à 0. ds_queue_enqueue(id,val) Insére la valeur val en fin de la file d'attente d'ID id. ds_queue_dequeue(id) Retourne la valeur la plus ancienne de la file d'attente (= la première valeur de la file) puis la supprime de cette dernière. ds_queue_head(id) Retourne la valeur en début de file d'attente, c'est à dire la valeur la plus ancienne mais ne la supprime pas de la file. ds_queue_tail(id) Retourne la valeur en fin de file d'attente, c'est à dire la valeur la plus récente mais ne la supprime pas de la file.
Une queue pour sauvegarder x et une queue pour sauvegarder y et le tour est joué ! Quelqu'un a une autre idée ? _________________ Loucheman
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Lun 18 Juin 2007 - 17:13 | |
| oula c'est jamais simple tes truc xD :p_merci: je vais testé ca plus tard :p _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Lun 18 Juin 2007 - 23:05 | |
| Je sais que c'est pas simple, mais je crois que c'est la façon la plus efficace... Imagine un peu les accès disque que ton jeu va engendrer: 1)Lire les 10 valeurs à partir du .ini et les mettre dans un tableau 2)ValeurX#10 = ValeurX#9,ValeurX#9 = ValeurX#8, ValeurX#8 = ValeurX#7...ValeurX#2=ValeurX#1 3)ValeurY#10 = ValeurY#9,ValeurY#9 = ValeurY#8, ValeurY#8 = ValeurY#7...ValeurY#2=ValeurY#1 4)ValeurX#1=x, ValeurY#1 = y 5)Écrire le tout dans le .ini Toutes ces opérations 30 fois par seconde, il me semble que ton ordi va quelque peu ralentir, tu ne crois pas ? Si tu veux le faire avec une variable tableau, ça peut toujours passer mais il ne faudrait pas écrire le résultat dans le fichier ini à chaque fois... Pour la queue, c'est très simple: Create: - Code:
-
VQueueX=ds_queue_create() VQueueY=ds_queue_create() NbRecordMax=10 EnregistrerValeur=true Step: - Code:
-
Var scrap; if EnregistrerValeur { ds_queue_enqueue(VQueueX,x) ds_queue_enqueue(VQueueY,y) if ds_queue_size(VQueueX) > NbRecordMax { scrap = ds_queue_dequeue(VQueueX) scrap = ds_queue_dequeue(VQueueY) } }
Et voilà, les 10 dernières positions sont gardées, mais pas moyen de remonter le temps avec cette manière !!!!!! Je vois cela à la maison ce soir... Probablement qu'il faut utiliser une carte (map) à la place d'une queue... Je revient avec un nouvel exemple car je n'ai pas gamemaker au bureau... La logique sera à peu près la même... _________________ Loucheman
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Lun 18 Juin 2007 - 23:28 | |
| pourquois mon ordi ralentirais pour quelque ligne de code :O ba dans PoP le principe c'est: sauvegarde les poisition active les sable arete la sauvegarde lis les donnée en sens inverse _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 1:15 | |
| - Wargamer a écrit:
- pourquois mon ordi ralentirais pour quelque ligne de code
Sais pas, connais pas le jeu dont tu parle, mais disons que par la suite tu décide de faire la même chose (sauvegarde des positions) pour ton perso et tous les ennemies qui se trouve dans la room en cours, tu ne pense pas que ça va commencer à être lourd ? Je t'ai fait un petit exemple, ça marche impect ! J'ai fait avec les listes en fin de compte... Create: - Code:
-
VListX= ds_list_create()//Liste pour les x VListY= ds_list_create()//Liste pour les y
NbRecordMax=30 * 10 //10 secondes à 30 step par seconde par défaut de ma room... global.Enregistrer = true //Mode Enregistrement = ON Step: - Code:
-
if global.Enregistrer = true { if keyboard_check(vk_left) x-=1 if keyboard_check(vk_right) x+=1 if keyboard_check(vk_up) y-=1 if keyboard_check(vk_down) y+=1
ds_list_add(VListX,x) ds_list_add(VListY,y) if ds_list_size(VListX) > NbRecordMax { ds_list_delete(VListX,0) ds_list_delete(VListY,0) } } else { if ds_list_size(VListX) > 0 { x = ds_list_find_value(VListX,ds_list_size(VListX)-1) y = ds_list_find_value(VListY,ds_list_size(VListY)-1) ds_list_delete(VListX,ds_list_size(VListX)-1) ds_list_delete(VListY,ds_list_size(VListY)-1) } else global.Enregistrer = true }
Destroy: - Code:
-
ds_list_destroy(VListX) ds_list_destroy(VListY)
Voici l'exemple : liste.gm6 - 0.01MBC'est probablement ce que tu cherches à faire... _________________ Loucheman
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 2:00 | |
| je vais voir ca et si ca marche je te serais reconnaisasnt pour très longtemps^^ PoP= prince of persia hum ton truc bug un peu mais c pas grave lol j'ai suprimé l'objet5 si je comprend bien ton truc faut faire un fichier pour chaque perso?
_________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 13:53 | |
| - Wargamer a écrit:
- hum ton truc bug un peu mais c pas grave lol j'ai suprimé l'objet5
si je comprend bien ton truc faut faire un fichier pour chaque perso? L'objet 5 était programmé pour bouger en même temps dir l'objet 0 mais en sens inverse... pour que les données sauvegardées ne soient pas les mêmes... Oui, il faut faire des listes de sauvegarde pour chaque perso... Le mieux serait de faire un objet parent qui a ces fonctionalitées et de relier tous les perso que tu veux à ce parent... Ou bien tu fais quelques scripts que tu appelle dans tous tes perso... _________________ Loucheman
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 14:19 | |
| mouai je suis pas sur d'avoir tout piger mais si j'Ai un probleme je vais essayer de me dém**** un peu avant^^ :p_merci: comme j'ai dit je te suis internellement reconnaisant :nezrouge: (évidament je met les crédit a ton nom^^) _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 18:08 | |
| Il va falloir que tu pense à une solution pour les objets créé au fur et à mesure... par exemple une balle tirée par le joueur ou par l'ennemie...
Quand on remonte dans le temps pour ces objets, ils ne seront pas détruits mais vont probablement rester à l'endroit où ils ont été créés même si tu retourne en arrière (avant qu'ils ne soient crées...)
Pas testé, mais il va falloir un code spécial pour ces objets...
Bonne chance !
ps : Revient poser des questions si tu ne comprend pas, je pourrais documenter un peu plus si tu a besoin... _________________ Loucheman
|
|
| |
[TheDarkTiger] Modérateur
Messages : 7420 Localisation : Essonne
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 22:29 | |
| si tu voulait revenir dans le temps, j'ai fait un tuto là dessus ... _________________ Bonne chance pour vos projets actuels ! Prêt à aider ceux qui en ont besoin ^^ l'antiqueBienvenue au 2630eme utilisateur : Mike Kennedy ! |
|
| |
loucheman Très bonne participation
Messages : 115
| Sujet: Re: Sauvegardez la possition de son perso Mar 19 Juin 2007 - 23:57 | |
| - [TheDarkTiger] a écrit:
- si tu voulait revenir dans le temps, j'ai fait un tuto là dessus ...
J'en aurais besoin, j'ai fait une gaffe majeure hier... _________________ Loucheman
|
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Sauvegardez la possition de son perso Mer 20 Juin 2007 - 1:43 | |
| ta un lien? j'ai rien trouver :p_svp: _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
Contenu sponsorisé
| Sujet: Re: Sauvegardez la possition de son perso | |
| |
|
| |
| Sauvegardez la possition de son perso | |
|