Menu
Minecraft
  • Tout support
  • PC
  • PS4
  • Switch
  • ONE
  • 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_
Oxxi_
Oxxi_
MP
06 août 2019 à 02:53:34

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 :hap:
http://www.noelshack.com/2019-32-2-1565052792-clock.gif
Parfaitement synchronisé :content:

[MOH]_Angerfist
[MOH]_Angerfist
MP
06 août 2019 à 03:28:11

Un projet que je vais suivre :hap:
Sujet en favori :oui:

Oxxi_
Oxxi_
MP
06 août 2019 à 03:29:49

Le 06 août 2019 à 03:28:11 [MOH]_Angerfist a écrit :
Un projet que je vais suivre :hap:
Sujet en favori :oui:

:cimer:

Oxxi_
Oxxi_
MP
08 août 2019 à 01:34:42

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 :hap:
Donc même si vous avez un ordi absolument pourris il pourra tourner aisément dessus

Oxxi_
Oxxi_
MP
20 août 2019 à 02:23:58

Nouvelle vidéo ! https://www.youtube.com/watch?v=K7eO8cb_V0k

Oxxi_
Oxxi_
MP
20 août 2019 à 21:50:04

up

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

Meilleures offres
Disponible à l’achat ou en téléchargement sur :
Télécharger sur le Playstation StorePlaystation Store Acheter sur MicrosoftMicrosoft Store
Fnac ONE 18.99€ Fnac Marketplace ONE 19.95€ Fnac Marketplace PS4 22.69€ Rakuten PS4 25.00€ Amazon Switch 27.00€ Fnac Switch 29.99€
Marchand
Supports
Prix