Quatre à la suite

Tu dois connaitre la taille de map ou le joueur se trouve j'imagine vu que tu la créé toi même, le nombre de case impossible à marcher dessus (mur, object, etc) et tu empêche de revenir sur une case déjà visité; avec tout ça tu sais combien de case disponible il reste normalement, ou se situe ton problème exactement?

Bonsoir,

voir schéma ci dessous :

sans titre6

vert et bleu deux personnage, rouge "0" position de départ du personnage rouge.

Lancé de dés = 11.

Le personnage rouge commence son déplacement, jusqu'à 6, reste 5 à faire mais plus de possibilité, car les déplacements en diagonal sont interdits.

Pour le fait de ne pas repasser où il a marché, j'utilise un range et Union et je compare le futur déplacement avec ce range, si intersect alors "pas bon". Mais comment détecter le pas bon "total" ?

En écrivant ceci je me rend compte qu'après chaque déplacement d'une cellule je dois vérifier s'il en rste une sur les trois autres directions !

Merci !

@ bientôt

LouReeD

Tu devrais travailler avec des Arrays/Tableaux que tu représentes graphiquement sur ta feuille excel, tu n'as pas fait ton Méga Bloks de cette façon pour faire bouger tes formes (je n'ai pas regardé le code de ce jeu)?C'est en général la façon de faire un tétris et un rpg en jeu vidéo

Sinon en travaillant avec un intersect, quand tu créé ta map tu sais combien de case il y a (soit le total), combien de zone sont inaccessible (noir) et combien de personnage tu as, soit car tu as des map pré-faites et tu connais de base tout cela ou si tu random tes maps, une simple boucle et en regardant soit si la case est vide ou la couleur tu peux le calculer

case possible = total - mur (noir) - personnages/objets/autres

Par la suite à chaque déplacement tu réduits donc ce total de 1, tant qu'il est >0 et que le joueur n'est pas bloqué alors c'est qu'il peut bouger

Oui suffit de regarder en -1/+1 sur la ligne et colonne de la case ou se trouve le joueur et si aucune n'est vide alors il ne peut plus se déplacer, c'est facile

Après comme toujours, cela dépend comment tu as construit ton jeu et tes variables, il te faudra modifier ton approche si tu ne peux pas savoir ces informations (nombre de case, nb mur, ennemis, ou se trouve exactement le joueur, etc)

Personnellement vu qu'on est sur excel je n'utilise pas d'Array car on a un support déjà présent pour noter en dur les informations mais c'est la même chose, mais du coup on créé déjà la map puis on affiche le résultat au joueur

exemple1

j'utilise donc des boucles sur mes cases excel et voir ce qu'il y a dedans pour autoriser ou non un déplacement, afficher un monstre ou pas, idem si jamais le joueur loot, dans la case du coup j'y inscrit un code particulier

Dans un exemple simple une fois que le joueur à un peu avancé cela donnerait:

exemple2

Et du coup si le joueur quitte/reviens, il suffit de recréer graphiquement la zone d'excel "dynamique" soit ou en était le joueur pour reprendre la partie

Dans un Tétris c'est la même chose, la représentation que tu as dans le code dans un Array et savoir si c'est déjà occupé ou non pour savoir si la pièce peut descendre ou pas par exemple et la représentation graphique par la suite que le joueur voit.

Dans un RPG 2D c'est la même chose, la tile map que tu sauvegardes c'est juste le numéro d'identification de la chose dans chaque case, ce qui est minuscule à sauvegarder du coup

Après bien sur encore une fois, chacun fait comme et a ses propres affinités/style mais bon pense bien à ton jeu et ses fonctionnalités dans son ensemble car refaire tout un système à la fin car on ne peut pas ajouter des objets à la volée sur la carte quand le joueur tue un monstres et sauvegarder correctement tout cela c'est vraiment pas cool

Bonjour,

oui je travaille avec des tableaux : un tableau qui est une recopie du niveau au début de la partie "source", un tableau "Jeu" qui représente la partie en cours avec les modifications faites suite au différents événement du jeu, et la grille "feuille de jeu" qui est l'affichage pour le joueur, mais ce tableau n'existe pas c'est directement la feuille.

