JeuWeb - Crée ton jeu par navigateur
La POO et les jeux en PHP - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : La POO et les jeux en PHP (/showthread.php?tid=2506)

Pages : 1 2 3


RE: La POO et les jeux en PHP - Studio Gamboo - 28-02-2008

Je tient juste à rajouter que, au delà de l'aspect uniquement technique, la POO te force à travailler avec des "concepts" d'objets justement.
C'est une gymnastique à prendre et qui rend ton dév plus "naturel" (si on peut dire ça) et du coup plus agréable et plus simple, à mon avis.
Enfin comme tout les gens au dessus, j'était réfractaire avant de m'y mettre.
Désormais je ne pourrais pas m'en passer, et pas m'arrêter d'apprendre !


RE: La POO et les jeux en PHP - SorenS - 29-02-2008

Après avoir lu tout ce que vous avez mis sur la poo (les 5pages, ce topic,le wiki), j'ai décidé de m'y mettre Big Grin
Mais... connaissez-vous le meilleur site pour apprendre? Je n'ai pas envie d'acheter un livre dessus (je viens de mettre des sous pour Flash & Ruby). Voilà merci d'avance


RE: La POO et les jeux en PHP - Mysterarts - 29-02-2008

Perso, j'ai commencé par le tuto du SDZ : http://www.siteduzero.com/tuto-3-1678-0-la-programmation-orientee-objet-en-php.html
Puis après, essentiellement de la pratique et utilisation de script pré fait en POO pour voir...

Mysterarts


RE: La POO et les jeux en PHP - Zboy74 - 29-02-2008

En fait, la syntaxe en elle même n'est pas compliqué et tiens sur un page. Le tuto du site du zéro à l'air bien fait, en tout cas, essaie de commencer par ça pour comprendre le concept.

Après le reste, c'est de la pratique : tu essaies des trucs, ca marche, t'es content et tu met un tag "POO powered" en bas de ta page d'accueil.

Après va vouloir transcrire en objet des concepts un peu plus compliqués, ca va pas marcher, alors tu va te poser des questions, puis tu va aller fouiller à ce moment dans la direction des Designs Patterns... et ainsi de suite.

