SDL入門教程(九) 3 文字反饋「按鍵」資訊

2021-04-16 06:17:16 字數 1597 閱讀 4461

3.1:一些小的修改

我覺得寫c++的程式,一是看起來確實比較c++一點,二是相對於c的「精煉」,c++要的是「健壯」。所以,其實我不太滿意用c風格字串作為screensu***ce的成員資料,所以做了修改。這也是為了在程式中構建screensu***ce物件的時候可以使用string。

class

screensu***ce

; 相應的,我們修改了2個建構函式。

screensu***ce::screensu***ce():

width(

640), height(

480), bpp(

32), flags(

0), windowname(

"null")

screensu***ce::screensu***ce(

intw, 

inth, 

const

std::

string

&window_name, 

intb, uint32 f):

width(w), height(h), bpp(b), flags(f)

else

windowname ="

null";

} 第二個地方,我修改了textsu***ce建構函式的引數順序,並且將預設的字型改為windows都自帶的「新羅馬時代」字型times.ttf。我將字型引數放在最後,將字型大小引數提前了,這樣更符合習慣上的使用規律。

class

textsu***ce: 

public

displaysu***ce;

(在displaysu***ce裡相應的建構函式也做類似的修改,略)

3.2:回顧sdl事件輪詢

sdl_pollevent()的作用,是事件一旦被觸發,就會響應一次,注意它的響應並不是連續不斷的。比如你按下某個鍵,即觸發了一次事件。即使你按著不鬆開,也僅僅是觸發了一次,所以sdl_pollevent()也只響應一次。

下面的程式,演示鍵盤事件中,方向鍵被按下後的反饋資訊。

3.3:演示程式

//uvi soft (2008)

//long fei (lf426), e-mail: [email protected]

#include

"su***ceclass.h

"int

game(

intargc, 

char

*argv);

intmain(

intargc ,

char

*argv)

catch

( const

errorinfo

&info ) 

return

mainrtn;

}int

game(

intargc ,

char

*argv)

screen.flip();}if

( gameevent.type 

==sdl_quit )

if( gameevent.type 

==sdl_keyup )}}

}return0;

}

SDL入門教程(九) 5 文字反饋滑鼠位置座標資訊

注意事項 1 times.ttf檔案請到c windows fonts下尋找並拷貝到資源目錄下。2 如果您使用vc2008,請用release編譯。原因是,似乎涉及到vector的操作,runtime library在debug的時候必須用multi theaded debug dll mdd 而r...

SDL入門教程(十) 5 SDL完美顯示中文

注意 請使用支援中文的ttf字型檔。5.1 構建可以正確顯示中文的sdl ttf函式 世界終於又充滿了光明!任何事情都是有答案的,不知道僅僅是因為我們還沒有找到。解決了以上一系列問題,我們終於可以不依賴mfc,完全使用自由開源的資源,讓sdl顯示中文了!我們通過ttf renderunicode 來...

SDL入門教程(十三) 2 初識多執行緒

intmain intargc char argv if gameevent.type sdl keydown screen.flip sdl killthread thread1 sdl killthread thread2 return0 void sdl delay uint32 ms 解決r...