Skip to content

Simple and Fast Multimedia Library

SFML for Node.js

SFML의 Node.js 바인딩입니다. JavaScript나 TypeScript로 네이티브 창을 만들고, 2D 그래픽을 그리고, 오디오를 재생하세요.

npm install sfml.js

macOS / Windows / Linux

SFML 3.1 기반 · SFML 소개

SFML의 다섯 모듈

창을 만들고, 스프라이트를 그리고, 음악을 재생하고, 데이터를 주고받으세요. SFML은 데스크톱 앱에 필요한 기본 기능을 제공합니다.

모듈 가이드

첫 SFML 창 만들기.

RenderWindow를 만들고 CircleShape를 그린 다음 프레임을 표시합니다. SFML은 창과 렌더링을, JavaScript는 루프를 담당합니다. TypeScript 타입 선언도 포함되어 있습니다.

빠른 시작 따라 하기

데스크톱 그래픽 환경에서 실행하세요. Esc로 창을 닫습니다. setImmediate는 프레임 사이에 Node.js I/O를 처리할 기회를 줍니다.

JS hello.cjsnode hello.cjs
const sf = require('sfml.js');
const win = new sf.RenderWindow(
  new sf.VideoMode(new sf.Vector2u(800, 600)),
  'Hello, sfml.js',
);
const circle = new sf.CircleShape({ radius: 80 });
circle.setPosition(new sf.Vector2f(320, 220));
circle.setFillColor(new sf.Color(108, 190, 82));
win.setFramerateLimit(60);

function frame() {
  win.handleEvents({
    Closed: () => win.close(),
    KeyPressed: e => {
      if (e.code === sf.Keyboard.Key.Escape) win.close();
    },
  });
  if (!win.isOpen()) return;
  win.clear(new sf.Color(24, 28, 32));
  win.draw(circle);
  win.display();
  setImmediate(frame);
}
frame();

SFML 실행 예제

그래픽, 텍스트, 셰이더, 오디오 녹음과 네트워크 통신 예제를 실행해 보세요.

예제 살펴보기
초록색과 주황색 벽돌, 공, 패들이 있는 sfml.js 벽돌 깨기 게임 실행 화면.
breakout.cjsSFML 실제 실행 화면

벽돌 깨기

SFML 도형으로 그린 벽돌 깨기입니다. 키보드 입력과 게임 루프는 Node.js에서 처리합니다.

소스 보기
컬러 도형과 텍스처 스냅샷을 보여 주는 SFML 렌더 텍스처 예제.
render-texture.cjsSFML 실제 실행 화면

텍스처에 그리기.

SFML의 RenderTexture에 오프스크린 렌더링을 하고 Sprite로 결과를 표시합니다. 이 실행 예제에서 텍스처 합성과 그리기 상태 스냅샷을 확인할 수 있습니다.

소스 보기

SFML 개념을 JavaScript로.

SFML C++ 문서와 바인딩의 타입 레퍼런스를 함께 참고하세요. Promise, 공유 타입 배열, 리소스 수명과 Node.js의 일괄 렌더링은 이 사이트의 가이드에서 설명합니다.

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