JeuWeb - Crée ton jeu par navigateur
Gérer les zones de Spawn des joueurs sur la map - 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 : Gérer les zones de Spawn des joueurs sur la map (/showthread.php?tid=4890)

Pages : 1 2


Gérer les zones de Spawn des joueurs sur la map - Argorate - 08-06-2010

Hello,

Je voulais avoir vos avis pour savoir comment vous verriez pour implémenter l'apparition (spawn) des personnages (joueurs) sur la map (plateau de jeu). En effet chaque équipe ne pourra apparaitre que dans "son camps" (une zone prédéterminé et fixe sur la map).

Personnellement je pensais faire de la manière suivante, si jamais vous avez plus simple je suis preneur:

Je créer une image de la même taille que la map (avec 1px = 1 case)
avec comme convention: une couleur pour chaque camps que peut jouer le joueur. Ainsi je colorie par exemple en rouge toute la zone que je souhaite voir être la zone de spawn pour "l'équipe rouge".

Puis je passe cette image dans ma moulinette et paf ça me donne un tableau avec tous les couple (x,y) qui sont valide pour chaque équipe.

Ce moyen m'évite de rentrer les valeurs en question à la main dans le tableau...

Avez-vous mieux a proposer? merci.


RE: Gérer les zones de Spawn des joueurs sur la map - Mycroft - 08-06-2010

Ca me paraît compliqué de créer une liste des zone vide "a priori".

Je ferais plutôt un tirage dans la zone (loi uniforme ou loi normale). (ca dépend un peu si la zone est un rectangle, un cercle, .. ou autre chose).

Une fois que j'ai un couple (x,y), je teste si la destination est vide, et si non je refais un tirage.

Ca doit être possible de calculer combien d'essai il faudra en moyenne.

Mais si seulement 30% de la zone est occupée, ça veut dire qu'à chaque tirage t'as 70% de chance que ce soit libre...*

edit : * : c'est vrai que pour une loi uniforme


RE: Gérer les zones de Spawn des joueurs sur la map - Argorate - 08-06-2010

Je suis tout a fait d'accord sur ce mécanisme, je compte bien faire un tirage aléatoire et vérifier qu'il n'y est pas quelqu'un d'autres.

Mais pour pouvoir faire un tirage d'un couple (x,y) faut-il encore avoir la liste parmi laquelle tirer au sort...

C'est plutôt ça mon problème: comment définir cette liste de couples (x,y)?

(évidement si je fais tout ça c'est que je ne veux pas de zone carré, rectangulaire et autres forme facilement déterminable... ça peut être des formes totalement exotique selon les map Smile)


RE: Gérer les zones de Spawn des joueurs sur la map - pascal - 08-06-2010

Tu peux stocker la carte en DB, ainsi que les coordonnées des joueurs et faire une requête pour sortir les infos.

Genre :
Code :
SELECT
coordonnées
FROM
carte,
joueurs
WHERE (joueurs sur la carte)
     AND (coordonnées sur la carte )
     AND (distance entre joueurs et coordonnées > 0)
     AND (coordonnées sur la zone du camp voulu)
ORDER BY rand()

En option tu peux mettre une distance maximale entre les coordonnées de respawn et les joueurs du camp, histoire que l'on ne passe pas 10 tours à se déplacer avant de revenir à l'action.

Ce genre de requête est possible à faire, je l'avais fait pour joshua à l'époque (joshua, tu me manques, tu nous manques à tous !), c'est un poil costaud à coder mais après ça marche.

A+

Pascal


RE: Gérer les zones de Spawn des joueurs sur la map - Argorate - 08-06-2010

Je dois mal exprimé mon besoin, mais le problème n'est pas tant de la manière de récupérer l'info, mais plutôt de la créé si je peux dire.

En reprenant ta méthode, comment remplis-tu la table carte? (oui avec des INSERT ^^) ou plutôt comment tu définis les valeurs a mettre dans ces INSERT?

Je vais pas m'amuser a le faire a la main, il y aura des milliers de couple possible...


RE: Gérer les zones de Spawn des joueurs sur la map - Ter Rowan - 08-06-2010

est ce pour du one shot ? (ie je fais une fois pour toute la liste des zones possibles)

ou est ce pour pouvoir changer facilement les zones de spawn, avec un algorithme qui va bien ?


si c'est pour un coup unique, que ce soit une carte de couleur, un fichier excel, etc... avec un code php spécifique/une macro/ autre chose, qui interprète tes données pourquoi pas

sinon, faudrait donner l'algorithme de changement


RE: Gérer les zones de Spawn des joueurs sur la map - pascal - 08-06-2010

ben pour remplir la carte, tu fais une interface d'admin visuelle, avec un tableau html (ou des div) et du javascript qui va bien pour changer les cases de la carte.

ça se fait assez facilement avec les librairies du marché (prototype, sciptaculous, jquery) via les events. Les changements sur la carte sont stockés dans une variable de formulaire qui est ensuite traitée par le script serveur pour changer ça en INSERT's.

++

Pascal


RE: Gérer les zones de Spawn des joueurs sur la map - Argorate - 09-06-2010

Effectivement c'est du "one shot", je compte créer un tableau et après se sera fixe (le cas échéant [rare] je repasse la nouvelle image dans la moulinette).

Pascal : le problème de créer un éditeur de la sorte c'est que sans parler du temps pour prog l'éditeur lui même qui n'est certes pas très complexe, il me faudrait "m'amuser" à afficher ma zone de 250*150cases et de définir une par une les cases de spawn!
Et même si je faisais un truc intelligeant du style pouvoir définir la taille du "pinceau" (ie lorsque je clique sur une case, les X cases alentour sont aussi colorié) ça me prendra je pense plus de temps que de faire l'image sous photoshop^^
Mais merci de la proposition!


RE: Gérer les zones de Spawn des joueurs sur la map - Ter Rowan - 09-06-2010

effectivement si tu veux saisir une zone type "cercle" ou "carré" ou "tracé à la main mais rempli par la machine" et si tu es à l'aise avec les images pourquoi pas

tu fais du one shot, donc peu importe que ce soit crade théoriquement ou non, si le résultat est là (d'ailleurs je suis bien incapable de dire si le traitement par image est crade ou non ^^)


RE: Gérer les zones de Spawn des joueurs sur la map - Sloop - 09-06-2010

Euh ... tu peux pointer une case avec ta souris et demander une entrée de grandeur (largeur et longueur). Cela permet d'utiliser un éditeur graphique et ne pas devoir appuyer sur toutes les cases -_-'