sfml チュートリアル
sfmlを使い始める
サーチ…
備考
SFMLはマルチメディアです
SFMLは、ゲームやマルチメディアアプリケーションの開発を容易にするために、PCのさまざまなコンポーネントにシンプルなインターフェイスを提供します。システム、ウィンドウ、グラフィックス、オーディオ、ネットワークの5つのモジュールで構成されています。
チュートリアルやAPIのドキュメントで、その機能を詳しく解説します 。
SFMLはマルチプラットフォームです
SFMLを使用すると、アプリケーションは最も一般的なオペレーティングシステム(Windows、Linux、Mac OS X、まもなくAndroid&iOS)でコンパイルしてすぐに実行できます。
ご使用のOS用のプリコンパイル済みのSDKは、 ダウンロードページから入手できます 。
SFMLは多言語です
SFMLにはC言語と.Net言語の公式のバインディングがあります。また、活発なコミュニティのおかげで、Java、Ruby、Python、Goなどの他の多くの言語でも利用できます。
バインディングページでそれらの詳細を学んでください 。
バージョン
バージョン | 発売日 |
---|---|
1.0 | 2007-07-01 |
1.1 | 2007-09-18 |
1.2 | 2008年7月16日 |
1.3 | 2008年06月22日 |
1.4 | 2009-01-07 |
1.5 | 2009年06月04日 |
1.6 | 2010-04-06 |
2.0 | 2013-04-29 |
2.1 | 2013-07-27 |
2.2 | 2014年12月17日 |
2.3 | 2015-05-09 |
2.3.1 | 2015-07-11 |
2.3.2 | 2015-10-12 |
2.4.0 | 2016-08-10 |
2.4.1 | 2016-11-04 |
2.4.2 | 2017-02-08 |
インストールまたはセットアップ
- コンピュータに簡単にアクセスできる場所に保存してください。
- コードブロックを開く。
- [プロジェクト] - [ビルドオプション] - [リンカ設定]タブに移動します。
- [ 追加 ]ボタンをクリックし、SFMLのbinフォルダに移動してそこにあるすべてのファイルを選択します。
- 次に、Search Directoriesタブに移動し、SFMLの 'include'フォルダを追加します。
- 同じタブで、[Linker Settings]サブタブをクリックし、[bin]フォルダを追加します。
基本SFMLプログラム
すべてが正しく設定されていれば、次のスニペットでは「SFMLが動作します!」というウィンドウが表示されます。緑色の円で:
#include <SFML/Graphics.hpp>
int main()
{
sf::RenderWindow window(sf::VideoMode(200, 200), "SFML works!");
sf::CircleShape shape(100.f);
shape.setFillColor(sf::Color::Green);
while (window.isOpen())
{
sf::Event event;
while (window.pollEvent(event))
{
if (event.type == sf::Event::Closed)
window.close();
}
window.clear();
window.draw(shape);
window.display();
}
return 0;
}
インストール - Linux
SFMLのLinuxへのインストールには、さまざまなアプローチがあります。
- ディストリビューションのパッケージリポジトリから直接インストールする
- ソースコードを入手してビルドしてインストールする
- プリコンパイルされたSDKをダウンロードし、ファイルを手動でコピーする
オプション1が推奨されます。インストールするSFMLのバージョンが公式リポジトリで使用可能な場合は、パッケージマネージャを使用してインストールします。たとえば、Debianでは次のようになります:
sudo apt-get install libsfml-dev
オプション2はより多くの作業を必要とします:開発ヘッダーを含むSFMLの依存関係をすべて利用できるようにし、CMakeがインストールされていることを確認し、いくつかのコマンドを手動で実行する必要があります。これにより、システムに合ったパッケージが作成されます。このようにしたい場合は、 SFMLを自分で構築するための専用のチュートリアルがあります 。
最後に、SFMLが公式パッケージとして利用できない場合、オプション3は迅速なインストールに適しています。ダウンロードページからSDKをダウンロードし、解凍して個人用フォルダ内の別のパス(/ home / me / sfmlなど)または標準パス(/ usr / localなど)のいずれかの場所にファイルをコピーします。
既に古いバージョンのSFMLがインストールされている場合は、新しいバージョンと競合しないことを確認してください。
インストール - Windows
SFMLをWindowsにインストールする最も一般的な方法は、 公式のSDKをダウンロードすることです
その後、アーカイブを解凍し、選択した環境で使用することができます。
vcpkg
それはまだ開発中ですが、Visual Studio 2017以降を使用している場合は、Visual Studioと統合されたvcpkgを使用してSFMLをインストールすることもでき、インストールプロセスが大幅に簡素化されます。
vcpkg install sfml
Insallation - macOS
まず、SFML SDKをダウンロードする必要があります。 SFMLアプリケーションの開発を開始するには、次の項目をインストールする必要があります。
ヘッダーファイルとライブラリ
SFMLは、dylibまたはフレームワークとして利用できます。同じシステムに同時にインストールすることはできますが、1種類のバイナリしか必要ありません。フレームワークを使用することをお勧めします。
フレームワーク
- フレームワークの内容を/ Library / Frameworksにコピーします。
ジリブ
- libの内容を/ usr / local / libにコピーし、includeの内容を/ usr / local / includeにコピーします。
SFMLの依存関係
SFMLはMac OS Xのいくつかの外部ライブラリに依存しています。extlibの内容を/ Library / Frameworksにコピーします。
Xcodeテンプレート
Xcodeを使用する場合は、テンプレートをインストールすることを強くお勧めします。 SFMLディレクトリをテンプレートから/ Library / Developer / Xcode / Templatesにコピーします(フォルダがまだ存在しない場合は作成します)。
SFMLウィンドウのHello World
小さなプログラムを書いてウィンドウを開き、画面に "Hello World"と書いてみましょう。
#include <SFML\Graphics.hpp>
#include <cassert>
int main() {
sf::RenderWindow sfmlWin(sf::VideoMode(600, 360), "Hello World SFML Window");
sf::Font font;
//You need to pass the font file location
if (!font.loadFromFile(/*
Put the filename that identify the font file you want to load*/"myfont.ttf")) {
return -1;
}
sf::Text message("Hello, World !", font);
while (sfmlWin.isOpen()) {
sf::Event e;
while (sfmlWin.pollEvent(e)) {
switch (e.type) {
case sf::Event::EventType::Closed:
sfmlWin.close();
break;
}
}
sfmlWin.clear();
sfmlWin.draw(message);
sfmlWin.display();
}
return 0;
}
私たちが何をしたのかを説明しましょう。
最初に、 sf::Font
オブジェクトを作成しました。テキストを表示するために使用するフォントデータを格納するには、このオブジェクトが必要です。その後、メモリにフォントをロードするために使用されるloadFromFile
メソッドを呼び出しました。 SFMLはあなたのシステムフォントを知らないので、フォント名ではなくファイル名を指定する必要があります
その後、 sf::Text
オブジェクトを作成しました。我々は3つのパラメータのコンストラクタを呼び出す:
- 表示したい文字列
- オブジェクトが使用するフォント
- ここでは渡さなかったピクセル単位の文字サイズは、ilがデフォルト値に設定されます:30
sf::Text
オブジェクトは準備ができているので、前に作成したsfmlWin
レンダリングウィンドウオブジェクトのdrawメソッドを呼び出すだけで、メインのsfmlループに描画する必要があります