begin process at 2012 05 30 17:15:58
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

SDL animation


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

SDL animation

lundi 3 novembre 2008 à 12:37:11 | SDL animation

supermael

Bonjour tout le monde, je commence un petit jeux, pour m'entrainer. Il sera en vue de profil (on ne peut bouger que vers la droite ou vers la gauche) et le personnage est tout en bas de ma fenêtre. Pour gerer les deplacement ia pas de problème, mais je fait un petit code pour tester si j'arrive à faire les tir, sans els déplacement, bah apparemment non :p donc si vous pouviez m'aider et me dire ce qu'il ne va pas dans mon code ou du moins me donner une piste.
Code : C
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
#include <stdio.h>#include <stdlib.h>#include <SDL.h>#include <SDL_Image.h>#include <SDLP_Anim.h>#define SNKT      4#define VITESSE   5voidtir(SDL_Surface*ecran, SDL_Rect &pSnake);intmain(intargc,char*argv[]){SDL_Surface*ecran=NULL;SDLP_Animsnake;SDL_RectpSnake;intcontinuer=1,Action=SNKT;SDL_Eventevent;SDL_Init(SDL_INIT_VIDEO);ecran=SDL_SetVideoMode(300,300,32,SDL_HWSURFACE|SDL_DOUBLEBUF);SDL_WM_SetCaption("Mini jeu - tir",NULL);//animation du perso qui tireSDLP_LoadAnim(&snake,"snake3.bmp",3,500/VITESSE,SDLP_GAUCHE,SDLP_INFINI,SDLP_TOUCHE);pSnake.x=0+50;//position du joueurpSnake.y=300-59;//repetition des touchesSDL_EnableKeyRepeat(10,10);/* Activation de la répétition des touches */while(continuer){SDL_PollEvent(&event);switch(event.type){caseSDL_QUIT:                continuer=0;break;caseSDL_KEYDOWN:                switch(event.key.keysym.sym){caseSDLK_SPACE :                        Action=SNKT;tir(ecran, &pSnake);break;default:SDLP_BlockTouch(&snake,SDLP_BLOCKED);break;}break;}SDLP_Touch(event,&snake);SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,255,255,255));switch(Action){caseSNKT :          SDLP_SetColorKeyAnim(&snake,0,117,117);SDLP_BlitAnim(&snake,ecran,pSnake);break;}SDL_Flip(ecran);}SDLP_FreeAnim(&snake);SDL_Quit();returnEXIT_SUCCESS;}void tir(SDL_Surface *ecran, SDL_Rect &pSnake)//fonction des tir, qui créer des balles.{SDL_Surfaceballe;//surface de la balleSDL_RectpBalle;inttempsActuel=0,tempsPrecedent=0;balle=IMG_Load("balle.bmp");pBalle.x=pSnake.x+25;//coordonnées de la balle étant au bout du fusil du persopBalle.y=pSnake.y+15;tempsActuel=SDL_GetTick();//boucle pour deplacer la balleif(tempsActuel-tempsPrecedent>30){pBalle.x+=20;tempsActuel=tempsPrecedent;SDL_BlitSurface(balle,NULL,ecran,&pBalle);SDL_Flip(ecran);}}

Sa marche bien, je peux marcher et les animation sont correct, mais le problème c'est que quand je tir, déjà je ne sais pas comment faire pour que l'animation ne se joue qu'une fois quand je presse la touche espace et ensuite les balles ne bougent pas, elles restent près de mon perso. Je pense que c'est pasrce que les coordonnées des balle sont dans ma fonction mais je ne sais pas où les mettre.
lundi 3 novembre 2008 à 12:39:58 | Re : SDL animation

supermael

Oula il y a un bug avec le code
 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
