-
Notifications
You must be signed in to change notification settings - Fork 1
名前入力画面
Reputeless edited this page Dec 6, 2016
·
3 revisions
# include <Siv3D.hpp>
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Button", 15, Typeface::Medium);
const Rect rect(23, 200, 44, 44);
bool pressed = false;
while (System::Update())
{
if (rect.leftClicked)
{
pressed = true;
}
else if (pressed && !rect.mouseOver)
{
pressed = false;
}
else if (pressed && rect.leftReleased)
{
pressed = false;
}
const Color color(pressed ? 220 : rect.mouseOver ? 240 : 255);
RoundRect(rect, 4).draw(color);
FontAsset(L"Button")(L"A").drawAt(rect.center, Palette::Black);
}
}
# include <Siv3D.hpp>
class CharButton
{
private:
String m_text;
Rect m_rect;
bool m_pressed = false;
public:
CharButton() = default;
CharButton(const String& text, const Rect& rect)
: m_text(text)
, m_rect(rect) {}
bool update()
{
if (m_rect.leftClicked)
{
m_pressed = true;
}
else if (m_pressed && !m_rect.mouseOver)
{
m_pressed = false;
}
else if (m_pressed && m_rect.leftReleased)
{
m_pressed = false;
return true;
}
return false;
}
void draw() const
{
const Color color(m_pressed ? 220 : m_rect.mouseOver ? 240 : 255);
RoundRect(m_rect, 4).draw(color);
FontAsset(L"Button")(m_text).drawAt(m_rect.center, Palette::Black);
}
};
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Button", 15, Typeface::Medium);
CharButton button(L"A", Rect(23, 200, 44, 44));
while (System::Update())
{
button.update();
button.draw();
}
}
# include <Siv3D.hpp>
class CharButton
{
private:
String m_text;
Rect m_rect;
bool m_pressed = false;
public:
CharButton() = default;
CharButton(const String& text, const Rect& rect)
: m_text(text)
, m_rect(rect) {}
bool update()
{
if (m_rect.leftClicked)
{
m_pressed = true;
}
else if (m_pressed && !m_rect.mouseOver)
{
m_pressed = false;
}
else if (m_pressed && m_rect.leftReleased)
{
m_pressed = false;
return true;
}
return false;
}
void draw() const
{
const Color color(m_pressed ? 220 : m_rect.mouseOver ? 240 : 255);
RoundRect(m_rect, 4).draw(color);
FontAsset(L"Button")(m_text).drawAt(m_rect.center, Palette::Black);
}
const String& getText() const
{
return m_text;
}
};
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Name", 30);
FontAsset::Register(L"Button", 15, Typeface::Medium);
String name;
const size_t maxNameLength = 18;
CharButton button(L"A", Rect(23, 200, 44, 44));
while (System::Update())
{
if (button.update())
{
if (name.length < maxNameLength)
{
name.append(button.getText());
}
}
button.draw();
RoundRect(23, 80, 594, 80, 8).draw(Color(240, 250, 255));
FontAsset(L"Name")(name).draw(40, 90, Color(20));
}
}
# include <Siv3D.hpp>
class CharButton
{
private:
String m_text;
Rect m_rect;
bool m_pressed = false;
public:
CharButton() = default;
CharButton(const String& text, const Rect& rect)
: m_text(text)
, m_rect(rect) {}
bool update()
{
if (m_rect.leftClicked)
{
m_pressed = true;
}
else if (m_pressed && !m_rect.mouseOver)
{
m_pressed = false;
}
else if (m_pressed && m_rect.leftReleased)
{
m_pressed = false;
return true;
}
return false;
}
void draw() const
{
const Color color(m_pressed ? 220 : m_rect.mouseOver ? 240 : 255);
RoundRect(m_rect, 4).draw(color);
FontAsset(L"Button")(m_text).drawAt(m_rect.center, Palette::Black);
}
const String& getText() const
{
return m_text;
}
};
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Name", 30);
FontAsset::Register(L"Button", 15, Typeface::Medium);
String name;
const size_t maxNameLength = 18;
const String chars = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?'-_#";
Array<CharButton> buttons;
for (auto i : step(chars.length))
{
const int32 x = (i % 12) * 50 + 23;
const int32 y = (i / 12) * 50 + 200;
buttons.emplace_back(String(1, chars[i]), Rect(x, y, 44, 44));
}
while (System::Update())
{
for (auto& button : buttons)
{
if (button.update())
{
if (name.length < maxNameLength)
{
name.append(button.getText());
}
break;
}
}
for (const auto& button : buttons)
{
button.draw();
}
RoundRect(23, 80, 594, 80, 8).draw(Color(240, 250, 255));
FontAsset(L"Name")(name).draw(40, 90, Color(20));
}
}
# include <Siv3D.hpp>
class CharButton
{
private:
String m_text;
Rect m_rect;
bool m_pressed = false;
public:
CharButton() = default;
CharButton(const String& text, const Rect& rect)
: m_text(text)
, m_rect(rect) {}
bool update()
{
if (m_rect.leftClicked)
{
m_pressed = true;
}
else if (m_pressed && !m_rect.mouseOver)
{
m_pressed = false;
}
else if (m_pressed && m_rect.leftReleased)
{
m_pressed = false;
return true;
}
return false;
}
void draw() const
{
const Color color(m_pressed ? 220 : m_rect.mouseOver ? 240 : 255);
RoundRect(m_rect, 4).draw(color);
FontAsset(L"Button")(m_text).drawAt(m_rect.center, Palette::Black);
}
const String& getText() const
{
return m_text;
}
};
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Name", 30);
FontAsset::Register(L"Button", 15, Typeface::Medium);
String name;
const size_t maxNameLength = 18;
const String chars = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?'-_#";
Array<CharButton> buttons;
for (auto i : step(chars.length))
{
const int32 x = (i % 12) * 50 + 23;
const int32 y = (i / 12) * 50 + 200;
buttons.emplace_back(String(1, chars[i]), Rect(x, y, 44, 44));
}
buttons.emplace_back(L" ", Rect(6 * 50 + 23, 3 * 50 + 200, 144, 44));
buttons.emplace_back(L"[BS]", Rect(9 * 50 + 23, 3 * 50 + 200, 94, 44));
while (System::Update())
{
for (auto& button : buttons)
{
if (button.update())
{
if (button.getText() == L"[BS]")
{
if (!name.isEmpty)
{
name.pop_back();
}
}
else if (name.length < maxNameLength)
{
name.append(button.getText());
}
break;
}
}
for (const auto& button : buttons)
{
button.draw();
}
RoundRect(23, 80, 594, 80, 8).draw(Color(240, 250, 255));
FontAsset(L"Name")(name).draw(40, 90, Color(20));
}
}
# include <Siv3D.hpp>
class CharButton
{
private:
String m_text;
Rect m_rect;
bool m_pressed = false;
public:
CharButton() = default;
CharButton(const String& text, const Rect& rect)
: m_text(text)
, m_rect(rect) {}
bool update()
{
if (m_rect.leftClicked)
{
m_pressed = true;
}
else if (m_pressed && !m_rect.mouseOver)
{
m_pressed = false;
}
else if (m_pressed && m_rect.leftReleased)
{
m_pressed = false;
return true;
}
return false;
}
void draw() const
{
const Color color(m_pressed ? 220 : m_rect.mouseOver ? 240 : 255);
RoundRect(m_rect, 4).draw(color);
FontAsset(L"Button")(m_text).drawAt(m_rect.center, Palette::Black);
}
const String& getText() const
{
return m_text;
}
const Rect& getRect() const
{
return m_rect;
}
};
void Main()
{
Graphics::SetBackground(Palette::Skyblue);
FontAsset::Register(L"Name", 30);
FontAsset::Register(L"Button", 15, Typeface::Medium);
String name;
const size_t maxNameLength = 18;
const String chars = L"ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!?'-_#";
Array<CharButton> buttons;
for (auto i : step(chars.length))
{
const int32 x = (i % 12) * 50 + 23;
const int32 y = (i / 12) * 50 + 200;
buttons.emplace_back(String(1, chars[i]), Rect(x, y, 44, 44));
}
buttons.emplace_back(L" ", Rect(6 * 50 + 23, 3 * 50 + 200, 144, 44));
buttons.emplace_back(L"[BS]", Rect(9 * 50 + 23, 3 * 50 + 200, 94, 44));
while (System::Update())
{
for (auto& button : buttons)
{
if (button.update())
{
if (button.getText() == L"[BS]")
{
if (!name.isEmpty)
{
name.pop_back();
}
}
else if (name.length < maxNameLength)
{
name.append(button.getText());
}
break;
}
}
for (const auto& button : buttons)
{
button.draw();
}
RoundRect(23, 80, 594, 80, 8).draw(Color(240, 250, 255));
FontAsset(L"Name")(name).draw(40, 90, Color(20));
bool handCursor = false;
for (const auto& button : buttons)
{
if (button.getRect().mouseOver)
{
handCursor = true;
break;
}
}
Cursor::SetStyle(handCursor ? CursorStyle::Hand : CursorStyle::Default);
}
}
- Siv3D の基本
- 図形を描く
- テクスチャを描く
- テキストを描く
- 文字列と数値の変換
- キーボード入力
- マウス入力
- サウンドの再生
- MIDI の再生
- ウィンドウと背景
- 図形のあたり判定
- 乱数
- ダイアログ
- ドラッグ & ドロップ
- アプリの状態
- テキストファイル
- INI, CSV, JSON
- バイナリファイル
- GUI
- アセット管理
- 画像編集
- Web カメラ
- マイク入力
- 経過時間の測定
- HSV カラー
- ファイルダウンロード
- 3D 描画
- 2D のレンダーステート
- 3D のレンダーステート
- パーティクル
- スクリーンショット
- アプリケーションの公開
- さらに学ぶには
- アプリランチャーを作ろう
- 音楽プレイヤーを作ろう
- 横スクロールゲームを作ろう
- ドット絵エディタを作ろう
- シーン遷移をサポートする SceneManager の使い方
- Siv3D ミニサンプル集
- タスクシステムを使う
- スケッチ
- 画像ビューアー
- オーディオスペクトラム
- マイク入力スペクトラム
- 文字色の反転
- 天気予報
- ドットお絵かき
- 15パズル
- ブロックくずし
- 時計
- 音楽プレイヤー
- ピアノ
- ライフゲーム
- シーン管理
- 地球
- 3Dシーン
- 3D交差判定
- Wooden Mirror
- シューティングゲーム
- Image to Polygon
- Sketch to Polygon
- 軌跡
- Plot3D
- テンポとピッチの変更
- 長方形の影
- Twitterクライアント
- Polygon to Mesh
- 3Dテキスト
- アプリ終了の確認
- 地形の生成
- アーカイブファイル
- GUIのアニメーション
- Aero Glassエフェクト
- Glitch
- リンクテキスト
- 付箋
- シーン切り替え(シルエット)
- MIDIシーケンサー
- 数つなぎ
- 画面を揺らす
- 対称定規
- aobench
- MIDIビジュアライザー
- 電卓
- 手書き文字認識
- 顔検出
- 音声合成
- Image to PhysicsBody