https://www.youtube.com/watch?v=x7tp6BWz3Ek
Ça sert à rien mais c'est amusant à coder
J'en suis vraiment au tout tout début alors normal qu'il manque beaucoup de choses, c'est vraiment que la structure et la logique de base que j'ai fait pour l'instant
Alors qu'en pensez-vous ?
Merci, je sais pas trop jusqu'à où je vais pousser ça mais c'est un bon entrainement au C++ étant donné que c'est mon premier jeu avec ce langage
Pour l'UI j'utilise SFML
Boh j'avais déjà fait des jeu en Python avant, c'est différent mais j'ai déjà une bonne logique à présent.
J'ai pas vraiment recherché d'architecture, j'ai essayé d'inventer quelque chose de pratique et d'optimisé mais je n'ai pas pris de modèle (excepté les fonctions de la SFML)
Je pense que j'utilise cette architecture Modèle-Vue-Contrôleur en quelque sorte mais je ne sais pas si c'est exactement ça, en gros :
- Classe GameMap
: Contient tous les blocs, gère le placement des blocs et la mise à jour de certains en fonction de si ils peuvent changer visuellement indépendament (poudre de redstone), si ils doivent être mis à jour à chaque tick (répéteurs) ou si ils ne peuvent pas changer sans interaction de l'utilisateur (blocs de redstone).
- Classe Displayer
: Les pointeurs des blocs de GameMap sont passés au Displayer qui les range dans des objets Chunks
de 16x16 blocs, à chaque modification d'un bloc celui-ci est dessiné sur le Chunk qui lui correspond (le bloc est dessiné seulement si il vient d'être modifié). Avant chaque mise à jour de la fenêtre les Chunks seulement visibles à l'intérieur de la fenêtre sont dessinés dessus. Pour parcourir la fenêtre j'utilise les vues de la SFML, le Displayer sert aussi à récupérer les events.
- Le main : Va simplement charger les données, initialiser le GameMap et le Displayer, et lancer la boucle.
- La boucle principale : Récupère les events du Displayer, et choist comment placer les blocs, quelle touche correspond à quel bloc etc... Et met à jour le Displayer et le GameMap.
Très globalement c'est ça
La SDL je m'y est suis intéressé mais je trouve que la SFML est beaucoup plus riche, je préfère avoir un maximum d'outils à disposition.
Le 04 juillet 2019 à 21:19:51 Google_Bot a écrit :
Oui ça ressemble à du MVC accidentel présenté comme ça.
Pourquoi "accidentel" ?
Sinon moi c'est l'inverse pour le coup, la SDL étant une lib C, elle me semble inévitablement plus bas niveau que la SFML.
Oui c'est plus blus bas niveau c'est sûr mais j'aime pas trop quand c'est trop bas non plus
Le 10 juillet 2019 à 17:51:25 Oxxi_ a écrit :
Le 04 juillet 2019 à 21:19:51 Google_Bot a écrit :
Oui ça ressemble à du MVC accidentel présenté comme ça.Pourquoi "accidentel" ?
Parce que tu as l'air de dire que ça t'est venu assez naturellement, donc j'imagine que tu n'as pas non-plus basé toute ton architecture sur ce pattern
Après il faudrait un accès aux sources complètes pour juger (et j'ai pas le temps ) donc on a qu'à dire que tu as une gommette MVC d'office
Sinon moi c'est l'inverse pour le coup, la SDL étant une lib C, elle me semble inévitablement plus bas niveau que la SFML.
Oui c'est plus blus bas niveau c'est sûr mais j'aime pas trop quand c'est trop bas non plus
Chacun ses goûts
Le 11 juillet 2019 à 20:15:16 Google_Bot a écrit :
Le 10 juillet 2019 à 17:51:25 Oxxi_ a écrit :
Le 04 juillet 2019 à 21:19:51 Google_Bot a écrit :
Oui ça ressemble à du MVC accidentel présenté comme ça.Pourquoi "accidentel" ?
Parce que tu as l'air de dire que ça t'est venu assez naturellement, donc j'imagine que tu n'as pas non-plus basé toute ton architecture sur ce pattern
C'est vrai, mais j'avais quand même déjà établi une structure globale avant de passer au code, je voulais même faire du multithreading en isolant toute la partie mécanique, signaux, les comportements des blocs etc pour que le programme soit plus "portable" mais finalement pour l'affichage des blocs c'était trop galère, il me fallait forcément des pointeurs vers des textures et ça passe pas. Et puis j'ai jamais fait de multithreading alors bon
Après il faudrait un accès aux sources complètes pour juger (et j'ai pas le temps ) donc on a qu'à dire que tu as une gommette MVC d'office
On peut dire ça mais je peux te passer seulement les headers si ça t'intéresse ça peut donner une idée
Sinon moi c'est l'inverse pour le coup, la SDL étant une lib C, elle me semble inévitablement plus bas niveau que la SFML.
Oui c'est plus blus bas niveau c'est sûr mais j'aime pas trop quand c'est trop bas non plus
Chacun ses goûts
Voilà et après avoir fait du pygame passer direct à la SDL ça aurait été un peu dur
J'ai pas mal progressé depuis, j'ai ajouté la barre du joueur et le fait que la redstone se transmet à travers les blocs normaux si le signal est envoyé par un répéteur (comme dans le jeu) + masse masse masse correction de bugs qui m'ont bien pris la tête
Pas encore de vidéo, j'attend de coder la torche de redstone, mais voilà un petit gif
Parfaitement synchronisé
Un projet que je vais suivre
Sujet en favori
Le 06 août 2019 à 03:28:11 [MOH]_Angerfist a écrit :
Un projet que je vais suivre
Sujet en favori
Je viens de faire quelques tests, le jeu tourne entre 250 et 600 fps même avec beaucoup d'objets, ce qui est très satisfaisant alors que j'ai un pc avec des capacités plutôt médiocres
Donc même si vous avez un ordi absolument pourris il pourra tourner aisément dessus
Nouvelle vidéo ! https://www.youtube.com/watch?v=K7eO8cb_V0k
up