Simple DirectMedia Layer gir tilgang til lyd , tastatur , mus , joystick , OpenGL 3D- maskinvare og 2 - D video framebuffers . Brukes med MPEG -avspilling programvare , emulatorer og andre spill , er SDL program hendig for en rekke ting , for eksempel animere en side scroller spillet . SDL fungerer problemfritt med C + + , men fungerer også i C , Ada , C #, D, Eiffell , Erlang , Euphoria , Go , Guile , Haskell , Java , Lisp , Lua , ML , Objective C , Pascal , Perl , PHP, Pike, Smidig , Python , Ruby , Smalltalk og Tcl . Instruksjoner
en
Lag to nye filer som kalles " CAnimation.h " og Legg til følgende " inkludere" direktivet " CApp.h " " CAnimation.cpp /. ": " # include ' CAnimation.h ' "
2
Åpne" CAnimation.h " og skriv inn følgende kode : .
# ifndef _CANIMATION_H_ # define _CANIMATION_H_ # include < SDL . h> class CAnimation {private : int CurrentFrame ; int FrameInc ; private: int framerate ; //Millisekunder lang oldtime , offentlige : int MaxFrames , offentlige : CAnimation ( ) ; void OnAnimate ( ) , offentlige : void SetFrameRate ( int Rate) ; void SetCurrentFrame ( int Frame ); int GetCurrentFrame (); }; # endif
3
Åpne " CAnimation.cpp " og skriv inn følgende kode med dine verdier for frame rate: # include " CAnimation.h " CAnimation :: CAnimation ( ) { CurrentFrame = 0; MaxFrames = 0; FrameInc = 1; framerate = 100; //Millisekunder oldtime = 0;
} void CAnimation :: OnAnimate ( ) { if ( oldtime + framerate > SDL_GetTicks ( ) ) {return ;} oldtime = SDL_GetTicks (); CurrentFrame + = FrameInc ; if ( FrameInc > 0 ) {if ( CurrentFrame > = MaxFrames - 1) { FrameInc = - FrameInc ;} } else { if ( CurrentFrame < = 0 ) { FrameInc = - FrameInc ;} } } else {if ( CurrentFrame > = MaxFrames - 1) { CurrentFrame = 0 ;} } } void CAnimation :: SetFrameRate ( int Rate ) { framerate = Rate ;} void CAnimation :: SetCurrentFrame ( int Frame ) { if ( Frame < 0