用C++和SFML寫遊戲-SFML介紹(1)

我想大多數初學 C++ 的人都有這樣一個疑惑,那就是學完這門編程語言以後接下來能作什麼。而且大多數初學者學習過程都應該是看着這麼一個黑框框。就像是這樣php

這麼一看學習 C++ 確實是挺無聊的一件事,實際上 C++ 能作的事情遠比咱們想象中的要多,它在遊戲、科學計算、網絡軟件、分佈式應用、操做系統、設備驅動程序和嵌入式系統等領域都有應用。應用領域很是普遍,可是缺點也很明顯,開發效率低。c++

這裏我會寫一個系列文章,經過 SFML(Simple and Fast Multimedia Library)來介紹 C++ 在遊戲方面的一些應用,以及如何用它來實現一個簡單的遊戲,文章內容大多數翻譯自Maxime Barbier的**《SFML Blueprints》**,有興趣的朋友能夠搜一下這本書。編程

1、SFML是什麼

SFML 是多媒體庫,它爲PC的各個組件提供簡單的界面,用來簡化遊戲和多媒體應用程序的開發。 主要由五個模塊組成,分別是:系統,窗口,圖形,音頻和網絡。網絡

SFML 是跨平臺的,經過 SFML,你的應用程序能夠在最多見的操做系統上進行編譯和運行:Windows,Linux,macOS以及Android和iOS。框架

SFML 支持多種語言,具體能夠在官網查看支持的語言。編程語言

2、安裝 SFML

安裝過程在這裏就不詳細說了,官網有很詳細的過程,根據你的平臺選擇對應的教程安裝就行了。分佈式

3、一個簡單的小例子

當你把環境都配置好了之後,就能夠敲一個簡單的例子了。ide

#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
int main(int argc, char const *argv[])
{
    sf::RenderWindow window(sf::VideoMode(400, 400), "Circle");
    window.setFramerateLimit(60);

    sf::CircleShape circle(150);
    circle.setFillColor(sf::Color::Red);
    circle.setPosition(10, 20);

    while (window.isOpen()) {
        sf::Event event;
        while (window.pollEvent(event)) {
            if (event.type == sf::Event::Closed
                or (event.type == sf::Event::KeyPressed 
                    and event.key.code == sf::Keyboard::Escape) ) {
                window.close();
            }
            window.clear();
            window.draw(circle);
            window.display();
        }
    }
    return 0;
}
複製代碼

運行以後的效果如圖3.1所示,在一個窗口裏面繪製出了一個圓。雖然是一個很簡單的功能,可是咱們已經脫離了**黑框框!**經過後面的學習,咱們能作的事情會更多。學習

圖3.1

下一篇文章咱們將會搭建遊戲的基本框架,Game 類的建立。😃spa

相關文章
相關標籤/搜索