#include <stdio.h>#include <stdlib.h>#include <SDL.h>#include <SDL_Image.h>#include <SDLP_Anim.h>#define SNKT      4#define VITESSE   5voidtir(SDL_Surface*ecran, SDL_Rect pSnake);intmain(intargc,char*argv[]){SDL_Surface*ecran=NULL;SDLP_Animsnake;SDL_RectpSnake;intcontinuer=1,Action=SNKT;SDL_Eventevent;SDL_Init(SDL_INIT_VIDEO);ecran=SDL_SetVideoMode(300,300,32,SDL_HWSURFACE|SDL_DOUBLEBUF);SDL_WM_SetCaption("Mini jeu - tir",NULL);//animation du perso qui tireSDLP_LoadAnim(&snake,"snake3.bmp",3,500/VITESSE,SDLP_GAUCHE,SDLP_INFINI,SDLP_TOUCHE);pSnake.x=0+50;//position du joueurpSnake.y=300-59;//repetition des touchesSDL_EnableKeyRepeat(10,10);/* Activation de la répétition des touches */while(continuer){SDL_PollEvent(&event);switch(event.type){caseSDL_QUIT:                continuer=0;break;caseSDL_KEYDOWN:                switch(event.key.keysym.sym){caseSDLK_SPACE :                        Action=SNKT;tir(ecran, pSnake);break;default:SDLP_BlockTouch(&snake,SDLP_BLOCKED);break;}break;}SDLP_Touch(event,&snake);SDL_FillRect(ecran,NULL,SDL_MapRGB(ecran->format,255,255,255));switch(Action){caseSNKT :          SDLP_SetColorKeyAnim(&snake,0,117,117);SDLP_BlitAnim(&snake,ecran,pSnake);break;}SDL_Flip(ecran);}SDLP_FreeAnim(&snake);SDL_Quit();returnEXIT_SUCCESS;}void tir(SDL_Surface*ecran, SDL_Rect pSnake)//fonction des tir, qui créer des balles.{SDL_Surfaceballe;//surface de la balleSDL_RectpBalle;inttempsActuel=0,tempsPrecedent=0;balle=IMG_Load("balle.bmp");pBalle.x=pSnake.x+25//coordonnées de la balle étant au bout du fusil du persopBalle.y=pSnake.y+15tempsActuel=SDL_GetTick();//boucle pour deplacer la balleif(tempsActuel-tempsPrecedent>30){pBalle.x+=20;tempsActuel=tempsPrecedent;SDL_BlitSurface(balle,NULL,ecran,&pBalle);SDL_Flip(ecran);}}

lundi 3 novembre 2008 à 12:40:33 | Re : SDL animation

supermael

Bon désolé pour le code, j'arrive pas à le mettre.


Cette discussion est classée dans : ecran, sdl, tir, sdlp, psnake


Répondre à ce message

Sujets en rapport avec ce message

SDL : comment rafraichir l'ecran? [ par smilandfly ] Bonsoir'je viens de mettre sous sdl (que je viens de decouvrir) mon awale programmé en C++ en mode texte.J'ai 2 problemes qui ne sont sans doute pas t [SDL] Defilement de l'ecran [ par hoxid ] Ben voila je voulais savoir comment faire defiler l'ecran, avec SDL.J'y arrive, mais quand le perso arrive au milieu, il bloque. De plus, quand il va probleme vitesse scrolling [ par gusdark ] bonjour , j'ai lu pas mal de topics sur le scrolling dans le forum, ce qui m'a permis de comprendre le principe.Mais j'ai cependant un problème que je SDL [ par lushkah ] bjr, j'ai un pb avec la SDL  en C, je débutes et j'ai passer la nuit a essayer de faire une disparition en fondu, j'essayes de programmer un jeu de da Message d'erreur avec SL [ par Maximi ] Bonjour je débute avec C++ et SDL, je travaille avec VC++ 6.J'ai fait un tout petit programme et mon problème, est le suivant :je compile le code et c aide moi dans la SDL [ par iliassh ] je veux vos aide pour cree mon jeux en SDL,et je suis trop charger pourque je le rend avant la fin du mois courantje vai l'aide de qq de votre part po programmation lecteur mp3 [ par dr971 ] Bonjour,je souhaite realiser un lecteur mp3 en c grace à la librairie fmod mais j'ai un probleme. En fait je souhaite qu'en appuyant sur la touche p d Probleme en prog SDL.h [ par sieuzac ] Salut a tous.Je voudrez savoir pourquoi mon va plus vite au TEMP 2 qu'au TEMP 1#include #include #include #include /* surface qui sert à l'affich SDL porbleme [ par fahdovski ] IL Y'A EXECUTION MAIS LE PC PLANTE IL DEVIENT TRES LENT, MAIS POURQUOI??????jE TRAVAILLE SUR CODE::BLOCKS SOUS LINUXAVANT CA MARCHAIS IMPEC QUESQUI C'


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,761 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales