> Tous les forums > Forum Autres langages
 Aide pour jeux
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
ziad
  Posté le 26/03/2009 @ 15:41 
Aller en bas de la page 
Petit astucien

Bonjour,

Est-ce que quelqu'un connait des bon sites internet ou je pourai trouver des sprites (avatars) et des monde de jeux pour jeux en 2D?

J'utilise mappy (mapwin32) mais pour fair quelque chose d'interréssant il faut que je passe plusieur jour dessus.

J'ai cherché sur internet mais je n'ai pa trouvé grand chose.

Un jeux que je vais coder avec allegro.

Merci

Publicité
Zharth
 Posté le 01/04/2009 à 15:24 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
ziad
 Posté le 01/04/2009 à 21:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Zharth,

En faite, j'ai un projet en informatique dont le but est de faire un jeux, inspiré du jeux Gobliins, en C grace à la bibliothèque graphique allegro.

J'ai commencé a coder mon jeux mais j'ai quelques petite questions, histoire de l'améliorer.

Comment afficher un texte comme dans les jeux video et non pas un texte genre console d'application?

Exemple de type de texte: http://www.jeuxvideo.com/screenshots/images/00021/00021888_003.htm

Et aussi, le joueur a la possibilité d'enregistrer sa partie (et donc ensuite de la charger).

J'ai réfléchi au processus de sauvegarde, ce serra en mode texte dans lequel il serra enregistré la valeur de nombreuses variables pour determiner l'avancement du joueur dans le jeux (ex: x et y pour la position du joueur).

Je sais qu'il faut utiliser des fonctions tel que fopen(); fprintf(); et fclose(); mais je ne sais pas vraiment les utiliser.

Donc si vous pouvez m'aider merci.

Dgueul
 Posté le 04/04/2009 à 16:20 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Il y a un petit moment de ça, je m'était fait un petit .h où je regroupais mes fonctions personnel...

J'avais fait quelques fonction de sauvegarde qui peuvent peut être t'interesser...

  • Une fonction qui met un tableau 2 dimentions dans un fichier texte:
  1. int MatToTxt( int *tab , int x , int y , char chemin[] )
  2. {
  3. FILE * f;
  4. f=fopen(chemin,"wt");
  5. for ( int j=0 ; j < y ; j++ )
  6. {
  7. if ( j != 0 )
  8. fprintf( f , "\n" ) ;
  9. for ( int i=0 ; i < x ; i++ )
  10. {
  11. if ( i != 0 )
  12. fprintf( f , " " ) ;
  13. fprintf( f , "%d" , * (tab + i * y + j));
  14. }
  15. }
  16. fclose(f);
  17. return 0;
  18. }

l'appel de la fonction s'effectue de la manière suivante:

  1. MatToTxt((int *) matrice,TailleX,TailleY, nom_de_fichier);
  2. //matrice=nom de ta matrice (tableau)
  3. //TailleX = taille de la première dimention
  4. //TailleY = taille de la deuxième dimention
  5. //nom_de_fichier = une chaine de caractère du type "nom_de_fichier.txt"
  • une fonction qui met dans un tableau 2 dimention ce qui se trouve dans un fichier texte (qui été créé par la fonction fonction précedante, ou qui a le même format):

  1. int TxtToMat( int *tab , int x , int y , char chemin[] )
  2. {
  3. FILE * f;
  4. f=fopen(chemin,"rt");
  5. int i=0,j=0;
  6. while( j < y )
  7. {
  8. while( i < x )
  9. {
  10. fscanf(f,"%d", ( tab + i * y + j ) );
  11. i++;
  12. if( feof( f ) != 0 )
  13. break;
  14. }
  15. y++;
  16. }
  17. fclose(f);
  18. return 0;
  19. }

l'appel de la fonction s'effectue de la manière suivante:

  1. TxtToMat((int *) matrice1,TailleX,TailleY, nom_de_fichier);
  2. //matrice=nom de ta matrice (tableau)
  3. //TailleX = taille de la première dimention
  4. //TailleY = taille de la deuxième dimention
  5. //nom_de_fichier = une chaine de caractère du type "nom_de_fichier.txt"

Voila, je fait du C que depuis quelques mois, donc il se peut que le code ne soit pas très "élégant", cepandant ça fonctionne!

Je conseille de regarder comment ces fonctions fonctionnent pour faire tes propres fonctions!

Elles fonctionnent avec des tableau de int mais j'ai les même pour des float (si tu préfères)...

Si tu as une question, n'ésites pas!

ziad
 Posté le 04/04/2009 à 17:11 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci Dgueul,

J'ai éssayais en adaptant à mon projet. J'ai bien un fichier texte dans lequel sont enregistrés les coordonnées du perso. Mais je n'arrive pas à les charger dans mon programme.

J'ai FILE*ficsvg;

J'enregistre les coordonnées dans un fichier texte "svggob.txt" grace à ça:

