CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C++][SFML]

Cezar[JV]
Cezar[JV]
Niveau 7
29 avril 2013 à 20:42:44

bonjour voila j'ai un problème ayant terminer mon premier jeu avec succès :cool: (enfin pas tout a fait terminer mais bon) (c'était un snake-like sans nouveauté juste un entrainement)

j'ai voulu me lancer dans la création d'un nouveau jeu un tower defense cette fois ci toujours en utilisant la SFML avec le c++.
J'ai un problème .Je suis un gros flemmard et je n'ai donc pas envie de rentrer un par un les coordonnées du chemin des monstres pour chaque niveau donc j'ai voulu faire un algorithme qui enregistre le chemin dans un tableau :
std::vector <sf::Vector2f>;
Beaucoup moins sophistiquer que le A* car il n'y as qu'une seule possibilité de chemin mais je n'y arrive décidément pas

j'en appelle encore a votre bienveillance pour m'aider.
Merci d'avance.

unitedelite29
unitedelite29
Niveau 10
29 avril 2013 à 20:45:45

pourquoi tu fait pas un algorithme A* avec simplement un tableau 2d de bool (peut marcher/ peut pas marcher) que ton algorithme reçois ? ( ta juste a dire a ton Algorithme que si la case de ton tableau est sur false il peut pas aller dessus et l'exclus de la recherche)

Cezar[JV]
Cezar[JV]
Niveau 7
29 avril 2013 à 20:52:24

En fait le problème ne vient pas tellement de là mais du fait que je n'arrive pas a balayer mon tableau de la manière d'un chemin je m'explique pour afficher un tableau pour le tile mapping c'est simple tu fais colonne par colonne mais si je fait sa je me retrouve avec mon chemin aussi en colonne par colonne
donc il faut faire en sorte de prendre un point de départ et de faire:
vérifier la gauche,
vérifier la droite,
vérifier le haut,
vérifier le bas,

c'est sa que j'arrive pas a faire correctement
(j'obtient toujours des boucles infinies)

ps : j’espère avoir été claire.

unitedelite29
unitedelite29
Niveau 10
29 avril 2013 à 20:57:47

j'ai pas bien compris en faite ^^

Cezar[JV]
Cezar[JV]
Niveau 7
29 avril 2013 à 21:04:31

je le savais...

Bon je reformule déjà je te donne le code :
http://pastebin.com/44zd1yWr

après je t'explique mon problème je voudrais faire ce genre d'algorithme mais celui-ci ne marche pas j'obtient une boucle infini et j'aimerais éviter le A* car je trouve sa trop complexe pour le mettre dans mon jeu

LEpigeon-888
LEpigeon-888
Niveau 12
29 avril 2013 à 21:10:48

Si il y a qu'un chemin c'est simple, fait avance le perso tant qu'il peut, et quand il sera face à un mur tu regarde les autres côté, toujours par la droite ou la gauche, j'sais pas si tu vois ce que je veux dire.

Cezar[JV]
Cezar[JV]
Niveau 7
29 avril 2013 à 21:13:16

Hummm je vois a peu prés je testerai dés que je peux

et merci pour vos réponses rapides

]pseudotest[
]pseudotest[
Niveau 3
29 avril 2013 à 22:07:02

J'ai absolument rien compris aux tentatives d'explication, mais :

Désactive tous les éventuels ennemis que t'as placé (ou tout ce qui utilise un chemin).
Met un
std::cout << la_variable_qui_fait_normalement_sortir_de_la_bouc
le
<< std::endl;
dans ta boucle infinie.

Lance ton programme et tu saura pourquoi la boucle est infinie :)

]pseudotest[
]pseudotest[
Niveau 3
29 avril 2013 à 22:13:14

Au passage, l'algo devrait plutôt ressembler à

tant qu'il reste un point de destination
-s'il n'y a rien sur la position courante+1
--on déplace
-

Yololo
Yololo
Niveau 4
29 avril 2013 à 22:21:10

:d) Oyez Oyez Ceci est un message de pub pour http://waar.me :g)

- Qu'est-ce que c'est waar.me ? C'est tout simplement le plus petit jeux en ligne, jouable de la ds au pc en passant par votre vieux mobile de clochard :hap:

- Un concepts additif, une communauté soudé, une ambiance sympa, alors pourquoi bordel irait tu payer sur ogame alors qu'il y'a tout près de chez toi http://waar.me ? :non:

