Juste une petite remarque, quand tu fais ça :
if(*p_displayFps == false)
{
*p_displayFps = true;
}
else
{
*p_displayFps = false;
}
sache que faire *p_displayFps = !*p_displayFps fais la même chose
Ok merci, ça peut toujours servir !
Moi j'ai oublié de préciser un truc, j'utilise SDLK_LAST comme valeur maximale du tableau, c'est en fait le nombre de touche gérées par SDL ! Je l'ai trouvé dans le fichier keysym et avec quelque infos.
Désolée du double post, j'ai oublié une autre chose mais j'imagine que vous aviez pensé, il faut initialiser la variable de type Event_s avec un memset par exemple !
Au pire, tu mets *p_displayFPS = (*p_displayFPS? false : true) comme ça tu es sûr que ce booléen va adopter une valeur vraie ou fausse, même s'il se fait modifier de l'extérieur pour quelque raison, adoptant ainsi une valeur intermédiaire donc vraie qui, inversée, donne une autre valeur intermédiaire donc vraie aussi et restant bloqué sur le vrai.
Et pas de 'else', ça attire le mauvais oeil dit-on.
Arf, je n'aime pas trop les ternaires...
Par contre à chaque fois je souhaiterais tester SDL 2.0 mais ça ne fonctionne pas.
J'ai tout linké, mais Code::Blocks me dit "undefined WinMain@16". Une des solution est d'ajouter libmingw32.a mais ça ne change strictement rien. Je ne comprends vraiment pas...
j'ai aussi eu cette erreur (sur sdl 1.2 ), en fait je l'ai à chaque fois et je trouve à chaque fois une solution différente.
Soit en bricolant les options du linker, soit en allant modifier l'en-tête de la fonction Main dans sdl.h ou des trucs comme ça.
J'ai tout essayé et c'est pareil :/
J'ai oublié de préciser, jamais eu de problème sur la 1.2 !
Bon bah désolée du triple poste mais j'ai trouvé ! La solution dans mon cas était que :
Je n'avais pas pris la bonne version (la i686)
2 L'ordre des fichiers n'était pas bon ! Je devais le mettre ainsi :
libmingw32.a
libSDL2main.a
libSDL2.dll.a
libSDL2.a
Sans moi, je déteste la compétition
"Bien sûr tous les programmes serait lancé sur le même ordinateur d'une personne qui ferait l'arbitre afin de savoir quel programme est le plus "optimisé" "
Oui mais si je compile mon programme avec le compilateur d'Intel?
Faut choisir un seul langage pour la compétition sinon tout le monde prendrait le C
Bonjour,
Je compte apprendre la programmation pour faire des jeux spécifiquement en 2D pour démarrer, style Terraria.
J'ai vu qu'il était codé en C(un signe je crois).
Mais du coup, que doit-je prendre comme langage de programmation pour débuter ? Lequel "C" surtout ?
Merci
Il me semble que terraria fonctionne avec XNA, ce serait pas plutôt du C#?
Terraria est codé en C# avec le .NET, ne pas confondre avec le C.
Quoi qu'il en soit, pour commencer, l'important c'est de commencer !
Je dirais bien que le choix d'un langage dépends aussi des bibliothèques disponibles mais si tu débutes ça ne te dira pas grand chose...
Pourquoi ne pas essayer le C par exemple ?
Savoir s'il a déjà les bases de l'algorithmique serait pas mal.
Le fait de savoir coder dans un langage c'est bien beau, mais s'il ne comprend absolument rien à ce qu'il est en train de faire, c'est absolument inutile.
En plus de ça, le fait de connaitre l'algorithmique, quel que soit le langage, il arrivera normalement à le transposer.
Et puis bon, se lancer dans des jeux, mêmes en 2D pour commencer, c'est franchement brutal. Bien entendu, on évitera de faire allusion aux innombrables projets qui n'ont jamais vu le jour sur ce forum.
PS: Ce n'est pas pour faire mon rabat-joie, mais le nombre de personnes s'imaginant que l'on peut coder des jeux, comme Terraria dans ton exemple, entre la poire et le fromage d'un dîner chez des amis, est franchement faramineux...
ryviel, le classique "pendu" en console avec gestion d'une liste de nom dans des fichiers est un bon tp je trouve pour commencer par exemple
Bonsoir ! Juste une petite question en C :
Est-ce grave si je déclare un variable globale pour la fenêtre principale ?
Avant ça, j'utilisais des pointeurs dans chaque fonction, mais je trouve ça inutile vu que beaucoup de fonctions utilisent la fenêtre principale...
_skip Voir le profil de _skip
Posté le 16 septembre 2013 à 19:14:34 Avertir un administrateur
Il me semble que terraria fonctionne avec XNA, ce serait pas plutôt du C#?
Lien permanent
Il me semble quoi oui
whiteapplex Voir le profil de whiteapplex
Posté le 16 septembre 2013 à 19:50:48 Avertir un administrateur
Quoiqu'il en soit, le langage que tu prendras ne changera rien au jeu que tu coderas, Terraria aurait pu être codé dans n'importe quel autre langage, vu qu'à mon avis le plus difficile est de faire un choix à ce stade, je vais te dire d'apprendre le C++ comme ça ton choix sera fait et je te certifie que tu peux faire ce genre de jeu en C++, après si tu veux vraiment choisir un langage par toi même, je te conseille de regarder les topics déjà postés sur le forum qui posent cette question régulièrement
Mince j'avais pas pensé à recherché sur ce forum, ça sera fait.
VampireGirl Voir le profil de VampireGirl
Posté le 16 septembre 2013 à 20:04:51 Avertir un administrateur
Terraria est codé en C# avec le .NET, ne pas confondre avec le C.
Quoi qu'il en soit, pour commencer, l'important c'est de commencer !
Je dirais bien que le choix d'un langage dépends aussi des bibliothèques disponibles mais si tu débutes ça ne te dira pas grand chose...
Pourquoi ne pas essayer le C par exemple ?
Oui pourquoi pas, je pense aussi à ça, mais je vais voir les topics avant, merci
ryviel Voir le profil de ryviel
Posté le 16 septembre 2013 à 20:19:37 Avertir un administrateur
Savoir s'il a déjà les bases de l'algorithmique serait pas mal.
Le fait de savoir coder dans un langage c'est bien beau, mais s'il ne comprend absolument rien à ce qu'il est en train de faire, c'est absolument inutile.
En plus de ça, le fait de connaitre l'algorithmique, quel que soit le langage, il arrivera normalement à le transposer.
L'algorithme, c'est ce qu'on appel "l'assemblage" ? Car si c'est le truc sur la calculette alors oui je connais, et j'en apprends même encore
"Et puis bon, se lancer dans des jeux, mêmes en 2D pour commencer, c'est franchement brutal. Bien entendu, on évitera de faire allusion aux innombrables projets qui n'ont jamais vu le jour sur ce forum. "
Oui je sais, mais s'était pour donner un ordre d'idée de départ, que j'apprenne pas à traire une vache pour tondre des moutons, enfin vous aurez compris
PS: Ce n'est pas pour faire mon rabat-joie, mais le nombre de personnes s'imaginant que l'on peut coder des jeux, comme Terraria dans ton exemple, entre la poire et le fromage d'un dîner chez des amis, est franchement faramineux...
Je sais, je suis en plus du genre qui abandonne on ne sait pourquoi. Comme mes 3 projets de jeux sur papier, d'ailleurs j'avais trouvé une idée de robot pas mal, jamais exploitée, quand je serais coder je le modderais peut-être
J'informerais de mes choix
@VampireGirl :
Ah je ne dis pas le contraire ^^ C'est juste que si quelqu'un veut absolument commencer par des jeux comme Terraria, cette personne n'ira pas bien loin. Après il y a pas mal de jeux possible en mode texte, et même pourquoi pas des RPG, qui sont beaucoup plus à la portée de débutants en programmation (si on fait abstraction de toute la modélisation, spécifications etc...).
@GreatLife:
Bon, je ne vais pas répondre dans l'ordre, mais pas grave :p.
Surtout, n'abandonne pas trop tôt tes projets lorsque tu apprendras la programmation. Même si l'abandon est assez récurrent, tu t’apercevras que tu va apprendre pas mal de chose, même en cas d'échec.
Pour "l'assemblage" , je ne sais pas si tu parles de "langage d'assemblage" ou de "l'assembleur" en général, mais en tout cas non, ce n'est pas ça ^^. L'assembleur c'est un langage de bas niveau.
Ce que je pensait pour l'algorithmique, c'est plutôt un ensemble de règles, qui te permettent d'écrire des algorithmes. Ces algorithmes, en gros, te permettent de passer d'un problème en entrée, à une solution en sortie. Le fait de savoir écrire et penser à des algorithmes, te permettra de les retranscrire (à une ou deux vaches près) dans le langage de ton choix.