Pour empêcher un joueur de revenir sur ses pas lors de son tour de déplacement, j'utilise un Range qui est "l'addition" des cellules utilisée lors de la mise à jour de la feuille jeu, et du coup je me dois de faire un mixe entre ce trajet et le tableau "Jeu" pour connaître la position des différents objets, monstres ou joueurs.

Je pense y être parvenu, il me reste à optimiser le code car des cas particuliers peuvent se présenter :

lors d'un tour un joueur peut se déplacer et faire une action, ou bien faire l'inverse.

Mais s'il ne peut se déplacer car "il est coincé", il peut faire une action (combat avec un monstre) et du coup à l'issue de l'action il peut se déplacer...

Bref il faut que je remanie tout ceci pour ne pas avoir des "répétitions" d'information identiques !

Après le "plus dur " je pense est le déplacement des monstres qui devraient aller "au plus cours" pour aller au contact des joueurs.

D'où mon étude de l' A* !

@ bientôt

LouReeD

Salut LouReed,

as-tu prévu le cas particulier de l'emm... de Curulis qui fait exprès de tomber sur des bugs?

Bon dimanche !

A+

Oui je crois c'est écrit (ou sera écrit) dans les explications :

Jeu déconseillé à curulis57 avec un i, sans tréma sur le i !

Sinon j'ai mis un "On Error" pour finir intempestivement la partie en cas de bug !

Ou bien avec Resume Next pour que cela continue de tourner !

Et pour éviter les gros blocage je peux mettre un DoEvents pour redonner la main au joueur continuellement, comme cela : Alt+F11 et arrêt du code !

Bon la bataille Navale prends un peu de retard mais je suis assez content de mon nouveau code !

@ bientôt

LouReeD

Je pense que d'utiliser ton Range qui additionne les cases est inutile vu que tu as déjà ton "Tableau Jeu" qui le fait pour toi

Si tu notifies bien le passage du joueur sur les cases dans ce tableau alors tu sais les cases disponibles

Quand ton joueur cliques en sur ta sheets FEUILLE_JEU tu en récupères la Target et directement tu peux tester dans ton "Tableau Jeu" en (Target.Row,Target.Column) si c'est libre ou pas.

Et dans le cas ou c'est libre, il faut aussi que le joueur puisse y aller, ce que ton A* va déterminer

Je pense y être parvenu, il me reste à optimiser le code car des cas particuliers peuvent se présenter :

lors d'un tour un joueur peut se déplacer et faire une action, ou bien faire l'inverse.

Mais s'il ne peut se déplacer car "il est coincé", il peut faire une action (combat avec un monstre) et du coup à l'issue de l'action il peut se déplacer...

Tu dois avoir un bouton "fin/sortir de la zone" pour quitter/retourner en ville à tout moment non?cela règle le problème je dirais

Après si tu veux faire pop un message automatique quand le joueur est bloqué (ce qui à l'air d'être ton cas vu ce que tu dis), cela sera juste à toi de définir les conditions de ce que tu veux faire dans ton jeu ^^

  • Plus de déplacements possible
  • Plus d'action possible
  • Quête finie
  • Quête impossible à finir (le joueur à rater un objectif, il a détruit un élément qu'il ne fallait pas, temps impartis finis, etc)
  • Mort

Cela dépend de ce que tu as en tête

Car comme tu dis cela peut donner des situations particulières, s' il y a un coffre et un monstre cote à cote puis le joueur vient pour ouvrir ce coffre

exemple mouv

1. Si de base le joueur fait ce qu'il veut donc un bouton pour sortir toujours visible: tu as rien à faire

2. Si le joueur ne peut sortir que quand il ne peut plus bouger alors il fait ce qu'il veut: ouvrir le coffre et/ou combattre le monstre

3. Si le joueur ne peut sortir quand il ne peut plus bouger et plus aucune action possible alors cela peut avoir un impact dans ce cas la (ce qui peut aussi être un "atout" de ton jeu/aspect tactique) car imaginons j'ai eu du cul et il me reste 10 points de vie mais je sais qu'il y a des fortes chance que le monstre va au moins me donner un coup sans que je bloque et donc je vais mourir:

- Soit la mort est peu pénalisante et je vais ouvrir le coffre puis je meurs pour pouvoir sortir

- Soit la mort est très pénalisante et c'est donc un choix tactique du joueur (et aussi un retour de feu pour ceux qui jouent trop vite ou si le joueur ne fait pas gaf et va chercher directement le coffre sans regarder ce qu'il y a à coté héhéhéhé)

1. je tente le coup car dans le coffre y a peut être une potion de vie et une épée et idem du loot/xp sur le monstre

2. je me bloque moi même contre un mur et du coup plus de mouvement ni d'action possible (à noter que si tu es dans une configuration comme celle-ci, le joueur pourras donc se bloquer lui même pour sortir de la zone et esquiver des pièges par exemple...)

Vu que tu pars sur le fait qu'on ne peut pas passer 2 fois sur la même case, réfléchis bien à ton level design ^^

Sinon j'ai mis un "On Error" pour finir intempestivement la partie en cas de bug !

Ou bien avec Resume Next pour que cela continue de tourner !

Je dirais notifies au moins que le jeu à eu une erreur même si cela continue de jouer, histoire que le joueur sache qu'il y a eu un comportement bizarre ^^

C'est vrai ça pour quoi la gymnastique des deux "zones" ? Mais alors après pour effacer les traces de pas du joueur dans le tableau, faut faire une boucle sur les index et supprimer cette trace ? Oui merci, c'est une bonne idée !

Par contre il faut que je regarde mieux la règle du jeu d'origine pour savoir si le joueur à le droit de s'arrêter quand il veut lors de son déplacement : en effet, si dans la règle il n'a pas le droit de passer deux fois sur la même case lors de son déplacement alors autant il n'a pas le droit de s'arrêter quand il veut et doit tant qu'il le peut faire le déplacement prévu (sauf s'il se retrouve coincé !) Mais bon ça me semble étrange...

@ bientôt

LouReeD

Il suffit dans le tableau/zone excel de faire un marquage spécial du genre "ZoneVisitée" quand ton joueur avance et avec une simple boucle si le contenu vaut cette valeur alors tu effaces le contenu et voila, toute trace du joueur effacée

Le plus chiant c'est de s’approprier le A* je pense, j'y jetterais un coup d'oeil aussi tient, ça me sera forcément utile dans un jeu un jour

Aucune idée des règles de D&D de base, mais je pense que tu peux aller ou tu veux surtout que c'est du tour par tour donc un archer peut surement reculer puis attaquer à chaque tour pour pas que la cible le rattrape

Moi je dis, construit le jeu comme tu en as envie avec tes règles et surtout en rajoutant tout ce que tu trouves cool !

Après vu que c'est une adaptation, fait ce que tu as envie ou du moins ce qui semble le mieux pour le joueur ou faisable facilement sur excel ^^ (du temps réel avec des monstres pourquoi pas mais gérer les interactions du joueur avec des DoEvents je sais pas ce que ça vaut par exemple aie aie aie)

Hop une petite map rapide et limitée sans utilisée une feuille tampon pour ceux qui ne savent pas trop par ou commencer

il y a 2 map sauvegardées mais on peut faire ce qu'on veut dans les cases une fois que vous aurez analysé le code

On se déplace avec les touches QSDZ

on peut même imaginer un jeu ou il faut passer par toute les cases pour gagner voir même avec des cases "waypoints" à passer dans un ordre précis donc pour un aspect tactique: àméditer pour un petit jeu comme ça rapide ^^

Edit: un pti screen rapidos du résultat

mouvement
18test-mouvement.xlsm (34.70 Ko)

Bonsoir,

plus que le code fourni, c'est plus le fait de bien connaître son départ, son but et les interactions possibles qui ce soir me fait dire que mon jeu d'aventure type "Hero Quest" va prendre du retard...

Il va falloir que je mette correctement tout ceci bien à plat et que je définisse bien les tenants et les aboutissant de chaque options, possibilités de jeu, d'interactions.

Merci encore.

@ bientôt

LouReeD

Oui le code est surtout si d'autre personne regarde ce sujet sur le forum et veulent voir un peu de code, je pense que tu t'en sortiras aussi bien toi même ^^

Ah ah yeah Hero Quest ! un pote l'avait et je lui aais pris pendant quelques temps pour écrire des scénarios (bon je me souviens pas trop mais cela ne devait pas voler très haut LOL)

Tant que tu encapsules bien tes codes ça limite la casse pour rajouter du contenu mais l'avantage c'est que tu pars d'une base de jeu (tout comme moi avec un jeu déjà existant), cela devrait te donner une bonne idée de ce qu'il te faut comme variables/intéraction et cela devrait être plus facile de rajouter un effet en plus ou une classe de perso en plus je pense

Mais comme on dit toujours, il faut commencer avec un papier et une feuille avant de se lancer dans du code ^^

Bon et après, une fois que j'ai mon papier et ma feuille, j'en fais quoi ?

Désolé...

@ bientôt

LouReeD

bon une feuille papier... ou word hein

Bin tu mets tout à plats comme tu disais si bien, sans ordre particulier

.But du jeu?

En jeu de plateau Hero Quest et surtout Donjon & Dragon les parties peuvent s'étaler/dure sur... des jours, des semaines, des mois!

Il est évident que sur pc cela sera un tout autre gameplay (moins d'ambiance, plus d'action je dirais tout simplement) et du coup quel est l'objectif du joueur?

  • Nettoyer le donjon de tous les ennemis?
  • Tuer le boss du niveau? (si oui pour avoir un générateur aléatoire de carte va falloir y réfléchir)
  • Une quête? (si oui combien de quête différente, etc)
  • Trouver la sortie pour la prochaine zone?
  • un mixte de tout cela avec plusieurs possibilités? un choix random parmi tout cela pour avoir des missions différentes à proposer?

.Temps réel et excel?

Temps réel ou du tour par tour? les ennemis peuvent bouger ou pas?

Tu as besoin de ton A* ou pas du coup entre autres

Concernant ton jeu, tu penses le faire

  • Dans une feuille excel?
  • Dans des userforms?
  • Avec des contrôles active x dans une feuille excel?

Tu veux afficher..

  • La vie du joueur? des monstres?
  • Leurs dégâts/vie?
  • Des animations?
  • Autre chose?

Ton jeu va se jouer...

  • A la souris?
  • Au clavier?
  • Les deux?

Vu que la partie doit être facilement reprise en cours de route pour ce type de jeu, cela n'induit pas du tout les mêmes contraintes selon ton choix techniques

Outre le fait de rendre inaccessible le code ce qui n'est pas ton souci, tu veux sécuriser un peu ton jeu ou pas? si oui:

  • Les shapes avec macro sur cliques dans excel on peut les copier/coller donc par exemple sans protection particulières si je loot une potion, je la copie/colle et je peux me soigner à l'infinie et quand je veux
  • On peut supprimer une shape sans faire exprès... ça peut être compliqué ^^, un bouton spécial pour "rafraichir/reconstruire" la mission/zone en cours?

. Ravitaillement?

De la même façon je n'ai jamais fait de D&D mais de souvenir dans Hero Quest il n'y a pas de "ville" ou de "marchand" d'arme/potion comme dans un RPG:

  • Entre deux "missions" ou n'importe quand on peut remonter en ville tel un Diablo?
  • Que du loot sur les monstres et coffres du coup mais on peut "changer" de zone sur une worldmap/accepter une autre mission et du coup farmer du matos/xp pour revenir plus tard dans les zones plus dangereuses?
  • Mixte entre les deux, il y a des marchands sur la zone aléatoirement ou selon le scénario?

.StoryBoard et effet

Dans ton jeu tu compes:

  • Faire un générateur aléatoire de map pour un jeu infinie?
  • Ou une histoire principale seulement tel un zelda?
  • Un mixte des deux, quelques zones/missions bien spécifiques en terme de level design/histoires puis une générateur moins poussé mais qui de continuer à jouer à l'infini?
  • Tu comptes faire des dialogues? si oui comment les afficher?
  • Il n'y a pas de maitre du jeu, tu va faire un panneau d'affichage des actions en cours ? du genre
"Vous utilisez coup de bouclier sur Zombie, vous faites 50 dégâts"

"Zombie vous mord, coup critique! Vous prenez 8 dégats"

  • Ou du vas faire des pop-up pour la perte des points de vie?
  • Les actions seront interactives? passage de la souris sur une shape qui fait afficher un message dans la zone information justement du style
"Vous voyez un coffre bien remplie"

"On dirait une porte"

  • Une shape/pop-up qui apparait au passage de la souris pour indiquer une action possible? un bouton qui apparait?
  • Ou comme dans les anciens jeux une listes de boutons/actions possible et au joueur d'essayer de combiner pour voir l'effets?

. Mort?

Quelles sont les effets de la mort sur tes personnages?

  • Perte d'xp?
  • Perte d'or?
  • Remise à zéro/arrêt de la zone/mission en cours?
  • Mort définitive?

. Xp, or et classe de personnage?

Je parle d'xp , d'or et personnage mais ... quel système veux tu mettre en place?

  • Un système d'expérience avec une monter de niveau et de gain de points de compétences
  • Des compétences mais qu'on peut acheter/améliorer avec de l'argent
  • Un système de maitrise des armes/sorts à force de les utiliser (comme dans Dungeon Siege et surement d'autre jeu, pour se spécialiser il faut donc manier/utiliser souvent la même mais on peut changer facilement de type de perso)
  • Un système encore différent par exemple une mission/scénario réussi = 1 point pour une compétence ou améliorer son personnage?

Des personnages...

  • Corps à corps?
  • A distance? Dans le cas d'un temps réel, peut-on faire du Hit and Run? ou alors le corps à corps est avantagé?

Dans le cas de compétences:

  • Un arbre commun à tous ?
  • Des arbres spécifique selon un jeu en début de partie?
  • Un mixte des deux genre du commun à tous les persos (booste de vie, dégâts etc) et du spécifique (boule de feu pour mage, coup de bouclier pour guerrier etc)
  • Cout de base en or et en mana, effet de base, prérequis puis cout du level suivant, effet level suivant, nombre de point que cela coute: formule et équilibrage à l'horizon (pour un D&D cela devrait aller mais attention au Double qui sont limités en terme de chiffre...)

D'une manière générale:

  • Des caractéristiques différentes pour les personnages type force, dextérité, magie, soin etc? quels sont les effets de chacun?
  • Gain automatiques par level de vie/mana ou pas?
  • Des points à distribuer ou augmentation automatique (du genre le guerrier gagne 2 force 1 dext 0 magie, le moine 1 force 0 dext 2 magie et le mage 0 force 0 dext 3 magie)
  • On peut obtenir de l'or ou pas? des potions? des armes?
=> si on a des armes comment seront les prérequis?

=> quel sera le niveau de l'arme? en fonction du monstre que tu tues? du level ou tu es? du level de ton personnage?

  • Pas d'armes donc mais que des compétences et des points de caractéristiques pour déterminer les dégats? inversement, que des armes avec des pré-requis et aucune compétences?
  • Quels sont les statistiques du jeu? coup critique? defense?vie? mana?endurance?force? téléportation?
=> dans le cas d'une classe à distance, il y aura une chance de toucher? ou c'est toujours 100%? si oui alors la classe à distance en faisant du hit en run sera-elle avantagé?
  • Quels sont les statistiques max du jeu? entre 50% maximum de blocage et 75% ou 90% cela n'est pas du tout la même chose!
  • Le gain d'xp... par monstre? par quête/mission?
=> Si c'est par monstre, c'est selon le niveau du monstre ou celui du perso pour limiter ou non le farming?

=> Quelle est la formule de gain d'xp?

Etc etc etc, tellement de chose à prendre en compte ^^

Bonjour,

Non pas tellement de chose, les règles du jeu de plateau Héros Qu'est. Donc plutôt basic, simple, dont les scénario sont déjà écrits, l'ordi ne sert que de maître du jeu.

Entre deux quêtes en fonction de l'or possibilité comme dans le jeu réel d'améliorer son personnage... Mais ça c'est une autre histoire...

Les quêtes aléatoires non plus.

Mais je vais essayé de faire une "création simple" pour une ouverture sur l'inconnue.

@ bientôt

LouReeD

Non pas tellement de chose, les règles du jeu de plateau Héros Qu'est. Donc plutôt basic, simple, dont les scénario sont déjà écrits, l'ordi ne sert que de maître du jeu.

Et bin voila tu as toutes les billes en mains

C'est surtout que vous m'avez fait tourner la tête avec votre dernier message !

@ bientôt

LouReeD

Un jeu un peu plus complexe qu'un démineur demande un peu plus de travail/préparation c'est sur mais le plaisir est d'autant meilleur quand on a ce qu'on veut héhéhé

Tu as un jeu Hero Quest chez toi? ou le fascicule en pdf? En premier lieux tu peux réfléchir voir même coder des trucs de base forcément utile je dirais:

  • Création du personnage
  • Création de la map et de son environnement
  • Interface des actions
  • Système Attaque/vie basique
  • Fin de missions/mort du personnage et retour sur le choix des missions ou menus

Le but étant de restant simple puis d'étoffer, genre la création du personnage tu fais juste un menu avec 3 images pour choisir un magicien/guerrier/archer sans rien de plus

Par contre cela va induire que tu codes/prévois/réfléchis:

  • La création de plusieurs feuille excel du type accueil/choix personnage/jeu/mort etc
  • Une façon de naviguer entre elle via des boutons par exemple et donc il va surement falloir passer en hidden/very hidden des feuilles pour éviter d'aller sur la feuille Jeu alors qu'aucune mission n'est sélectionner
  • Afficher l'image (shape) ou le type de personnage (texte) choisi sur la feuille de jeu (et cacher les autres) en plus de la feuille de choix de personnage si tu décides de le faire sur des feuilles différents, en effet le joueur doit voir directement ce qu'il joue

Puis en y réfléchissant tu vas surement étoffer avec:

  • Un nom de personnage lors de la création que tu vas afficher voir utiliser dans des messages pour le joueur
  • Des caractéristiques force/dext à afficher lors de la sélection du joueur ou un descriptif de celui-ci
  • Un userform ou une sheet en plus pour la gestion du level et distribuer ses points
  • Une partie en plus dans ta feuille de jeu pour la gestion d'un inventaire ou juste sur la feuille de jeu les potions visibles et un userform/sheet en plus pour la gestion d'un inventaire via un bouton
  • Une partie de ta feuille pour afficher les dégats et la vie que le joueur fait, ses points d'actions restantes etc

Ce genre de chose tu ne vas pas y couper au final ou cela sera un choix esthétique (comme ne pas afficher en texte la vie mais juste des barres qui rétrécissent, etc)

Et bien souvent c'est en faisant du code/testant qu'on a des nouvelles idées de toute façon

Disons que dans la vraie vie, quand on joue à Héro Quest, toutes ces données sont simplement écrites sur une feuille de papier.

L'application excel pourrait être que le remplacement du maitre du jeu, qui lui garderait en mémoire toutes ces données !

Du coup tout devient plus simple :

les personnages en plastiques sont des shapes, le plateau de jeu est une feuille Excel, les monstres et objets sont des shapes, les dialogues maitre du jeu / joueur sont des USF avec éventuellement des boutons pour les éventuels choix ou réponses à donner...

Pour l'heure, les combats sont gérés, l'affichage des caractéristiques d'un monstres et géré, l'ouverture ou pas d'une porte est géré, l'affichage des pièces ou passages en fonction du déplacement des joueurs est géré.

Bon je vais peut-être reprendre un peu le code de tout ceci, pour essayer de l'améliorer et surtout de faire qu'il soit "variable" afin que la création de quête soit relativement simple!

@ bientôt

LouReeD

Je viens de voir une chose, à vérifier que c'est vraie :

La feuille protégée (simplement), on clic sur un shape et on le déplace ! Pas top.

Par contre si l'on lui attribue un code VBA, le curseur de la souris passe de la "flèche 4 directions" à un doigt pointé (pour symboliser le clic dessus) et là du coup on ne peut plus "attraper" le shape pour le déplacer !

Ceci est assez simple à contourner, mais cela a le mérite d'être simple et de verrouiller une erreur de jeu du joueur, non ?

@ bientôt

LouReeD

Rechercher des sujets similaires à "quatre suite"