Je dois développer un petit jeu sur console en me servant exclusivement de la bibliothèque standard du C++.
Du coup je me dis(dites moi si je me trompe) que je ne devrais pas utiliser windows.h ici car il utilise l'API de Windows. De plus je me dis aussi que je ne peux pas me servir des echappement ANSI aussi.
SVP comment puis-je m'y prendre pour que ma console soit fixe sur l'écran, afin que le joueur puisse par exemple jouer avec les touches directionnelles? exactement comme sur cette image
Ce n’est pas possible, la lib standard ne propose pas ce genre de fonctions, il faut s’en remettre à l’OS. Mais ce n’est pas un problème, code ton jeu tel que tu veux le coder sans penser à la plateforme et ensuite tu codes une couche plateforme qui prend la représentation du jeu que tu as choisie et qui se charge de l’afficher avec les fonctions spécifiques de l’OS. Et si tu veux que ça tourne sur un autre OS, tu n’as qu’à coder la couche plateforme correspondante sans toucher au code du jeu en lui même
1) le scintillement de ma console car dans le code j'ai utilisé
system("cls");
En effet cette ligne de code prend tellement de temps pour windows car elle efface à chaque fois toute la console au lieu de ne mettre à jour que la petite section qui est mise à jour. Apparemment [B]ncurses[/B] n'est pas pour Windows mais pour linux.
Mais ce souci devra faire l'objet d'une nouvelle discussion
2) Le second souci concerne l'ajout d'une scene dans une autre. Du genre, à coté de ma carte (sur console), j'ai une nouvelle vue (dans la meme console mais à droite) qui serait pour l'affichage des donnees de jeu (nombre de vie, nombre de point, ...)
Je t'ai dit que sur windows il y a pdcurses (ou ncurses de MSYS2). Si tu ne crois / n'écoute pas ce qu'on te dit sur un forum il ne faut pas poser de questions.
- Edité par markand 12 avril 2022 à 10:48:40
git is great because Linus did it, mercurial is better because he didn't.
Je t'ai dit que sur windows il y a pdcurses (ou ncurses de MSYS2). Si tu ne crois / n'écoute pas ce qu'on te dit sur un forum il ne faut pas poser de questions.
- Edité par markand il y a 9 minutes
Pas la peine de s'énerver. Je ne dois pas avoir à installer une librairie externe. pdcurses est externe et en l'utilisant, je serai contraint de l'ajouter dans mon code pour pouvoir l'exécuter sur un autre pc. Et ca je ne dois pas le faire.
Je t'ai dit que sur windows il y a pdcurses (ou ncurses de MSYS2). Si tu ne crois / n'écoute pas ce qu'on te dit sur un forum il ne faut pas poser de questions.
- Edité par markand il y a 9 minutes
Pas la peine de s'énerver. Je ne dois pas avoir à installer une librairie externe. pdcurses est externe et en l'utilisant, je serai contraint de l'ajouter dans mon code pour pouvoir l'exécuter sur un autre pc. Et ca je ne dois pas le faire.
Salut !
Alors peu importe ncurses, pdcurse, ou bien Windows.h que tu utilises directement, ton soucis de scintillement vient de ton system("cls")
Et ce n'est pas qu'elle prend trop de temps, même si elle était plus rapide tu verrais les scintillements.
L'idée est simple : tu redessines tout (même les espaces) sans effacer. Pas besoin de CLS, mais à chaque affichage, tu remplis tout sans effacer, et tu n'auras aucun scintillement.
Pas la peine de s'énerver. Je ne dois pas avoir à installer une librairie externe. pdcurses est externe et en l'utilisant, je serai contraint de l'ajouter dans mon code pour pouvoir l'exécuter sur un autre pc. Et ca je ne dois pas le faire.
Je ne m'énerve pas je te réexplique quelque chose que tu as lu et mal informé.
Comme dit bacelar, bon courage pour ta vie de développeur sans dépendances externes et à donc devoir reinventer la roue pour chaque chose dont tu auras besoin (audio, video, graphismes, texte, parsing, base de données, GUI, réseau).
git is great because Linus did it, mercurial is better because he didn't.
T'as déjà essayé de supprimer Kernel32.dll d'un NT4 workstation ?
Un collègue oui, il y a plus de 20 ans, mais oui, c'était possible. (bon, après le reboot est folklorique)
Trêves de plaisanteries, un simple helloword "rapatrie" une tétrachié de dll, entre l'OS, les antivirus, les "plugs-ins" de traduction automatique, de recherche automatique, de thèming, etc...
En plus, il y a de très grosse chance qu'il y ait une version static de la librairie nécessaire, etc...
Contrainte DEBILE.
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
On peut se passer entièrement de tout le runtime C++ si on veut https://hero.handmade.network/forums/code-discussion/t/94-guide_-_how_to_avoid_c_c++_runtime_on_windows
Donc Kernel32.dll pouvait ne pas être dans Windows et un truc qui n'est jamais dans un Windows "de base", c'est la C-Runtime et la C++-Runtime.
Il va faire comment notre cher PO avec ses contraintes DEBILES ?
Il va suivre l'astuce de @JadeSalina pour avoir un programme tout buggé, avec des performances à la ramasse, avec potentiellement des trous de sécurité (side channel, ....) datant des années 80, des fuites mémoires dans tous les coins, avec de l'outillage possible datant du Paléozoïque de l'Informatique, etc...
DEBILES
Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.
On peut se passer entièrement de tout le runtime C++ si on veut https://hero.handmade.network/forums/code-discussion/t/94-guide_-_how_to_avoid_c_c++_runtime_on_windows
Le fanatisme de handmadehero , même quand ça n'a rien n'a voir avec la question ! C'est quand que tu quitte cette secte ?
La façon recommandée de faire en utilisant la CRT etc c’est pour les neuneu qui ne savent pas comment ca marche en dessous. Alors que si on le fait soi même on peut se passer de plein de choses qui servent à rien et qui limitent les perfs (par exemple les security cookies). Comme dit Casey, tout ceci est conçu pour que les mauvais programmeurs fassent moins d’erreur, ça n’a pas pour vocation à rendre le programme meilleur, au contraire.
D’ailleurs il démontre dans une récente vidéo que les principes SOLID et les patrons de conception sont mauvais https://youtu.be/5IUj1EZwpJY
Moi aussi je pensais comme vous, j’ai suivi des cours classiques de conception logicielle etc, mais en voyant la puissance de Casey on se rend compte qu’il a raison, récemment il a éclaté la team du Windows Terminal qui en est même arrivé à s’excuser de leur incompétence (https://devblogs.microsoft.com/commandline/windows-terminal-preview-1-13-release/)
Et sinon dans Handmade Hero, il code des merge sort, radix sort, des générateurs de donjon, un format de fichier, un asset manager qui charge/décharge à la volée les ressources de façon asynchrone, un système de debug, d’interface, de l’illumination globale temps réel, et tout ça sorti de sa tête en direct !! Essayez de streamer en expliquant ce que vous faites vous allez voir que ça rajoute énormément de difficulté, et lui il fait tout ça EN LIVE. C’est pour ça qu’il se permet de critiquer etc, il a juste un niveau de MALADE
Mais que vient faire ici Casey, que je ne cannais pas d'ailleurs et les "security cookies" et autres... pour un simple jeu en console qui n'a pas vocation à être distribué ni être connecté au net et qu'essais de faire un débutant ? Il faut revenir sur terre les gars.
Mais que vient faire ici Casey, que je ne cannais pas d'ailleurs et les "security cookies" et autres... pour un simple jeu en console qui n'a pas vocation à être distribué ni être connecté au net et qu'essais de faire un débutant ? Il faut revenir sur terre les gars.
Aucune JadeSalina fait partie d'une secte , peut importe le sujet , il parlera de Casey et de Handmadehero
JadeSalina a écrit:
Essayez de streamer en expliquant ce que vous faites vous allez voir que ça rajoute énormément de difficulté, et lui il fait tout ça EN LIVE. C’est pour ça qu’il se permet de critiquer etc, il a juste un niveau de MALADE
En ayant vu quelque un de ces stream , je vois rien de fou , et plein de dev explique en même temps qu'il dev sur twitch , ou alors y'a que des génies. Et son code est bof , (et je dirais un peu moche de mélanger du C et du C++ , sans aller même sur du C++11/C++17 ).
En ayant vu quelque un de ces stream , je vois rien de fou , et plein de dev explique en même temps qu'il dev sur twitch , ou alors y'a que des génies. Et son code est bof , (et je dirais un peu moche de mélanger du C et du C++ , sans aller même sur du C++11/C++17 ).
- Edité par HelbaSama il y a environ 14 heures
Alors non, je connais aucun streamer qui explique comme lui, pas même Jonathan Blow. Il parle en continu, il reste pas 5 min à réfléchir sans parler comme font les autres. Je vais pas ressortir un tas de liens mais par exemple dans l’épisode 580 (https://guide.handmadehero.org/code/day580/) il fait des trucs compliqués en expliquant sa pensée etc, aucun streamer ne fait un truc pareil (si vous avez des exemples je veux bien).
Et son code c’est pas du "C++", c’est du "code qui résout le problème simplement sans prise de tête". Il s’en fout de C++, dès qu’un meilleur langage sort il switch. D’ailleurs à son taf il utilise du "CaseyLang" qui est son propre langage à base de C, donc oui il est très loin d’utiliser la dernière syntaxe C++ à la mode ce n’est pas son but. Il fait aussi du web et devinez avec quelle techno backend à la mode il a codé son serveur. Du symfony ? NodeJS ? du serverless AWS ? Non : https://twitter.com/cmuratori/status/1434423015068995589?s=21
Il est aussi en train de monter une structure d’apprentissage (https://starcodegalaxy.com) on n’en sait pas trop pour l’instant mais apparemment en plus des cours, ce serait aussi une structure web complète pour héberger des cours etc qui serait une révolution dans la manière de parcourir le web. En gros il fait tout à la main from scratch et arrive à mieux que ce qui existe fait par des centaines de mecs depuis des décennies c’est vraiment un ouf
Je sais pas pourquoi, mais j'ai l'impression qu'il ferait mieux d'arrêter de parler et commencer à réfléchir
JadeSalina a écrit:
fait des trucs compliqués
De l'interpolation linéaire... compliqué ??? Lol
JadeSalina a écrit:
Et son code c’est pas du "C++"
C'est justement pour cela qu'il est nul en C++, qu'il dit que des conneries et que tu casses les pieds à chaque fois que tu le cites, parce que c'est du caca.
JadeSalina a écrit:
arrive à mieux que ce qui existe fait par des centaines de mecs depuis des décennies
Il fait des trucs basiques, avec du code moisi et des techniques qui datent d'il y a 20 ans.
Il est aussi en train de monter une structure d’apprentissage (https://starcodegalaxy.com) on n’en sait pas trop pour l’instant mais apparemment en plus des cours, ce serait aussi une structure web complète pour héberger des cours etc qui serait une révolution dans la manière de parcourir le web. En gros il fait tout à la main from scratch et arrive à mieux que ce qui existe fait par des centaines de mecs depuis des décennies c’est vraiment un ouf
Pitié si quelqu'un pouvait l'arrêter avant même qu'il commence qu'on soit pas obligé de stopper les gens qui apprennent le cours comme nous sommes déjà obligés de le faire ici sur le cours du C++.
- Edité par markand 13 avril 2022 à 11:05:14
git is great because Linus did it, mercurial is better because he didn't.
Alors non, je connais aucun streamer qui explique comme lui, pas même Jonathan Blow. Il parle en continu, il reste pas 5 min à réfléchir sans parler comme font les autres.
Il y'a Lynix et en plus il est beau ! Et c'est trop un PGM de la prog en plus. (Plus sérieusement si tu aime le dev jeux vidéo et la programmation ,tu devrais suivre ces stream ).
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
git is great because Linus did it, mercurial is better because he didn't.
git is great because Linus did it, mercurial is better because he didn't.
Recueil de code C et C++ http://fvirtman.free.fr/recueil/index.html
git is great because Linus did it, mercurial is better because he didn't.
Discord NaN. Mon site.
git is great because Linus did it, mercurial is better because he didn't.
Discord NaN. Mon site.
git is great because Linus did it, mercurial is better because he didn't.
Mes articles | Nazara Engine | Discord NaN | Ma chaîne Twitch (programmation)