SDL程式設計入門(31)滾動背景

2021-10-13 21:31:06 字數 1510 閱讀 9315

通常在遊戲中,你可能想要乙個無限或迴圈的背景。使用滾動背景,你可以迴圈乙個永遠持續下去的背景。

比如說,如果我們想在乙個無限的背景上圍繞乙個點移動:

我們要做的就是將背景的兩次迭代彼此相鄰渲染,並將它們每幀移動一點。 當背景完全移開時,你可以重新設定運動:

在本教程中,我們將使用僅保留在螢幕上的純色圓點。

//螢幕上將要移動的點

dot dot;

//背景滾動偏移

int scrollingoffset =

0;

在進入主迴圈之前,我們宣告乙個dot物件和滾動偏移。

//move the dot

dot.

move()

;//滾動背景

--scrollingoffset;

if( scrollingoffset <

-gbgtexture.

getwidth()

)

在這裡,我們要更新點並更新滾動背景。

更新滾動背景的位置只是遞減x的位置,如果x的位置小於背景的寬度,說明背景已經完全離屏,需要重新設定位置。

//clear screen

sdl_setrenderdrawcolor

( grenderer,

0xff

,0xff

,0xff

,0xff);

sdl_renderclear

( grenderer )

;//render background

gbgtexture.

render

( scrollingoffset,0)

; gbgtexture.

render

( scrollingoffset + gbgtexture.

getwidth()

,0);

//render objects

dot.

render()

;//update screen

sdl_renderpresent

( grenderer )

;

在這裡,我們渲染背景和點。 首先,我們通過渲染紋理的兩次迭代來渲染滾動背景,然後在其上渲染點。 這樣我們就可以得到乙個平滑滾動的無限背景的效果。

SDL程式設計入門(20)觸力反饋

我們知道了如何用sdl使用操縱桿,現在我們可以使用新的觸覺api來使控制器震動。帶有觸力反饋的遊戲控制器1處理程式 sdl joystick ggamecontroller null sdl haptic gcontrollerhaptic null 觸覺裝置是一種能提供某種物理反饋的東西。在本例中...

SDL程式設計入門(12)色彩調製

顏色調製可以讓你改變渲染紋理的顏色。在這裡,我們將使用各種顏色來調製乙個紋理。class ltexture 我們要在紋理包裝器類中新增乙個函式,允許設定紋理調製。它所要做的就是接收乙個紅 綠 藍三色元件。void ltexture setcolor uint8 red,uint8 green,uin...

SDL程式設計入門(14)動畫精靈和VSync

動畫簡而言之就是展示乙個又乙個的影象來製造運動的假象。在這裡我們將展示不同的精靈來製作乙個簡筆畫的動畫。假設我們有以下動畫幀 這清楚地表明我不是動畫師 而且每隔十分之一秒就顯示乙個,我們會得到這個動畫 由於sdl 2中的影象是典型的sdl textures,所以在sdl中的動畫是乙個接乙個地顯示紋理...