" if(!ficsvg) printf("erreur fichier");
else fprintf(ficsvg,"%d %d\n",k->x,k->y);
fclose(ficsvg);

"

Et je veus les charger en début de programme avec ça (je pense que c'est ça qui est faux):

" ficsvg=fopen("svggob.txt","w");
k->x=0;
k->y=100;
fscanf(ficsvg,"%d %d",k->x,k->y);

"

Dgueul
 Posté le 04/04/2009 à 20:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien
  1. ficsvg=fopen("svggob.txt","w");

permet d'ouvrir le fichier "svggob.txt" en mode écriture ("w" signifie "write")

Pour l'ouvrir en mode lecture ("r" signifiant "read"):

  1. ficsvg=fopen("svggob.txt","r");

Dis moi, si ça venait de ça...

Je te conseille d'utiliser "wt" et "rt" à la place de "w" et "t", ça revient au même sauf que certains compilateurs n'aime pas! Pis ça permettra, quand tu fera beaucoup d'ouverture de fichier texte ou binaire, de ne pas te mélanger les pinceaux.

ziad
 Posté le 04/04/2009 à 22:29 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Non c'est pas à cause de ça.

Ca m'affiche directement le message d'erreur de windows.

Dgueul
 Posté le 04/04/2009 à 23:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Quel est le message?

ziad
 Posté le 04/04/2009 à 23:10 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

C'est le message d'erreur de windows ou il demande si on veut envoyer un rapport d'erreur.

Je pense que c'est a cause de mon fscanf(ficsvg,"%d %d",k->x,k->y);

Dans mon fichier texte j'ai enregistré les coordonnées x et y sous la forme "x y" par exemple "100 258"

Donc pour charger ces coordonnées je peut faire un "%d %d"?

Dgueul
 Posté le 05/04/2009 à 01:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

normalement oui!

Dis moi, tu codes et compiles avec quel logiciel? Au moment de la compilation, il ne te marque rien??

ziad
 Posté le 05/04/2009 à 09:54 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Je compile avec Code Blocks, quant j'execute le programme il ne maffiche aucune erreur de compilation mais s'arrete directement avec le message d'erreur de windows.

Dgueul
 Posté le 05/04/2009 à 23:53 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

essaies de ne prendre que la première valeur pour commencer, pour voir si ça fonctionne.

ziad
 Posté le 15/04/2009 à 10:28 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

J'essaye mais j'ai un petit problème. Comment on fait pour convertir un pointeur de type char en int

J'ai essayé par un cast mais ça ne fonctionne pas:

x=(int)posx;

RandD
 Posté le 20/05/2009 à 18:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Normal que cela ne marche pas, car tu obtiens uniquement l'adresse en mémoire du premier char rencontrer, tu as 3 possibilités :

1) La fonction sscanf() avec les bons flag (à toi de les cherchés).

2) La fonction strtol().

3) La fonction atoi() qui est ultra simple à utiliser.

A+



Modifié par RandD le 20/05/2009 18:10
Publicité
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
Batterie externe OUKITEL P2001 Ultimate 2000Wh, 2000W, LifePOE4 à 1226,34 €
1226,34 € 2199 € -44% @Geekbuying
Station de charge portable ALLPOWERS 288Wh 78000 mAh à 179,99 €
179,99 € 299,99 € -40% @Geekbuying
Ecran 32 pouces incurvé KTC H32S17 (QHD, 165 Hz, 1 ms, HDR10) à 239 €
239 € 350 € -32% @Geekbuying
Norton 360 Deluxe (5 postes, 1 an) à 14,99 €
14,99 € 50 € -70% @Amazon
Coffret d'embouts de vissage et clés à cliquet Bosch (27 pièces) à 16,98 €
16,98 € 23 € -26% @Amazon
Radio réveil Lenovo Smart Clock Essential avec assistant Google à 17,99 €
17,99 € 49 € -63% @Darty
Batterie portable Charmast 10000 mAh (USB C/ USB A/ 4 câbles intégrés) à 19,99 €
19,99 € 26,99 € -26% @Amazon
Kit de 16 Go (2x8 Go) de mémoire DDR4 Corsair Vengeance RGB Pro SL 3200 MHz à 68,99 €
68,99 € 100 € -31% @RueDuCommerce
Processeur AMD Ryzen 7 5700G (8 coeurs, Vega 8, AM4) à 188,98 €
188,98 € 250 € -24% @Amazon
Lecteur/graveur de CD/DVD externe USB à 19,55 €
19,55 € 25 € -22% @Amazon

Sujets relatifs
Aide pour un programme simple en C++
Aide POur initiation a SQL ( oracle 10G)
demande d'aide pour un petit script
Aide pour macro sur Notepad ++
Aide pour puissance 4 en C
aide pour fichier .bat
aide pour une fonction
[SQL access] besoin d'aide pour une requete
Demande d'aide pour création d'un logiciel
Besoin d'aide pour un programme
Plus de sujets relatifs à Aide pour jeux
 > Tous les forums > Forum Autres langages