Auteur Sujet: Sprite et Tileset  (Lu 7336 fois)

Hors ligne Ashenaar

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Sprite et Tileset
« le: 17 juillet 2012 à 09:50:17 »
Bonjour,

je commence à utiliser le plugin pour un jeu RPG en ligne multijoueur.

J'ai vu que les sprites n'étaient pas possible actuellement.
J'aimerais savoir si un jour il y en aura.

Ou alors un autre idée pour contourner cela.

J'aimerais utiliser des tileset de ce type pour le terrain et les objets :
http://opengameart.org/content/isometric-64x64-outside-tileset

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #1 le: 17 juillet 2012 à 11:47:09 »
Bonjour,
Chouette, un nouveau jeu !  :)
pour des raisons techniques.
Donc, en effet, les sprites ne sont pas gérés pour le sol. Ce n'est pas prévu pour l'instant, mais j'y pense régulièrement. Donc, peut-être un jour.
En attendant ce jour, l'exemple que tu as indiqué ne sera, de toute façon, pas utilisable car la couleur de fond n'est pas transparente. Le plugin utilise du JavaScript et la manipulation d'image n'est pas sont fort (à ce langage).
Par contre, ce que tu peux faire, c'est de séparer les images en plusieurs fichiers et en remplaçant la couleur de fond. Là, ça marchera très bien.
C'est d'ailleurs ce que j'ai fait avec l'exemple "e" : http://www.prelude-prod.fr/demo/pp3diso/exemples/exemple-e/
Il s'agit du même fichier que tu cites.

J'espère que tu nous montreras le résultat ?!  ;)

Hors ligne Ashenaar

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #2 le: 18 juillet 2012 à 15:24:00 »
Bonjour,

Merci de ta réponse. J'ai donc découpé le tileset que j'avais choisi.
Je réfléchi actuellement à un éditeur de carte et de comment stocker ma carte en base.
Pour l'instant j'ai 3 colonnes de données dans ma table (en plus de l'id et du nom) :
- map qui est une suite de 01,02,01,05 etc... déjà au format "map" attendu par le plugin
- zone qui est une suite de 00,01,01,00 etc... déjà au format "zone" attendu par le plugin
- décors qui est au format JSON et indique dans un tableau les id et coordonnées (x,y) d'éléments du décors (les murs, rocher, plante etc....), ce sont des objets fixe sur la carte qui empeche l'accès éventuel d'une case : rocher.
Je vais surement devoir rajouter des monstre (qui se déplacent), et personnage non joueurs. Je sais pas s'ils rentreront dans mon tableau décors ou auront leur propre colonne.
J'hésite aussi à réduire le tout en 1 seule colonne qui stockerai toutes les infos au format XML. Le PHP venant récupérer les données les enverra au bon format au plugin javascript.
Si certaines ont déjà planché sur le problème avec de grosses cartes biens remplies et facile à modifier (avec un éditeur), ça m'intéresse de connaitre une bonne méthode.

Autres questions :
Dans ton exemple-g (le multijoueur), est-il possible de faire par exemple déplacer de 5 cases les autres personnages tout en les animant via un sprite, afin de les voir marcher ?
Bref, est il possible d'animer un objet se déplaçant. (paysan qui courre à la Age of empire, un animal qui se déplace, un personnage type Sim's qui erre dans sa maison etc...)

Aussi,
est-il possible d'animer le personnage Avatar avec un sprite quand le pathfinding est désactivé et que l'on se déplace de case en cas ?

A priori je n'utiliserais pas la pathfinding dans mon jeu car je pense qu'il va me poser problème :
En effet si je suis en 1,1 que que je clique pour aller en 10,10 ; les cases intermédiaires ne sont pas traitées : comment faire s'il l'avatar croise en 5,5 un monstre qui devrait lui taper dessus ou marche sur un piège qui devrait se déclencher ?
Est-il possible dans le cas du pathfinding d'avoir un évènement ou autre permettant de tester chaque case.

En parlant d’évènement, je n'ai pas réussit à utiliser "beforemoveavatar".
Concernant l’évènement "onmoveavatar" utilisé avec le pathfinding, l’évènement se déclenche au moment du clique (donc au départ de l'avatar), et non à son arrivée sur la case de destination. Est-ce normal ?

C'est tout, pour le moment... :)
« Modifié: 18 juillet 2012 à 15:39:59 par Ashenaar »

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #3 le: 18 juillet 2012 à 15:43:23 »
Et bin !
Ton projet me semble bien avancé !

Pour faire vite :

 - pour l'instant, non, pas d'animation sur des objets que l'on bouge. Ce serait bien de rajouter ça d'ailleurs. Je note, mais je ne sais pas si j'aurais le temps rapidement.

 - idem pour le case par case. Je ne crois pas que j'avais prévu ça. À rajouter donc...

 - le coup de l'action qui devrait se dérouler sur le pathfinding... Heu... En effet, ce serait bien de gérer cela, mais j'y vois (comme ça, sur le vif) un problème : la gestion d'évènement in game au travers du JavaScript pose des problème de tricherie. Et je ne suis pas certain que d'envoyer un évènement à chaque fois que le joueur est arrivé sur une case soit judicieux niveau perf. Mais ce serait peut-être la solution : envoyer un évènement lorsque l'avatar arrive sur une case, juste avant qu'il y arrive par exemple. Le plugin continuerait son petit bonhomme de chemin, mais il serait alors possible de le stopper et de faire une action en conséquence.... Je note aussi ;)