C'est vrai que ca peut rebuter, on peut vite se prendre la tête, après c'est plus des pb de programmation mais de modélisation. Bref, voilà en gros mon cheminement dans le labyrinthe de la POO :
  1. Je commence par des petits trucs, genre créer un seul objet, l'avatar du joueur, avec quelques propriétés (vie, PA, force,...) et quelques méthodes (avancer, taper, etc...) et je joue un peu avec dans mon code. Ca marche, c'est magique.

  2. Après, j'essaie de transcrire en objet toutes les entités de mon jeu (les avatars, les ennemis, les items...), puis j'essaie de placer des interactions entre ces entités dans mes méthodes : mon objet 'avatar' attaque cet objet 'ennemi', mon objet 'avatar' utilise un objet 'potion' sur lui-même, etc...

  3. 3ème étape, un peu délicate pour moi, je suis encore dedans : épurer mes classes regroupant les proriétés et méthodes communes dans des classes abstraites et/ou des interfaces (je sais c'est pas une bonne méthode de faire ça ici!) , puis commencer à me pencher sur les relation d'association/composition : mon objet 'écran de jeu' contient plusieurs objets 'entités', qui sont eux-mêmes des objets 'avatar', 'ennemis'...etc...

  4. Après ça (ouf) tes interfaces "outils" : abstraction BDD, erreurs, export XML, etc...

  5. Et enfin ton pattern "enterprise" : MVC par exemple, qui va structurer tout ton site.
Honnêtement, bon, il y a plein de super bon sites sur la POO, mais je le redit, avec expérience, j'ai toujours appris mieux et plus vite avec un bon bouquin...et oui je sais c'est cher Smile

Bonne chance, et si tu déniche des bonnes ressources, je suis preneur!

PS: ce que je raconte ici n'engage que moi, c'est du vécu et sûrement pas une bonne méthode, mais je pense que c'est une bonne façon de rentrer dans la POO petit à petit...


RE: La POO et les jeux en PHP - SorenS - 02-03-2008

Comme je l'ai dit, je m'y suis mis ^^

Mais je bloque à un endroit. Dans le wiki il y'a :

Wiki a écrit :
Code PHP :
<?php 
/* page de traitement du formulaire d'inscription */

// on inclue la classe
include('classes/inscription.php');

// on crée un objet à partir des données envoyées en post dans le tableau $_POST
$inscription = new inscription($_POST);
$erreur = $inscription->verifierDonnees();
if(
$erreur == FALSE )
{
// on enregistre l'inscription
$inscription->enregistrerInscription();
$inscription->envoyerConfirmationMail()
}else{
// on indique l'erreur
$inscription->afficherErreur();
}

J'aimerai savoir comment il peut indiquer l'erreur ?
le $erreur contient soit TRUE soit FALSE mais comment savoir où est l'erreur ? pseudo, pas tout remplis, etc...

Merci d'avance Wink


RE: La POO et les jeux en PHP - Plume - 02-03-2008

C'est à développer dans la méthode de ta classe. Par exemple remplir un tableau contenant les messages d'erreurs.

Cordialement,


RE: La POO et les jeux en PHP - SquallMazento - 02-03-2008

SorenS a écrit :Comme je l'ai dit, je m'y suis mis ^^

Mais je bloque à un endroit. Dans le wiki il y'a :

Wiki a écrit :
Code PHP :
<?php 
/* page de traitement du formulaire d'inscription */

// on inclue la classe
include('classes/inscription.php');

// on crée un objet à partir des données envoyées en post dans le tableau $_POST
$inscription = new inscription($_POST);
$erreur = $inscription->verifierDonnees();
if(
$erreur == FALSE )
{
// on enregistre l'inscription
$inscription->enregistrerInscription();
$inscription->envoyerConfirmationMail()
}else{
// on indique l'erreur
$inscription->afficherErreur();
}

J'aimerai savoir comment il peut indiquer l'erreur ?
le $erreur contient soit TRUE soit FALSE mais comment savoir où est l'erreur ? pseudo, pas tout remplis, etc...

Merci d'avance Wink

Peut-être qu'il y a un attribut qui sert à stocker les erreurs ?
Ça donnerait un truc comme ça :
Code PHP :
<?php 
public function verifierDonnees()
{
if(empty(
$pseudo))
{
$this->erreur = 1;
}
//suite du code...
}
public function
afficherErreur()
{
if(
$this->erreur == 1)
{
echo
'Vous n\'avez pas entré de pseudo.';
}
//suite du code...
}
Sinon je vois pas comment...


RE: La POO et les jeux en PHP - Sephi-Chan - 02-03-2008

Tu peux faire comme ça aussi :

La classe Comptes (en partie) :
Code PHP :
<?php 
class Comptes {

public
$id;
public
$nom;
public
$email;
public
$password;
private
$errors = array();


private function
verifierNom(){

if(empty(
$this->nom)){
$this->erreurs[] = "Le nom n'est pas renseigné.";
}

if(
/* Vérification par une expression régulière. */){
$this->erreurs[] = "Le nom n'est pas valide. Il doit contenir 5 à 20 lettres et peut contenir un apostrophe, un tiret ou un espace (à condition qu'il ne soit pas en début ou en fin du nom).";
}

}

private function
verifierEmail(){

/* vérifie la syntaxe de l'adresse email. */

}

public function
listerErreurs(){

if(!empty(
$this->erreurs)){
return
$this->erreurs
}

}

public function
creer($nom, $email){

if(
$this->verifierNom($nom) && $this->verifierEmail($email)){

/* Insertion en base de données. */

return TRUE;

}

return
FALSE;

}

}

Et le script d'instruction (en partie aussi) :
Code PHP :
<?php 
if(isset($_POST['nom'], $_POST['email'])){

$compte = new Compte();

if(
$compte->creer($_POST['nom'], $_POST['email'])){

echo
'<p>Le compte a bien été crée.</p>';

}

else {

echo
'<p>Des erreurs sont survenues lors de la création du compte :</p>';
echo
'<ul>';

foreach(
$compte->listerErreurs as $erreur){
echo
'<li>'.$erreur.'</li>';
}

echo
'</ul>';

}

}

else {

/* Affichage du formulaire. */

}

Il y a plusieurs façon de procéder. De manière générale, je conseille de ne rien afficher avec les méthodes, mais plutôt d'envoyer les données au script pour qu'il les affiche : ici, les méthodes de vérification remplissent un tableau selon les erreurs qu'elles rencontrent et le script d'inscription les affiche avec un foreach dans le cas où la fonction de création de compte échoue (elle renvoie alors FALSE).

Ça permet de prendre l'habitude de séparer l'affichage du traitement.


Sephi-Chan


RE: La POO et les jeux en PHP - SorenS - 02-03-2008

Ok, merci à tous je vois comment faire maintenant. Wink


RE: La POO et les jeux en PHP - Plume - 02-03-2008

Z'êtes patients les gars, z'avez illustrer en une page ce que j'ai écrit sur 2 lignes Smile
Citation :De manière générale, je conseille de ne rien afficher avec les méthodes, mais plutôt d'envoyer les données au script pour qu'il les affiche
L'as bien retenu sa leçon Tongue

Cordialement,