IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Créer un PNJ


Sujet :

Java

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2014
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2014
    Messages : 64
    Points : 36
    Points
    36
    Par défaut Créer un PNJ
    Bonsoir, je souhaite créer un pnj, c'est a dire un personnage qui parlera à l'approche de celui ci mais je ne vois pas trop comment m'y prendre...

    Merci de votre aide

  2. #2
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    salut ce n'est pas particulièrement une problématique liée à un langage en particulier ( ici Java ) mais à la conception des jeux en général ( et algorithmes, POO...)

    pour créer un PNJ ( personnage non joueur ?) commencer par le plus simple possible.
    Et définir une classe qui comportera les paramètres de base du joueur ,ses coordonnées dans l'espace jeu, ses points de vie etc..
    on peut créer plusieurs instances de cette classe et les mettre dans un conteneur comme une liste dynamique
    Ensuite pour savoir si le joueur se rapproche d'un personnage non joueur il suffit à intervalles réguliers de temps avec un timer de tester la distance entre les positions x0 ,y0 et x1,y1 de tous les PNJ et du joueur principal.
    Cette méthode est valable pour une liste de PNJ pas trop élevée mettons 1000 entités.
    Au-delà d'un certain nombre d'entités si on boucle à chaque fraction de seconde, le jeu va ralentir.
    Pour calculer la distance on applique tout simplement le thérorême de Phytagore.
    Si cette distance est inférieure à un certain seuil , pour calculer les différentes distances on va sortir de la boucle qui lit la liste des PNJ et puis on appellera une méthode de la classe PNJ d'un PNJ en particulier pour qu'il fasse quelque chose.

    Maintenant il y a des techniques plus sophistiquées ( voir les tutos très bien faits de ce site sur le forum de développement des jeux ) pour faire ça mais toujours commencer le plus simple possible.
    Quitte à apporter des méthodes plus sophistiquées par la suite...

    L'avantage de créer une classe de PNJ c'est qu'on peut la faire dériver pour créer d'autres types d'entités.
    Donc il est souhaitable de définir une classe de base "entité" quitte à créer des classes PNJ et ennemis par exemples qui héritent de cette classe de base.

    Si tu ne te sens pas à l'aise encore avec l'héritage , une classe de base simple suffit.

Discussions similaires

  1. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22
  2. Créer un interpréteur de langage inspiré du Basic
    Par Picasso dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 11/05/2002, 17h10
  3. Comment faire pour créer un bitmap
    Par GliGli dans le forum C++Builder
    Réponses: 2
    Dernier message: 24/04/2002, 15h41
  4. Peux t'on créer une copie locale de l'objet partagé?
    Par Anonymous dans le forum CORBA
    Réponses: 8
    Dernier message: 16/04/2002, 16h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo