× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > 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"?

Publicité
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
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
18,99 €Clé USB 3.1 SanDisk Extreme Go 64 Go (200 Mo/s) à 18,99 €
Valable jusqu'au 22 Septembre

Amazon fait une promotion sur la clé USB 3.1 Sandisk Extreme Go 64 Go qui passe à 18,99 €. On la trouve ailleurs à partir de 35 €. Cette clé USB 3.1 (compatible usb 3.0) est rapide puisqu'elle offre des débits jusqu'à 200 Mo/s en lecture et 150 Mo/s en écriture. Pratique, son connecteur rétractable vous évitera d'avoir à manipuler (et perdre ?) un bouchon.


> Voir l'offre
21,50 €Balance connectée Xiaomi Mi Composition Scale 2 à 21,50 € livrée
Valable jusqu'au 20 Septembre

Amazon Espagne fait une promotion sur la nouvelle version de la balance connectée Xiaomi Mi Composition Scale 2 qui passe à 14,87 €. Comptez 6,63 € pour la livraison en France soit un total de 21,50 € livrée au lieu de 32,90 € ailleurs. Cette balance connectée vous permet de vous donner votre poids, masse graisseuse, masse osseuse, pourcentage d’eau, indice IMC, ... Elle est capable de reconnaître jusqu'à 16 personnes différentes. Vous pourrez récupérer vos informations et suivre l'évolution des différente analyses directement sur votre smartphone via le bluetooth.

Vous pouvez utiliser votre compte Amazon France sur Amazon Espagne et il n'y a pas de douane.


> Voir l'offre
489,99 €Disque dur externe Western Digital My Book Duo 24 To USB 3.1 à 489,99 €
Valable jusqu'au 28 Septembre

Amazon propose actuellement le disque dur externe Western Digital My Book 24 To USB 3.1 à 489,99 € livré gratuitement. On le trouve ailleurs à partir de 700 €. Le My Book Duo est une solution de stockage RAID de bureau d’une très grande capacité, idéale pour stocker des photos, des vidéos, des documents et de la musique. Vous pourrez l'utiliser en mode RAID 0 pour des perfomances ultrarapides (vitesse de lecture séquentielle pouvant atteindre 360 Mo/s) ou bien en mode RAID 1 pour bénéficier d’une redondance et mettre vos données en miroir sur les disques durs installés dans le boîtier. Ce dernier comporte en effet 2 disques durs Western Digital RED de 12 To adaptés aux NAS et qui peuvent être récupérés pour être utilisés ailleurs. Sachant qu'un disque dur RED 12 To coûte au moins 400 €, l'achat du Western Digital My Book Duo 24 To peut aussi être une solution économique si vous avez besoin de 2 disques durs 12 To pour votre NAS.


> Voir l'offre

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