アプリ開発コース 4
◆Joy-Con を使った演奏アプリ
Step 1. Joy-Con の接続を確認
Joy-Con の黒いボタンを押して LED を点滅させる
PC 側と Bluetooth 接続する
十数秒すると PC がデバイスを認識
code:cpp
# include <Siv3D.hpp>
# include <HamFramework/JoyConSymbol.hpp> // Joy-Con の描画用
void Main()
{
Graphics::SetBackground(ColorF(0.8, 0.9, 1.0));
while (System::Update())
{
// Joy-Con (L) が接続されていたら
if (const auto joyL = JoyCon::JoyConL(0))
{
JoyConSymbol::DrawLAt(joyL, Vec2(320 - 150, 240), 300.0, 5_deg);
}
// Joy-Con (R) が接続されていたら
if (const auto joyR = JoyCon::JoyConR(0))
{
JoyConSymbol::DrawRAt(joyR, Vec2(320 + 150, 240), 300.0, -5_deg);
}
}
}
Step 2. ボタンの入力を取得
code:cpp
# include <Siv3D.hpp>
# include <HamFramework/JoyConSymbol.hpp>
void Main()
{
Graphics::SetBackground(ColorF(0.8, 0.9, 1.0));
while (System::Update())
{
if (const auto joyL = JoyCon::JoyConL(0))
{
JoyConSymbol::DrawLAt(joyL, Vec2(320 - 150, 240), 300.0, 5_deg);
// button0 ( (L) の場合 Left) が押されたら
if (joyL.button0.down())
{
Print << U"button0";
}
}
if (const auto joyR = JoyCon::JoyConR(0))
{
JoyConSymbol::DrawRAt(joyR, Vec2(320 + 150, 240), 300.0, -5_deg);
}
}
}
Step 3. ドレミファソラシドの用意
code:cpp
# include <Siv3D.hpp>
# include <HamFramework/JoyConSymbol.hpp>
void Main()
{
Graphics::SetBackground(ColorF(0.8, 0.9, 1.0));
const Array<Audio> sounds =
{
Audio(Wave(GMInstrument::Piano1, PianoKey::C4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::D4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::E4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::F4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::G4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::A4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::B4, 0.4s)),
Audio(Wave(GMInstrument::Piano1, PianoKey::C5, 0.4s)),
};
while (System::Update())
{
if (const auto joyL = JoyCon::JoyConL(0))
{
JoyConSymbol::DrawLAt(joyL, Vec2(320 - 150, 240), 300.0, 5_deg);
if (joyL.button0.down())
{
}
if (joyL.button1.down())
{
}
if (joyL.button2.down())
{
}
if (joyL.button3.down())
{
}
}
if (const auto joyR = JoyCon::JoyConR(0))
{
JoyConSymbol::DrawRAt(joyR, Vec2(320 + 150, 240), 300.0, -5_deg);
if (joyR.button3.down())
{
}
if (joyR.button2.down())
{
}
if (joyR.button1.down())
{
}
if (joyR.button0.down())
{
}
}
}
}
Step 4. 応用
楽器を変えてみる
ほかのボタンも使ってみる