Menu
Minecraft
  • Tout support
  • PC
  • PS4
  • ONE
  • Switch
  • WiiU
  • PS3
  • 360
  • Vita
  • Web
  • New 3DS
Forum
  • Accueil
  • Actus
  • Tests
  • Vidéos
  • Images
  • Soluces
  • Forum
EtoileAbonnementRSS
jeuxvideo.com  /  Minecraft  /  Tous les forums  /  Forum Minecraft  / 

Topic Je programme un simulateur de Redstone en C++

Sujet : Je programme un simulateur de Redstone en C++

1
Oxxi_
Oxxi_
MP
03 juillet 2019 à 18:07:52

https://www.youtube.com/watch?v=x7tp6BWz3Ek
Ça sert à rien mais c'est amusant à coder :noel:
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 ? :hap:

Message édité le 03 juillet 2019 à 18:08:17 par Oxxi_
Google_Bot
Google_Bot
MP
03 juillet 2019 à 21:52:33

Sympa, ça fait un bon projet à l'échelle d'une personne :o))
Tu utilises quelle(s) bibliothèque(s) pour l'UI ?
J'aime bien ton style de code, ça ressemble au mien donc je m'y retrouve :hap:

Oxxi_
Oxxi_
MP
03 juillet 2019 à 21:57:16

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 :hap:
Pour l'UI j'utilise SFML [[sticker:p/1ljr]]

Google_Bot
Google_Bot
MP
03 juillet 2019 à 22:23:31

Bah ça a l'air pas mal du coup si tu débutes, et ça fait un bon entrainement comme tu dis. Tu essaies un peu d'appliquer quelques principes d'architecture logicielle, tels que l'archi Modèle-Vue-Contrôleur ?
J'ai testé un peu SFML il y a quelques années, c'était sympa mais je préfère la SDL pour le coup.

Oxxi_
Oxxi_
MP
03 juillet 2019 à 23:29:00

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 :hap:

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.

Message édité le 03 juillet 2019 à 23:31:24 par Oxxi_
Google_Bot
Google_Bot
MP
04 juillet 2019 à 21:19:51

Oui ça ressemble à du MVC accidentel présenté comme ça.

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. :o))

Oxxi_
Oxxi_
MP
10 juillet 2019 à 17:51:25

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. :o))

Oui c'est plus blus bas niveau c'est sûr mais j'aime pas trop quand c'est trop bas non plus :-)

Google_Bot
Google_Bot
MP
11 juillet 2019 à 20:15:16

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 :o))
Après il faudrait un accès aux sources complètes pour juger (et j'ai pas le temps :hap:) donc on a qu'à dire que tu as une gommette MVC d'office :oui:

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. :o))

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 :hap:

Oxxi_
Oxxi_
MP
15 juillet 2019 à 11:23:26

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 :o))

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 :honte:

Après il faudrait un accès aux sources complètes pour juger (et j'ai pas le temps :hap:) donc on a qu'à dire que tu as une gommette MVC d'office :oui:

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. :o))

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 :hap:

Voilà :hap: et après avoir fait du pygame passer direct à la SDL ça aurait été un peu dur :rire:

Message édité le 15 juillet 2019 à 11:25:31 par Oxxi_
1
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
Infos 0 connecté(s)

Gestion du forum

Modérateurs : Pactoxa
Contacter les modérateurs - Règles du forum

Sujets à ne pas manquer

Boutique
  • Minecraft PC
    28.98 €
  • Minecraft PS4
    28.52 €
  • Minecraft ONE
    19.99 €
    24.99 €