- http://waar.me depuis 2006 le plus petit jeux en ligne php :ok:

- Ce soir waar.me, http://waar.me alors qu'est ce qu'on attend ? :content:

- On s'enjaille sur http://waar.me :oui:

- Si vous avez un souhait, faut il appeler http://waar.me ?

- A la fin de http://waar.me tu meurs et tu incarne personne vue que t'aura jamais de meuf et donc de fils

- L'abus de http://waar.me n'est pas nocif pour votre santé

Alors go http://waar.me, le plus petit jeux en ligne, sympa, claire, simple, ça roxx du pâté au morille mon gars, prépare toi a sacrifier le peut de vie social qu'il te reste hap:

(Ceci est un message du ministère de la culture rédiger par pépito )

:ok: http://waar.me ma couille :ok:

unitedelite29
unitedelite29
Niveau 10
30 avril 2013 à 08:24:37

Pour ton chemin tu peut faire un fichier image qui fait la taille de ton niveau (donc si ton niveau fait 20cases X 20 cases, tu fait un fichier image de 20pixel*20pixel)

ensuite tu parcours ton fichier image pixel par pixel, tu fait un tableau 2D genre "canWalk[20][20]" et tu dit que si le pixel est différent de la couleur que ta choisi (blanc/noir, n'importe) la valeur de la case canWalk[x][y] = false, sinon elle vaut true

par exemple la technique que j'ai utilisé pour faire un éditeur de map http://www.hostingpics.net/viewer.php?id=888416Sanstitre.png , mon jeu parcours l'image pixel par pixel et j'ai défini que si c'est vert c'est de l'herbe, bleu de l'eau, ect ...

voila le code de ma fonction de lecture :
http://pastebin.com/P5L9SjWL
(le tableau que j'ai défini est grand, je comptais passer par un générateur de bruit pour générer une carte aléatoire )

ce que tu peut définir c'est aussi de mettre un pixel bleu est rouge par exemple, le bleu est le point de départ et le rouge l'arrivé, au début du niveau tu fait un algorithme A* ou tu place toute les cases du tableau dans un vector<Case *> que tu attribuera a chaque ennemi et tu leurs demande de parcourir les cases du vector (soit dans le bon sens (i++) si tu a inversé le vector, soit a l'envers (i--) si tu ne l'a pas fait )

donc a chaque tour elle vont a la première case du vector, leurs variables (si tu fait une classe pour les ennemi) m_nbVector (par exemple) s’incrémente ou se décrémente, une fois que le déplacement est fini elle relise le vector puis le ré-incremente ou ré-decremente jusqu'a ce qu'elles soit tué ou détruite par le programme a l'arrivé.

Cezar[JV]
Cezar[JV]
Niveau 7
30 avril 2013 à 10:57:17

Bonjour c'est bon j'ai trouver le problème je vous remercie pour vos réponses

ps : ]pseudotest[ je te remercie car c'est grâce a t'as technique du std::cout << variable que j'ai résolue le problème

2ps : pour ceux que sa intéresse le problème venait de là

while (niveau1 [(int)pos.y][(int)pos.x] != 'A')
c'était :
while (niveau1 [(int)pos.y+1][(int)pos.x] != 'A')
me demander pas pourquoi ^^.

DeeplyDead
DeeplyDead
Niveau 9
30 avril 2013 à 21:35:47

string direction("droite");

:d) Nope.

Une énumération ce serait beaucoup mieux. Genre :

enum Direction
{
Droite,
Gauche,
Haut,
Bas
};

et après tu peux dire : J'ai une variable de type Direction, elle peut valoir soit Droite, soit Gauche, soit... et tu n'as pas besoin de tester si les chaînes de caractères sont égales, juste si deux entiers valent la même chose (parce que c'est ça qu'il y'a sous les énumérations). Par ailleurs comme tu as un meilleur typage, tu n'as pas à te soucier du cas où ta chaîne de caractère vaut autre chose qu'une direction parce que tu as faut une typo : si tu écris mal ta direction, le compilo va gueuler direct parce que tu essaies d'utiliser un truc qui n'existe pas, alors qu'il ne vérifie pas si tes chaînes de caractères sont valables par rapport au code suivant.

Sous forums
  • Aide à l'achat Mac
  • Création de sites web
  • Internet
  • Macintosh
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment