天天看點

SFML學習筆記(1)——初識SFML一、SFML二、基本架構三、初識螢幕坐标和遊戲對象内部坐标

一、SFML

SFML 是多媒體庫,它為PC的各個元件提供簡單的界面,用來簡化遊戲和多媒體應用程式的開發。

SFML分成以下五個子產品,這些子產品互相獨立,也可以根據需要組合在一起:

System(系統):一個核心子產品,它定義了最基本的資料結構,提供對線程、時鐘、使用者資料流和其他底層内容的通路方法。
Window(視窗):該子產品提供了一種建立和管理視窗、收集使用者輸入和事件以及将SFML和OpenGL組合使用的方法。
Graphics(圖形):在充分利用視窗子產品之後,所有需要圖形化處理的内容都落在圖形子產品上。它處理所有和二維渲染相關的内容。
Audio(音頻):該子產品處理任何與播放音樂,聲音,音頻流,或錄音音頻相關的内容。
Network(網絡):最後一個但絕對不是最無趣的子產品,它提供了通過使用一些網絡協定向其它計算機發送資料的方法。
           

        視窗、圖形、音頻和網絡庫都依賴于系統庫,任何SFML應用程式都必須連結到系統庫才能編譯和運作。圖形庫也依賴于視窗庫,是以如果應用程式要進行繪圖,則必須将這三個庫連結到一起。音頻和網絡庫隻依賴于系統庫。

二、基本架構

       1、 建立并初始化遊戲視窗 window;

       2、 使用 while(window.isOpen())建立主循環結構,循環條件是判斷遊戲視窗是否是打開的;

       3、 主循環中,使用 while(window.pollEvent(event))輪詢并處理遊戲視窗輸入事件,根據輸入事件

處理結果調整更新遊戲對象;

       4、 主循環中,使用 window.clear(sf::Color::Black)清除遊戲視窗緩存内容;

       5、 主循環中,使用 window.draw()将更新後的遊戲對象放入到遊戲視窗緩存中;

       6、 主循環中,使用 window.display()将遊戲視窗緩存内容繪制到螢幕上。

三、初識螢幕坐标和遊戲對象内部坐标

       一個可視化的2D遊戲對象,比如一個角色,在SFML中被稱為Sprite(精靈)。Sprite通常會使用一個或多個Texture(紋理)作為它的皮膚貼圖。在SFML中,Texture對應于具體的圖像。

       所有的Sprite都有自己的原點。如果我們将一個Sprite(精靈)繪制到螢幕上的一個特定位置,實質上就是将Sprite的原點(0,0)定位到這個位置。

SFML學習筆記(1)——初識SFML一、SFML二、基本架構三、初識螢幕坐标和遊戲對象内部坐标

圖中,在(1920, 1080)的螢幕中,小人兒(sprite)的中心坐标為(960, 540)。

繼續閱讀