锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
聽
浣滆咃細akinggw
聽
鍓嶈█
聽
鍦ㄥ墠闈㈢殑绔犺妭涓紝鎴戜滑璇磋繃瑕?span lang="EN-US">2D娓告垙鐨勫湴鍥炬槸鐢變竴涓竴涓殑鐡風爾澶熸垚鐨勩備綘鍙互緙栫▼瀹炵幇榪欎簺鐡風爾鐨勬樉紺猴紝涔熷彲浠ラ氳繃涓涓壒鍒殑宸ュ叿鏉ュ疄鐜般傝繖灝辨槸鈥斺斿湴鍥劇紪杈戝櫒銆?/span>
鎴戣寰楀湪鍓嶉潰鐨勬煇涓綃囦腑浠嬬粛榪囦竴涓緢濂界殑鍦板浘緙栬緫鍣ㄣ傚綋鐒訛紝濡傛灉浣犳湁瓚沖鐨勬椂闂寸殑璇濓紝涔熷彲浠ヨ嚜宸卞啓銆傚叾瀹炲畠涔熷茍涓嶆槸閭d箞澶嶆潅銆傝屾垜榪樻槸閫夋嫨浣跨敤鍒漢鐨勭紪杈戝櫒錛屾棦鐒舵湁灝辯敤鍚с傚洜涓鴻繕鏈夊叾瀹冨緢澶氱殑浜嬫儏瑕佸仛銆?/span>
鎴戦夋嫨浣跨敤Mappy錛岃繖涓紪杈戝櫒寰堝嚭鍚嶏紝濡傛灉浣犵湡鐨勪笉鎯寵嚜宸卞啓錛屽張鎯充嬌鐢ㄦ柟渚跨殑璇濓紝榪欎釜涓滀笢寰堥傚悎浣犲摝銆?/span>
鍏充簬鍦ㄥ悇縐嶇幆澧冧笅浣跨敤瀹冪紪杈戠殑鍦板浘錛屽埆浜洪兘宸茬粡鍐欏ソ浜嗭紝灝卞彧鏈夋垜浠嬌鐢?span lang="EN-US">SDL鐨勬渶鎯ㄤ簡錛屾墦寮鍦板浘鐨勯偅涓▼搴忓簱鎵撲笉寮浜嗐傞粯鍝涓夊垎閽?span lang="EN-US">鈥?
涓嶈繃濡傛灉浣犲湪緗戜笂浠旂粏鎼滅儲鐨勮瘽錛岃繕鏄笉閭d箞瀹規槗鎵懼埌鐨勶紝濡傛灉闇瑕佺粰鎴戞潵淇°?
聽
SDLMappy
鏄竴涓笓闂ㄧ敤浜庡鍏?span lang="EN-US">fmp鏍煎紡鐨勫湴鍥撅紙灝辨槸MAPPY浜х敓鐨勫湴鍥撅級鐨勪竴孌電▼搴忋傚氨涓や釜鏂囦歡錛屼竴涓ご鏂囦歡鍜屼竴涓?span lang="EN-US">CPP鏂囦歡銆?/span>
涓嬭澆涓嬫潵鍚庡皢瀹冨鍒跺埌浣犵殑欏圭洰鐩綍涓嬶紝鐒跺悗鍦ㄩ」鐩腑璁劇疆涓涓嬶紝灝卞彲浠ヤ嬌鐢ㄤ簡銆傚厛鐪嬩竴涓嬫垜寰楀埌鐨勭粨鏋滃惂銆?/span>
聽
|
鍥炬敞1
|
鎴戝埗浣滃湴鍥劇殑姘村鉤涓嶆槸寰堝ソ錛屽弽姝h繖閲屼篃鍙槸涓轟簡璇存槑涓涓嬭繃紼嬪槢銆?/span>
涓嬮潰錛屾垜浠潵璇︾粏鍦拌瑙d竴涓?/span>
SDLMappy
涓殑涓浜涙垚鍛樺嚱鏁扮殑浣滅敤錛岃繖鏍鋒湁鍒╀簬鎴戜滑鍚庨潰鐨勭悊瑙c?/span>
聽
int LoadMap (char * Filename , int x , int
y , int Width , int Height);
聽
瀵煎叆鐢?span lang="EN-US">Filename鎸囧畾鐨勫湴鍥炬枃浠訛紝鐒跺悗瑁呭叆鍐呭瓨錛屼互渚夸簬浠ュ悗浣跨敤銆傝繖涓嚱鏁板繀欏誨湪鍏跺畠鍑芥暟涔嬪墠璋冪敤銆?/span>
濡傛灉鎴愬姛灝嗚繑鍥?span lang="EN-US">0錛屽け璐ヨ繑鍥?span lang="EN-US">-1銆?/span>
聽
X/Y
琛ㄧず鍦板浘鍦ㄥ睆騫曚笂鐨勮緭鍑鴻搗濮嬩綅緗?/span>
Width/Height
琛ㄧず鍦板浘鍦ㄥ睆騫曚笂鐨勫彲瑙嗚寖鍥淬?/span>
聽
void MapInitAnims
(void);
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄錛屽亣濡傛垜浠湪鍦板浘涓嬌鐢ㄤ簡鍔ㄧ敾錛屾瘮濡傛祦鍔ㄧ殑姘寸瓑銆傚氨鍒濆鍖栬繖浜涘姩鐢匯?/span>
聽
void
MapUpdateAnims (void);
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄湪鐢誨湴鍥劇殑寰幆榪囩▼涓洿鏂板姩鐢葷殑鏄劇ず銆?/span>
聽
int MapDrawBG
(SDLSurface* s);
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄敾鑳屾櫙灞傦紝浣嗕笉浣跨敤鎴戜滑璁劇疆鐨勯忔槑鑹層?/span>
聽
int MapDrawBGT
(SDLSurface* s);
聽
榪欎釜鍑芥暟鐨勫姛鑳藉拰涓婁竴涓嚱鏁頒竴鏍鳳紝浣嗚浣跨敤鎴戜滑璁劇疆鐨勯忔槑鑹層?/span>
聽
int MapChangeLayer
(int layernumber);
聽
鍥犱負鎴戜滑鐨勫湴鍥懼彲鑳界敱寰堝灞傞噸鍙犲湪涓璧鋒潵鏋勬垚鐨勶紝鍥犳鎴戜滑灝遍渶瑕佸湪鍏蜂綋鐨勬椂鍊欐樉紺虹浉搴旂殑灞傘傝繖涓嚱鏁扮殑浣滅敤灝辨槸璁劇疆鎴戜滑瑕佹樉紺虹殑灞傘傚彟澶栵紝MAPPY鍙敮鎸?span lang="EN-US">8涓眰錛?span lang="EN-US">0鍒?span lang="EN-US">7錛夛紝濡傛灉浣犺緗叾瀹冪殑鏁幫紝瀹冨皢榪斿洖閿欒銆?/span>
聽
int MapGetTile
(int x, int y);
聽
榪斿洖鐡風爾x錛?span lang="EN-US">y榪欎釜鐡風爾涓殑鍐呭銆?span lang="EN-US">X,y鏄〃紺哄湴鍥炬枃浠朵腑鐨勭摲鐮栫殑浣嶇疆錛屼笉鏄儚绱犮傚鏋滆繑鍥炴槸姝f暟錛岄偅涔堣鏄庡彧鏄竴鍧楁櫘閫氱殑鐡風爾錛屽鏋滆繑鍥炴槸璐熸暟錛岄偅涔堝氨鍙兘榪欏潡鐡風爾鍖呭惈鐨勬槸鍔ㄧ敾銆?/span>
聽
BLKSTR *
MapGetBlock (int x, int y);
聽
榪斿洖涓涓?span lang="EN-US">BLKSTR鎸囬拡錛岀敤浜庡啿紿佹嫻嬪拰媯鏌ョ摲鐮栫粨鏋勩傛敞鎰忥細X錛?span lang="EN-US">Y鍙傛暟涓嶆槸鍍忕礌錛岃屾槸鍦板浘涓摲鐮栫殑鍧愭爣銆?/span>
聽
BLKSTR *myblkstr;
Myblkstr=MapGetBlock(xoffinblocks,yoffinblocks);
If(myblkstr->tl){top
left collision is set for this block}
聽
MapSetBlock (int
x, int y, int strvalue);
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄦ槸鐢ㄤ簬璁劇疆鍦板浘涓浉搴旂摲鐮栫殑灞炴э紝x,y灝辨槸鎴戜滑閫変腑鐨勭摲鐮栵紝strvalue濡傛灉涓烘鏁扮殑璇濓紝鎴戜滑閫変腑鐨勭摲鐮栧氨鏄竴鑸殑鍥捐薄錛岃岀浉鍙嶅鏋滄槸璐熸暟鐨勮瘽錛屾垜浠変腑鐨勭摲鐮栧氨鏄姩鐢匯?/span>
聽
WORD GetMapBPP(
void );
聽
榪斿洖褰撳墠鍦板浘鐨勯鑹叉繁搴︺?/span>
聽
WORD GetMapWidth(
void );
聽
寰楀埌褰撳墠鍦板浘鐨勫儚绱犲搴︺?/span>
聽
WORD GetMapHeight(
void );
聽
寰楀埌褰撳墠鍦板浘鐨勫儚绱犻珮搴︺?/span>
聽
WORD
GetMapWidthInBlocks( void );
聽
榪斿洖褰撳墠鍦板浘鐨勭摲鐮栧搴︺?/span>
聽
WORD
GetMapHeightInBlocks( void );
聽
榪斿洖褰撳墠鍦板浘鐨勭摲鐮栭珮搴︺?/span>
聽
WORD
GetMapBlockWidth( void );
聽
榪斿洖褰撳墠鐡風爾鐨勫儚绱犲搴︺?/span>
聽
WORD
GetMapBlockHeight( void );
聽
榪斿洖褰撳墠鐡風爾鐨勫儚绱犻珮搴︺?/span>
聽
void MapMoveTo(
int x , int y );
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄牴鎹潗鏍?span lang="EN-US">x,y鏉ラ夋嫨鐩稿簲鐨勭摲鐮栬繘琛屾樉紺恒?/span>
聽
int
MapGetXPosition( void );
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄繑鍥炴垜浠綋鍓嶆樉紺虹殑鍦板浘鐨勫潗鏍?span lang="EN-US">X銆?/span>
聽
int
MapGetYPosition( void );
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄥ氨鏄繑鍥炴垜浠綋鍓嶆樉紺虹殑鍦板浘鐨勫潗鏍?span lang="EN-US">Y銆?/span>
聽
int DrawParallax(
CDXSurface * Surface );
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄦ槸鐢繪垜浠夋嫨鐨勮宸晫闈€?/span>
聽
BOOL
CreateParallax( void );
聽
榪欎釜鍑芥暟鐨勪綔鐢ㄦ槸浠庝竴涓綅鍥炬枃浠跺悕寤虹珛騫跺鍏ヤ竴涓宸晫闈€傚鏋滃嚱鏁拌繑鍥炵湡錛屽氨鎴愬姛浜嗭紝鍚﹀垯澶辮觸銆?span lang="EN-US">
聽
榪欏氨鏄?span lang="EN-US">SDLMappy涓殑綾葷殑鎴愬憳鍑芥暟鐨勮В閲婏紝涓嬮潰鎴戜滑鏉ョ湅涓涓嬶紝濡備綍浣跨敤瀹冧滑銆?/span>
聽
棣栧厛錛屽緩绔嬩竴涓?span lang="EN-US">SDL欏圭洰銆?/span>
聽
#include
<SDLMappy.h>
聽
鐒跺悗鍦ㄥ紑濮嬫椂錛屽姞鍏ヤ笅闈㈢殑澶存枃浠訛細
聽
聽聽聽
SDLMappy* Map=new SDLMappy();
聽聽聽
聽聽聽
if(Map->LoadMap("test1.fmp",0,0,640,480)==-1)
聽聽聽
printf("Cann't load test.fmpn");
聽
鐒跺悗寤虹珛涓涓?span lang="EN-US">SDLMappy瀹炰緥錛屽鍏ヤ竴涓湴鍥炬枃浠訛紝璁劇疆瀹冩樉紺虹殑鍖哄煙銆?/span>
聽
聽聽聽
Map->MapInitAnims();
聽
鍒濆鍖栧湴鍥句腑鐨勫姩鐢匯?/span>
聽
聽
聽聽聽聽聽聽
聽聽聽聽聽聽聽
Map->MapUpdateAnims();
聽聽聽聽聽聽聽
Map->MapMoveTo(x,y);
聽聽聽聽聽聽聽
Map->MapChangeLayer(0);
聽聽聽聽聽聽聽
apply_surface( 0, 0, image, screen );聽聽聽聽聽聽聽
聽聽聽聽聽聽聽
Map->MapDrawBGT(screen);
聽聽聽聽聽聽聽
聽聽聽聽聽聽聽
SDL_Flip( screen );
聽
鍦ㄦ樉紺轟箣鍓嶆洿鏂板姩鐢伙紝鍦板浘鐨勭Щ鍔紝鏄劇ず鑳屾櫙錛屼嬌鐢ㄩ忔槑鑹叉樉紺哄湴鍥俱傛洿鏂板湴鍥俱?/span>
聽
聽聽聽
SDL_FreeSurface(screen);
聽聽聽
SDL_FreeSurface(image);聽聽
聽聽聽
//Quit SDL
聽聽聽
SDL_Quit();聽聽
聽
鏈鍚庨噴鏀懼茍閫鍑猴紝灝辮繖涔堢畝鍗曘?/span>