OpenSiv3D for Web

▷ Click/Tap to Play

OpenSiv3D for Web は WebGL アプリケーションを C/C++ で開発するためのライブラリです。

はじめる

OpenSiv3D for Web をダウンロード または ブラウザ上で OpenSiv3D for Web を試す

# include <Siv3D.hpp> // OpenSiv3D v0.4.3
# include <emscripten.h>

void RunMainLoop(void* arg)
{
  static_cast<const std::function<void()>*>(arg)->operator()();
}

void SetMainLoop(std::function<void()> mainLoop)
{
  emscripten_set_main_loop_arg(RunMainLoop, reinterpret_cast<void*>(&mainLoop), 0, 1);
}

void Main()
{
  Scene::SetBackground(ColorF(0.8, 0.9, 1.0));
  const Font font(60);
  const Texture cat(Emoji(U"🐈"));
  
  Vec2 catPos(640, 450);

  SetMainLoop([&]()
  {
    System::Update();

    font(U"Hello, Siv3D!🐣").drawAt(Scene::Center(), Palette::Black);
    cat.resized(100 + Periodic::Sine0_1(1s) * 20).drawAt(catPos);
    Circle(Cursor::Pos(), 40).draw(ColorF(1, 0, 0, 0.5));
    
    if (KeyA.down())
    {
      Print << U"Hello!";
    }
    
    if (SimpleGUI::Button(U"Move the cat", Vec2(600, 20)))
    {
      catPos = RandomVec2(Scene::Rect());
    }
  });
}

ギャラリー

基本のサンプル

いつものやつ

Play!

ピンボール

超エキサイティン!

Play!

ピアノ

オンラインピアノキーボード

Play!

ウェブカメラ

OpenSiv3D for Web では Web カメラも扱えます

Play!

いのちの輝き

大阪万博のあれ

Play!

KDTree

(v0.6) KDTree

Play!

ブロック崩し

シンプルなブロック崩し

Play!

絵文字タワー

バトルはできません

Play!

ライフゲーム

一時期流行ったとか

Play!

数つなぎ

かめは14コンボが限界

Play!

縦スクロールシューティング

縦スクロールシューティング

Play!

SketchToPolygon

スケッチをポリゴンで表現

Play!

ホモグラフィ変換

(v0.6) グリッドに画像をなめらかに補完

Play!

GrabCut

(v0.6) 前景と背景の分離

Play!

最新版ビルドの状態

  • 安定版ブランチ (v0.4.3): C/C++ CI for Web
  • 開発版ブランチ (v0.4.3): C/C++ CI for Web