SDL_AddTimer : comment l'utiliser ?
Hellow, je suis en train de coder un jeu avec la SDL (jedi-SDL) et je voudrais créer un timer qui appelle une fonction d'affichage toutes les 30 ms. J'arrive à lancer un timer lorsque je n'ai aucun paramètre à donner à ma fonction de callback, mais lorsque je veux en mettre, le compilateur m'indique des erreurs que je n'arrive pas à corriger.
La doc de la fonction SDL_AddTimer : http://jedi-sdl.pascalgamedevelopmen...laddtimer.html
Mon code :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| type timerParam = ^TtimerParam;
TtimerParam = record
scr : PSDL_Surface;
imgFond : PSDL_Surface;
end;
function actualise(intervalle : UInt32; param : pointer) : UInt32;
begin
SDL_BlitSurface(param^.imgFond, NIL, param^.scr, NIL);
SDL_Flip(param^.scr);
result := intervalle;
end;
procedure cgraphiques.activeTimer();
var par : timerParam;
begin
par^.scr := scr; // Attribut de la classe cgaphiques
par^.imgFond := imgFond; // Idem
timerId := SDL_AddTimer(FPS, @actualise, par);
end; |
En gros ce code permet de réafficher l'image de fond toutes les 30 ms (ce n'est qu'un début : plus tard, la fonction affichera tous les graphismes du jeu).
L'erreur que me retourne Lazarus : Illegal qualifier sur la ligne SDL_BlitSurface(param^.imgFond, NIL, param^.scr, NIL); : apparemment, c'est le param^.imgFond que j'utilise mal...
Merci d'avance !