Pour l'éditeur, je m'étais fait mon propre éditeur, mais il n'est pas utilisable. Donc, pas de solution simple à te proposer hormis l'ébauche d'éditeur qui est dispo sur le site d'exemples.

Hors ligne Ashenaar

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #4 le: 18 juillet 2012 à 17:37:16 »
J'aimerais déclencher des actions au clic de la souris sur des cases : comme attaquer un personnage.
Or actuellement le clic sert au déplacement.

Est-il possible de désactivé le clic lié au déplacement pour le lier à une autre action.
Et du coup je gérerais les déplacements avec les touches directionnelles du clavier.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #5 le: 19 juillet 2012 à 14:57:35 »
Actuellement, ce n'est pas possible de désactiver le déplacement au clic.
Sur le vif, tu peux peut-être voir avec l’événement qui est lancé avant le déplacement de l'avatar et voir ce que tu peux faire avec.
Je rajoute la désactivation de la souris dans les futures versions...

Hors ligne Ashenaar

  • Néophyte
  • *
  • Messages: 4
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #6 le: 20 juillet 2012 à 10:56:31 »
Citer
la gestion d'évènement in game au travers du JavaScript pose des problème de tricherie
Quel problème vois tu ?
Perso à chaque déplacement sur une case (même via le pathfinding), je ferais un appel AJAX. Et c'est PHP qui retournerai si oui ou non il se place quelque chose. SI le PJ tombe sur un piège, PHP ferait aussi la soustraction des points de vie.
Dans le callback JS en fonction du retour php on afficherai le personnage déplacé dans la nouvelle case, pris éventuellement dans un piège, avec ses points de vie mis à jour.

Après oui ça ferait bcp de requete ajax...

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #7 le: 20 juillet 2012 à 11:00:04 »
C'est ça : si il n'y a pas de vérification via Php, alors problème.
Le plugin ne doit être là que pour visualiser des actions, pas pour valider des actions. C'est au Php (via Ajax) de valider ou non.

Hors ligne vincent

  • Néophyte
  • *
  • Messages: 20
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #8 le: 21 août 2012 à 20:46:56 »
Bonjour, je continue de suivre attentivement le plug-in et les interrogations d'Ashenaar sont exactement mes préoccupations du moment.
Dans l'attente d'une petite base de connaissances commune ou d'une petite rubrique astuces :)

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #9 le: 21 août 2012 à 22:37:18 »
Ce forum est là pour ça.
Je tenterais bien de regrouper les questions / réponses au fur et à mesure sur le site du plugin.
Dès que j'arrive à me trouver 5 min ;)

Hors ligne vincent

  • Néophyte
  • *
  • Messages: 20
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #10 le: 23 août 2012 à 17:10:06 »
Bonjour je post à la suite car le sujet du pathfinding était abordé:
Je me demande si c'est possible de detecter le relâchement de la souris afin de stopper l'avancée du personnage pour rendre le jeu moins "automatique"?
Si oui quel piste envisager? Existe-il un équivalent du onKeypress pour la souris?
(Je pensais également remplacé le onClick par un onDblclick afin de libérer la possibilité de cliquer par exemple sur un Object si il n'y a pas d'alternatives.
merci!
« Modifié: 23 août 2012 à 17:18:24 par vincent »

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #11 le: 23 août 2012 à 18:20:26 »
Heu...  ???
Tu veux dire en dehors du plugin ?
Il existe tout un tas d'évènements, oui.
Le plugin utilisant JQuery, le mieux est de l'utiliser aussi : http://api.jquery.com/category/events/
Tu devrais trouver ton bonheur.

Hors ligne vincent

  • Néophyte
  • *
  • Messages: 20
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #12 le: 23 août 2012 à 19:13:36 »
Merci de ta réponse, je me suis peut-être mal exprimé, je cherche le moyen de pouvoir stoper le cheminement automatique si l'attention du joueur n'est pas requise par exemple en devant maintenir le clic enfoncé sur la souris. Pour cela je pense qu'il faut agir dans le fichier js du plugin, je ne vois pas de solutions externes.

Hors ligne Prelude

  • Administrateur
  • Membre Héroïque
  • *****
  • Messages: 1155
  • Karma: +9/-0
    • Mon blog
Re : Sprite et Tileset
« Réponse #13 le: 23 août 2012 à 19:40:23 »
Ah oui, en effet...
Là, ça demande une modification de fond.
Je rajoute ça sur les nombreuses choses à rajouter ;)

Hors ligne vincent

  • Néophyte
  • *
  • Messages: 20
  • Karma: +0/-0
Re : Sprite et Tileset
« Réponse #14 le: 24 août 2012 à 12:35:51 »
Ok merci!
Dans l'attente, une possibilité de mettre une limite max au nombre de cases du pathfinder?
(la fonction de l'event function gestion_onmove(x, y, id) {... ) et verifier en php si position d'arrivée est supérieure de x cases de la position du joueur ce qui bloquerait le déplacement mais laisserait l'affichage du curseur en vert :s ?
« Modifié: 24 août 2012 à 12:38:55 par vincent »