Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrer score [FLASH]

21 septembre 2011 à 10:58:35

Bonjour tlm,

J'aimerai savoir, comment enregistrer un score de jeu flash dans la bdd avec l'id du membre.
J'ai vu qu'il fallait passer par flash puis l'envoyer sur un script PHP, mais je n'ai pas tres bien saisi comment rassembler les 2.
Et comment recuperer le score dans le jeu.

Merci
  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2011 à 14:47:44

Salut,

Il te suffit d'envoyer les données vers un script php -comme tu l'as si bien dit- grâce à une requête effectuée dans flash.
Concrètement (je vais considérer que ton jeu est en AS3), lors de la sauvegarde du score, ton jeu fera une requête vers un script php nommé save.php, avec en paramètre le score.
Ca donne quelque chose comme http://monsite.fr/save.php?score=LE_SCORE (bon je te l'accorde, ce n'est pas très sécurisé, mais ça c'est autre chose). Et dans ce script php, tu récupères l'id du membre avec une session par exemple (car je considère que tes membres sont connectés lorsqu'ils jouent), et le score dans sa variable get associée.
  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2011 à 16:26:37

Daccord, mais il n'y a aucune sécurité avec la méthode GET, faut passer par POST donc?

Pour recuperer la variable qui contient le score, faut utiliser le langage flash donc?

Comment recuperer cette variable? Faut il que j'ouvre le source du jeu ?
  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2011 à 17:01:15

Citation : Paupote

Daccord, mais il n'y a aucune sécurité avec la méthode GET, faut passer par POST donc?

Pour recuperer la variable qui contient le score, faut utiliser le langage flash donc?

Comment recuperer cette variable? Faut il que j'ouvre le source du jeu ?



Que ce soit POST ou GET, c'est pareil ;)
Le score est récupéré en php.
Quant à l'information, elle est envoyée par flash sur la page php grâce aux classes URLLoader et URLRequest.

Exemple : http://tush.wordpress.com/2007/07/20/a [...] er-variables/
  • Partager sur Facebook
  • Partager sur Twitter
21 septembre 2011 à 19:40:17

Ok, mais alors avec GET, il suffit de changer le score dans l'url et le tour est joué. Post non.
Donc sur le site, il faut que je crée une class & l'ajoute au code du jeu ?
  • Partager sur Facebook
  • Partager sur Twitter
22 septembre 2011 à 12:05:01

J'avais fait un code si tu veux mais les données ne sont pas encodés en xml, alors je ne sais pas si sa t'intéreserais?

Une fois que la "grosse" fonction est codée sa permet en une ligne d'envoyer des variables en POST au serveur, et de récupérer d'autres variables dans une fonction qui est appelé une fois que le serveur à répondu.

De cette façon:
gf_server ("http://127.0.0.1/serveur.php", "id_du_joueur=Paupote+score_du_joueur=32", f_server);

function f_server (e_server_var:Array):void
{
	if (e_server_var ["score_dans_le_jeu"] != null)
	{
		trace (e_server_var ["score_dans_le_jeu"]);
	}
}


En fait j'avais beaucoup exploré la méthode qui consiste à faire ca avec du xml, en utilisant les variables xml d'actionscript, les nodes, etc... Mais le problème c'est qu'en fonction de la version de php installé sur notre hébergement, et de certaines options xml à la con, ca ne marchait pas, alors qu'en local sa marchait bien, ou l'inverse! C'est à dire que rien ne fonctionnait en local mais sur le serveur de mon hébergeur avec la version de php intallé et les options concernant le xml ca fonctionnait, grosse galère quoi.

Alors je me suis dis sa sert à quoi de ce faire ch*** avec xml si c'est pour apporter de telles contraintes... (de telles dépendances en matière de version/options). Surtout que j'ai cherché des solutions pendant des semaines. Donc j'ai abandonné cette idée et finalement je communique en texte tout simple avec echo et du coup aucun problème de caractère (caractères spéciaux), aucun problème d'encodage, aucun problème d'option xml, etc...

Attention je ne remet absolument pas en cause l'explication de Faw qui est très bonne et avec les bons exemples! :)

Donc voila redis moi si jamais envoyer des données du serveur vers le client en texte ne te pose pas de problème, dans ce cas je te détaillerais gf_server cité plus haut.
  • Partager sur Facebook
  • Partager sur Twitter
22 septembre 2011 à 23:04:27

Hum, daccord.

J'ai trouvé quelques portions de code en actionscript, mais je ne sais pas où le code se place. dans le fichier swf ? dans la page qui contient le jeu swf ?

var lv:LoadVars = new LoadVars( ) ;
// nbPoints variable dans flash avec le nombre de points
// points variables que l'on recuperera dans mapage.php
lv.points = nbPoints ;

// lienRedirection contient le chemin vers lequel on veut aller
lv.send(mapage.php, "_self", "POST" ) ;
  • Partager sur Facebook
  • Partager sur Twitter
23 septembre 2011 à 0:34:45

J'ai lu ton message (mp), j'aimerais bien t'aider mais à ce que je vois il y a encore une étape de compréhension à franchir avant, car tu bosse avec macromedia flash 8 (éditeur principalement graphique) et tu te demandes ou placer le code dans le swf. Mais je te comprends tout à fait, moi aussi je suis passé par la, en réalité à l'époque j'avais même abandonné car je ne comprenais rien au logiciel graphique d'adobe/macromedia :-°

Bon, déja, tant que tu ne quitte pas l'ide graphique de macromedia je ne pourrais pas t'aider, car moi aussi je n'ai jamais réussi à comprendre totalement la liaison graphique/code dans ce pu*** de logiciel.

De toute façon on ne peut pas réaliser un jeu 100% propre dans l'ide d'adobe/macromedia, c'est impossible. Donc déja j'ai envie de dire, si tu veux vraiment te mettre à apprendre correctement l'actionscript (de préférence le 3), il va falloir prendre un éditeur texte. Sa peut très bien être le bloc note de ton os, ou notepad++, ou encore flashdevelop, etc...

Donc tu écris ton code actionscript, tu compile, et voila tu obtiens ton swf.

Déja si tu franchis cette étape le monde de flash te paraitera bien plus clair, et en plus de ca bien plus de monde pourront t'aider (tu ne posera plus des questions bête genre "ou on met le code" ou "comment je fais pour récupérer le code de mon swf" ce qui est typique des utilisateurs du machin graphique d'adobe/macromedia). La avec macromedia 8 c'est comme si tu étais un poisson qui peine à trouver des vers à manger alors qu'il suffirait de sortir la tête de l'eau pour voir que c'est sous certains arbres qu'il pleut des vers, et qu'il existe même des oiseaux, un soleil et des nuages :-°

A toi de voir mais en l'état ca va être difficile, déja fais des recherches sur google, il y a sûrement pleins de tutos, et des réponses aux questions de base comme "ou mettre code dans swf". Beaucoup de gens sont passés par la et ont donc pondus des tutos.
  • Partager sur Facebook
  • Partager sur Twitter
25 septembre 2011 à 19:51:20

Salut,

désolé du retard, je fus tres occupé ce week end :p enfin bref.
Je vais apprendre tout ca, mais peut tu me dire quelles variables utiliser ? (type: loadvars)
  • Partager sur Facebook
  • Partager sur Twitter
26 septembre 2011 à 0:43:03

var my_url_request:URLRequest = new URLRequest ("http://127.0.0.1/serveur.php");
var my_url_variables:URLVariables = new URLVariables (null);
var my_url_loader:URLLoader = new URLLoader (null);

Tu remplis my_url_variables avec tes variables à envoyer au serveur, pendant la déclaration ou après:
my_url_variables ["couleur_de_mon_chat"] = "blanc";
my_url_variables ["age_de_mon_chat"] = "2";

Puis:
my_url_request.data = my_url_variables;
my_url_request.method = URLRequestMethod.POST;

Pour finir avec:
function f_io_error (my_io_error_event:IOErrorEvent):void
{
	trace (my_io_error_event);
}

function f_security_error (my_security_error_event:SecurityErrorEvent):void
{
	trace (my_security_error_event);
}

function f_receive (my_event:Event):void
{
	if (my_event.target.data != "")
	{
		// La tu récupères tes "variables" envoyés avec "echo" de php
		trace (my_event.target.data);
	}
	
	my_url_loader.removeEventListener (IOErrorEvent.IO_ERROR, f_io_error, false);
	my_url_loader.removeEventListener (SecurityErrorEvent.SECURITY_ERROR, f_security_error, false);
	my_url_loader.removeEventListener (Event.COMPLETE, f_receive, false);
}

my_url_loader.addEventListener (IOErrorEvent.IO_ERROR, f_io_error, false, 0, false);
my_url_loader.addEventListener (SecurityErrorEvent.SECURITY_ERROR, f_security_error, false, 0, false);
my_url_loader.addEventListener (Event.COMPLETE, f_receive, false, 0, false);
my_url_loader.load (my_url_request);
  • Partager sur Facebook
  • Partager sur Twitter
9 octobre 2012 à 23:57:20

Je viens juste de trouver comment alors je vais le marquer sur des forums vue que moi ça fait 5 jours. Je cherche sur des sites et j'ai fait pleins de test rien ne fonctionnait. Alors je vous donne la solution que j'ai trouvé.

Flash:

point = new LoadVars();
point = "200";
site = new LoadVars();
site = "elements-cadeaux.com";
qui = new LoadVars();
qui = "samfairir";
getURL("http://www.elements-cadeaux.com", "_self", "POST");


_self= Va prendre tous les variables et les envoyer en POST.
P.S: Mettre url de votre page qui récupère les variables.

Php:

<?php
$qui = $_POST['qui'];
$site = $_POST['site'];
$point = $_POST['point'];
echo"qui: ".$qui."  site:".$site." point: ".$point."";
?>


On récupère les variable avec $_POST[''];
  • Partager sur Facebook
  • Partager sur Twitter
20 mai 2018 à 0:36:09

Bonsoir à tous , je un petit problème a résoudre , ce juste que mon grand frère a crée un petit jeux de puzzle est il ma demandé de mettre un code pour que le score puisse s'enregistré. mais sans vous mentir ma tete a planter . votre aide mes seras utile .merci
  • Partager sur Facebook
  • Partager sur Twitter
20 mai 2018 à 4:02:55

Bonjour,

Le message qui suit est une réponse automatique activée par un membre de l'équipe. Les réponses automatiques leur permettent d'éviter d'avoir à répéter de nombreuses fois la même chose, ce qui leur fait gagner du temps et leur permet de s'occuper des sujets qui méritent plus d'attention.
Nous sommes néanmoins ouverts et si vous avez une question ou une remarque, n'hésitez pas à contacter la personne en question par Message Privé.

Pour plus d'informations, nous vous invitons à lire les règles générales du forum

Déterrage

Citation des règles générales du forum :

Avant de poster, demandez-vous si ce que vous allez dire apporte quelque chose au sujet. Si votre message n'apporte rien, vous ferez perdre du temps à tout le monde et le sujet pourrait dévier ou devenir difficile à suivre.

Aussi, vérifiez la date du topic. Le déterrage de topic nuit au bon fonctionnement du forum et est interdit. Utilisez les boutons pouce en haut pour dire merci. Si le topic date de plus de deux mois sans réponses, mieux vaut ne pas répondre. Si vous avez une question similaire, créez plutôt votre propre sujet en détaillant votre contexte

Je ferme ce sujet.

  • Partager sur Facebook
  • Partager sur Twitter