マルチタッチ - Siv3D/Reference-JP GitHub Wiki

マルチタッチが使えるか調べる

マルチタッチは、タブレット PC やタッチパネルディスプレイで利用できます。

# include <Siv3D.hpp>

void Main()
{
	if (!Input::SupportsMultiTouch())
	{
		MessageBox::Show(L"マルチタッチに対応していません。");

		return;
	}

	while (System::Update())
	{

	}
}

マルチタッチの座標

# include <Siv3D.hpp>

void Main()
{
	if (!Input::SupportsMultiTouch())
	{
		MessageBox::Show(L"マルチタッチに対応していません。");

		return;
	}

	while (System::Update())
	{
		const auto touches = Input::GetTouches();

		for (const auto& touch : touches)
		{
			Circle(touch.pos, 40).draw(HSV(touch.id * 36));
		}
	}
}

タッチの ID

# include <Siv3D.hpp>

void Main()
{
	if (!Input::SupportsMultiTouch())
	{
		MessageBox::Show(L"マルチタッチに対応していません。");

		return;
	}

	Image image(640, 480, Palette::White);

	DynamicTexture texture(image);

	while (System::Update())
	{
		const auto touches = Input::GetTouches();

		if (!touches.empty())
		{
			for (const auto& touch : touches)
			{
				const Point pos = touch.clicked ? touch.pos : touch.previousPos.value();

				Line(pos, touch.pos).write(image, 8, HSV(touch.id * 36));
			}

			texture.fill(image);
		}

		texture.draw();
	}
}
⚠️ **GitHub.com Fallback** ⚠️