Skip to content

サンプル ​

すべてのコマンドはリポジトリのルートで実行します。初回実行前に npm ci、ソースコードの変更後に npm run build を実行してください。グラフィックスのサンプルには、利用可能なディスプレイサーバーと OpenGL コンテキストが必要です。

プロジェクトトップ · クイックスタート · 開発ガイド

ここから始める ​

sh
node examples/breakout.cjs
node examples/all-types.cjs --frames=120
node examples/render-texture.cjs --frames=120
node examples/network.cjs

ビルド済みの場合はスクリプトを直接実行してください。npm run demo:* は package.json に従って再ビルドします。グラフィックスの各入口が対応するフレーム数、フォントなどの引数は、それぞれのスクリプトを基準とします。

ブロック崩しで遊ぶ ​

ネイティブウィンドウで描画するブロック崩し

breakout.cjs は衝突判定、3 つのライフ、スコア、勝敗判定を備えたゲームです。左右キーまたは A/D で移動、Space で発射または再開、P で一時停止、Esc で終了します。操作中にフォーカスを失うと一時停止します。

npm run demo:breakout でビルドして起動できます。macOS/Linux では次のコマンドで同じゲーム画面を撮影できます。

sh
SFML_DEMO_SNAPSHOT=/tmp/sfml-breakout.png \
  node examples/breakout.cjs --autoplay --frames=900

最後のフレームの実際の描画結果を保存します。--autoplay はパドルを自動操作し、--frames は実行フレーム数を制限します。node examples/breakout.cjs --self-test はウィンドウを開かずにゲームロジックを検証します。

グラフィックスとウィンドウ ​

ファイルデモの内容npm コマンド
all-types.cjs値型、変換、図形、頂点、テキストを組み合わせたシーンdemo:types
sprites.cjs大量のスプライトの描画demo
image.cjsピクセルの編集、コピー、マスク、エンコードとデコードdemo:image
texture.cjs画像の読み込み、切り出し、部分アップロード、サンプリングdemo:texture
sprite.cjsスプライトのアニメーション、反転、色、境界demo:sprite
render-texture.cjsオフスクリーン合成、テクスチャビュー、描画スナップショットdemo:render-texture
drawable.cjs独自の複合オブジェクト、親子の変換、ブレンド、ステンシルdemo:drawable
vertex-array.cjs動的なタイルと連続した頂点demo:vertices
text.cjsテキストのレイアウトと頂点アニメーションdemo:text
window.cjsウィンドウイベント、カーソル、入力の診断demo:window
system-window.cjsSystem と Window のインターフェースdemo:system-window

継続的に描画するサンプルの多くは Esc で終了できます。--frames=120 を渡すと実行時間を制限できます。text サンプルでは --font=/path/to/font.ttf と --text=中文示例 でフォントとテキストを指定します。中国語には対応するグリフが必要です。

一部の診断用サンプルは、リポジトリ内部のプレビューや検証用ヘルパー関数を使います。アプリケーションの入門には、公開インターフェースだけを使うクイックスタートのウィンドウコードを利用してください。

オーディオとネットワーク ​

ファイルデモの内容
audio.cjsSound、Music、Worker によるデータ供給、エフェクト、録音再生
audio-worker.cjsオーディオサンプルが読み込む tone と filter の Worker ファクトリー
network.cjsローカルの TCP、Packet、UDP、Selector
sleep-err.cjs非同期の待機と SFML のログ出力
vector-scalars.cjs各種数値スカラー型でのベクトル演算

audio サンプルでは、1~4 でモードを切り替え、Space で再生/一時停止、S で停止、E でエフェクトを切り替え、R/T で録音を開始/終了します。矢印キーでパンと音量を調整します。録音はシステムのマイクを使い、通常起動ではキー入力を待ちます。

スクリーンショット ​

SFML_DEMO_SNAPSHOT に対応するグラフィックスのサンプルは、実行画面を保存できます。macOS/Linux では、たとえば次のように実行します。

sh
SFML_DEMO_SNAPSHOT=/tmp/sfml-render-texture.png \
  node examples/render-texture.cjs --frames=2

PowerShell の場合:

powershell
$env:SFML_DEMO_SNAPSHOT = "$env:TEMP/sfml-render-texture.png"
node examples/render-texture.cjs --frames=2
Remove-Item Env:SFML_DEMO_SNAPSHOT

総合サンプルの all-types は PPM で保存し、他のサンプルの保存形式はそれぞれの入口の実装に従います。静止画のスクリーンショットが示すのは、指定したシーンの描画結果だけです。スループット、音声出力、入力デバイスのテスト結果を示すものではありません。

旧バージョンのサンプル ​

ported/ には元の 16 本のスクリプトを保持しています。14 本は現在の API で動作し、2 本は旧版の非同期描画インターフェースに依存しており、未対応を報告します。

sh
npm run test:ported

all-types-scene.cjs と bitmap-label.cjs はデモの補助ファイルであり、独立したアプリケーションの入口ではありません。

Icons made by Lorc, Delapouite & Skoll · game-icons.net · CC BY 3.0