我想大多數初學 C++ 的人都有這樣一個疑惑,那就是學完這門編程語言以後接下來能作什麼。而且大多數初學者學習過程都應該是看着這麼一個黑框框。就像是這樣php
這麼一看學習 C++ 確實是挺無聊的一件事,實際上 C++ 能作的事情遠比咱們想象中的要多,它在遊戲、科學計算、網絡軟件、分佈式應用、操做系統、設備驅動程序和嵌入式系統等領域都有應用。應用領域很是普遍,可是缺點也很明顯,開發效率低。c++
這裏我會寫一個系列文章,經過 SFML(Simple and Fast Multimedia Library)來介紹 C++ 在遊戲方面的一些應用,以及如何用它來實現一個簡單的遊戲,文章內容大多數翻譯自Maxime Barbier的**《SFML Blueprints》**,有興趣的朋友能夠搜一下這本書。編程
SFML 是多媒體庫,它爲PC的各個組件提供簡單的界面,用來簡化遊戲和多媒體應用程序的開發。 主要由五個模塊組成,分別是:系統,窗口,圖形,音頻和網絡。網絡
SFML 是跨平臺的,經過 SFML,你的應用程序能夠在最多見的操做系統上進行編譯和運行:Windows,Linux,macOS以及Android和iOS。框架
SFML 支持多種語言,具體能夠在官網查看支持的語言。編程語言
安裝過程在這裏就不詳細說了,官網有很詳細的過程,根據你的平臺選擇對應的教程安裝就行了。分佈式
當你把環境都配置好了之後,就能夠敲一個簡單的例子了。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所示,在一個窗口裏面繪製出了一個圓。雖然是一個很簡單的功能,可是咱們已經脫離了**黑框框!**經過後面的學習,咱們能作的事情會更多。學習
下一篇文章咱們將會搭建遊戲的基本框架,Game 類的建立。😃spa