En esperant etre dans la bonne catégorie...
Voilà mon problème,
je dois créer un Snake en C avec Win API
Et j'ai des gros problème d'affichage.
Je cherche déjà à afficher une image et a la faire déplacer mais pas moyen d'arriver a quelque chose de convaincant.
Je recherche ame charitable voulant bien sa pencher sur mon problème.
J'ai un menu qui me lance un Timer :
case WM_COMMAND:
{
if(LOWORD(wParam) == IDM_QUIT) PostMessage(hwnd, WM_CLOSE,0,0);
if(LOWORD(wParam) == IDM_START) SetTimer(hwnd,1,100,NULL);
return 0;
}
et ensuite je gère ma direction comme ceci :
case WM_TIMER:
{
if (sens==1) {postetex=postetex-5;}
if (sens==2) {postetey=postetey-5;}
if (sens==3) {postetex=postetex+5;}
if (sens==4) {postetey=postetey+5;}
HDC hdc=GetDC(hwnd);
AfficheImage(hdc,postetex,postetey,tete);
ReleaseDC(hwnd,hdc);
return 0;
}
case WM_CHAR :
{
if(wParam=='z'){sens=2;}
if(wParam=='q'){sens=1;}
if(wParam=='d'){sens=3;}
if(wParam=='s'){sens=4;}
return 0;
}le problème reste l'affichage de mon Bitmap à la bonne position avec l'effacement du reste.
Là je le fais dans le TIMER
mais je n'arrive pas à le passé dans la fonction WM_PAINT sinon tout plante.
et je ne peu pas effacer les positions précédentes...
Voici aussi ce que j'ai dans ma fonction afficheimage() :
#include <windows.h>
void AfficheImage(HDC hdc, int ix, int iy, char *filename)
{
HBITMAP hBmp;
hBmp=(HBITMAP)LoadImage(NULL,filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
DrawState(hdc,NULL,NULL,(LPARAM)hBmp,NULL,ix,iy,0,0,DST_BITMAP);
DeleteObject(hBmp);
}