表示するサンプルコードの言語を指定できます。
キーボードの入力状態の取得
AltseedでKeyboardを扱うには、Engineクラスが持つKeyboardプロパティを取得します。このKeyboardプロパティには現状のキーボードの入力状態が保存されているためキーを指定することによってその状態を取得することができます。
単一のキーが押されているか否かを取得
C++
#include <Altseed.h>
/**
@brief キーボードによる入力を取得するサンプル。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("Keyboard_Basic").c_str(), 640, 480, asd::EngineOption());
auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
auto keyStateText = std::make_shared<asd::TextObject2D>();
keyStateText->SetPosition(asd::Vector2DF(10, 10));
keyStateText->SetFont(font);
asd::Engine::AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// キーボードのZキーの入力状態を取得する。
auto zstate = asd::Engine::GetKeyboard()->GetKeyState(asd::Keys::Z);
if (zstate == asd::ButtonState::Free) // Zキーを離している状態。
{
keyStateText->SetText(asd::ToAString("Zキーを離しています。").c_str());
}
else if (zstate == asd::ButtonState::Hold) // Zキーを押している状態。
{
keyStateText->SetText(asd::ToAString("Zキーを押しています。").c_str());
}
// Altseedを更新する。
asd::Engine::Update();
}
//Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
/// <summary>
/// キーボードによる入力を取得するサンプル。
/// </summary>
public class Keyboard_Basic :ISample
{
public string Description
{
get { return "Zキーを押しているかどうかを調べ、結果を表示するサンプルです。"; }
}
public string Title
{
get { return "キーボード入力の基本"; }
}
public string ClassName
{
get { return "Keyboard_Basic"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_Basic", 640, 480, new asd.EngineOption());
var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
var keyStateText = new asd.TextObject2D();
keyStateText.Position = new asd.Vector2DF(10, 10);
keyStateText.Font = font;
asd.Engine.AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// キーボードのZキーの入力状態を取得する。
var zstate = asd.Engine.Keyboard.GetKeyState(asd.Keys.Z);
if(zstate == asd.ButtonState.Free) // Zキーを離している状態。
{
keyStateText.Text = "Zキーを離しています。";
}
else if(zstate == asd.ButtonState.Hold) // Zキーを押している状態。
{
keyStateText.Text = "Zキーを押しています。";
}
// Altseedを更新する。
asd.Engine.Update();
}
//Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* キーボードによる入力を取得するサンプル。
*/
public class Keyboard_Basic
{
public java.lang.String getDescription() {
return "Zキーを押しているかどうかを調べ、結果を表示するサンプルです。";
}
public java.lang.String getTitle() {
return "キーボード入力の基本";
}
public java.lang.String getClassName() {
return "Keyboard_Basic";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_Basic", 640, 480, new asd.EngineOption());
asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
asd.TextObject2D keyStateText = new asd.TextObject2D();
keyStateText.setPosition(new asd.Vector2DF(10, 10));
keyStateText.setFont(font);
asd.Engine.AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// キーボードのZキーの入力状態を取得する。
asd.ButtonState zstate = asd.Engine.getKeyboard().GetKeyState(asd.Keys.Z);
if((zstate == asd.ButtonState.Free))
{
keyStateText.setText("Zキーを離しています。");
}
else
{
if((zstate == asd.ButtonState.Hold))
{
keyStateText.setText("Zキーを押しています。");
}
}
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
単一のキーの詳しい入力状態を取得
C++
#include <Altseed.h>
/**
@brief キーボードの一つのキーの入力状態を取得するサンプル。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("Keyboard_SingularKey").c_str(), 640, 480, asd::EngineOption());
auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
auto keyStateText = std::make_shared<asd::TextObject2D>();
keyStateText->SetPosition(asd::Vector2DF(10, 10));
keyStateText->SetFont(font);
asd::Engine::AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
// キーボードのZキーの入力状態を取得する。
auto zstate = asd::Engine::GetKeyboard()->GetKeyState(asd::Keys::Z);
if (zstate == asd::ButtonState::Free) // 前フレームと本フレームで非押下
{
keyStateText->SetText(asd::ToAString("Zキーを離しています。").c_str());
}
else if (zstate == asd::ButtonState::Hold) // 前フレームと本フレームで押下
{
keyStateText->SetText(asd::ToAString("Zキーを押しています。").c_str());
}
else if (zstate == asd::ButtonState::Release) // 前フレームで押下、本フレームで非押下
{
keyStateText->SetText(asd::ToAString("Zキーを離しました!").c_str());
}
else if (zstate == asd::ButtonState::Push) // 前フレームで非押下、本フレームで押下
{
keyStateText->SetText(asd::ToAString("Zキーを押しました!").c_str());
}
// Altseedを更新する。
asd::Engine::Update();
}
//Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
/// <summary>
/// キーボードの一つのキーの入力状態を取得するサンプル。
/// </summary>
public class Keyboard_SingularKey
{
public string Description
{
get { return "キーボードのキー入力状態を詳しく調べ、状態を表示するサンプルです。"; }
}
public string Title
{
get { return "キーボードの入力状態"; }
}
public string ClassName
{
get { return "Keyboard_SingularKey"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_SingularKey", 640, 480, new asd.EngineOption());
var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
var keyStateText = new asd.TextObject2D();
keyStateText.Position = new asd.Vector2DF(10, 10);
keyStateText.Font = font;
asd.Engine.AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
// キーボードのZキーの入力状態を取得する。
var zstate = asd.Engine.Keyboard.GetKeyState(asd.Keys.Z);
if(zstate == asd.ButtonState.Free) // 前フレームと本フレームで非押下
{
keyStateText.Text = "Zキーを離しています。";
}
else if(zstate == asd.ButtonState.Hold) // 前フレームと本フレームで押下
{
keyStateText.Text = "Zキーを押しています。";
}
else if(zstate == asd.ButtonState.Release) // 前フレームで押下、本フレームで非押下
{
keyStateText.Text = "Zキーを離しました!";
}
else if(zstate == asd.ButtonState.Push) // 前フレームで非押下、本フレームで押下
{
keyStateText.Text = "Zキーを押しました!";
}
// Altseedを更新する。
asd.Engine.Update();
}
//Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* キーボードの一つのキーの入力状態を取得するサンプル。
*/
public class Keyboard_SingularKey
{
public java.lang.String getDescription() {
return "キーボードのキー入力状態を詳しく調べ、状態を表示するサンプルです。";
}
public java.lang.String getTitle() {
return "キーボードの入力状態";
}
public java.lang.String getClassName() {
return "Keyboard_SingularKey";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_SingularKey", 640, 480, new asd.EngineOption());
asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
asd.TextObject2D keyStateText = new asd.TextObject2D();
keyStateText.setPosition(new asd.Vector2DF(10, 10));
keyStateText.setFont(font);
asd.Engine.AddObject2D(keyStateText);
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
// キーボードのZキーの入力状態を取得する。
asd.ButtonState zstate = asd.Engine.getKeyboard().GetKeyState(asd.Keys.Z);
if((zstate == asd.ButtonState.Free))
{
keyStateText.setText("Zキーを離しています。");
}
else
{
if((zstate == asd.ButtonState.Hold))
{
keyStateText.setText("Zキーを押しています。");
}
else
{
if((zstate == asd.ButtonState.Release))
{
keyStateText.setText("Zキーを離しました!");
}
else
{
if((zstate == asd.ButtonState.Push))
{
keyStateText.setText("Zキーを押しました!");
}
}
}
}
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
複数のキーの詳しい入力状態を取得
C++
#include <Altseed.h>
/**
@brief キーボードの複数のキーの入力状態を取得するサンプル。
*/
int main()
{
// Altseedを初期化する。
asd::Engine::Initialize(asd::ToAString("Keyboard_PuralKeys").c_str(), 640, 480, asd::EngineOption());
auto font = asd::Engine::GetGraphics()->CreateDynamicFont(asd::ToAString("").c_str(), 40, asd::Color(255, 255, 255, 255), 1, asd::Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
auto keyStateText = std::make_shared<asd::TextObject2D>();
keyStateText->SetPosition(asd::Vector2DF(10, 10));
keyStateText->SetFont(font);
asd::Engine::AddObject2D(keyStateText);
// 入力チェックするキー一覧。(Z, X, C, V, B)
std::vector<asd::Keys> keys;
keys.push_back(asd::Keys::Z);
keys.push_back(asd::Keys::X);
keys.push_back(asd::Keys::C);
keys.push_back(asd::Keys::V);
keys.push_back(asd::Keys::B);
//キーを文字列に変換するマップ。
std::vector<std::string> keyStrs;
keyStrs.push_back("Z");
keyStrs.push_back("X");
keyStrs.push_back("C");
keyStrs.push_back("V");
keyStrs.push_back("B");
// Altseedのウインドウが閉じられていないか確認する。
while (asd::Engine::DoEvents())
{
asd::astring displayStr = asd::ToAString("");
//すべてのキーに対して入力状態を確認してから表示する。
for (int i = 0; i < keys.size(); ++i)
{
std::string keystr = keyStrs[i];
// キーボードのZキーの入力状態を取得する。
asd::ButtonState zstate = asd::Engine::GetKeyboard()->GetKeyState(keys[i]);
if (zstate == asd::ButtonState::Free) // 前フレームと本フレームで非押下
{
displayStr += asd::ToAString((keystr + "キーを離しています。").c_str());
}
else if (zstate == asd::ButtonState::Hold) // 前フレームと本フレームで押下
{
displayStr += asd::ToAString((keystr + "キーを押しています。").c_str());
}
else if (zstate == asd::ButtonState::Release) // 前フレームで押下、本フレームで非押下
{
displayStr += asd::ToAString((keystr + "キーを離しました!").c_str());
}
else if (zstate == asd::ButtonState::Push) // 前フレームで非押下、本フレームで押下
{
displayStr += asd::ToAString((keystr + "キーを押しました!").c_str());
}
displayStr += asd::ToAString("\n");
}
// キー入力状態を示す文字列を更新する。
keyStateText->SetText(displayStr.c_str());
// Altseedを更新する。
asd::Engine::Update();
}
//Altseedの終了処理をする。
asd::Engine::Terminate();
return 0;
}
C#
using System.Collections.Generic;
/// <summary>
/// キーボードの複数のキーの入力状態を取得するサンプル。
/// </summary>
public class Keyboard_PuralKeys
{
public string Description
{
get { return "キーボードの複数のキーの入力状態を調べ、表示するサンプルです。"; }
}
public string Title
{
get { return "複数のキーの入力状態"; }
}
public string ClassName
{
get { return "Keyboard_PuralKeys"; }
}
[System.STAThread]
static void Main(string[] args)
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());
var font = asd.Engine.Graphics.CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
var keyStateText = new asd.TextObject2D();
keyStateText.Position = new asd.Vector2DF(10, 10);
keyStateText.Font = font;
asd.Engine.AddObject2D(keyStateText);
// 入力チェックするキー一覧。(Z, X, C, V, B)
List<asd.Keys> keys = new List<asd.Keys>();
keys.Add(asd.Keys.Z);
keys.Add(asd.Keys.X);
keys.Add(asd.Keys.C);
keys.Add(asd.Keys.V);
keys.Add(asd.Keys.B);
//キーの文字列表現。
List<string> keyStrs = new List<string>();
keyStrs.Add("Z");
keyStrs.Add("X");
keyStrs.Add("C");
keyStrs.Add("V");
keyStrs.Add("B");
// Altseedのウインドウが閉じられていないか確認する。
while (asd.Engine.DoEvents())
{
string displayStr = "";
//すべてのキーに対して入力状態を確認してから表示する。
for (int i = 0; i < keys.Count; i++)
{
string keystr = keyStrs[i];
// キーボードのZキーの入力状態を取得する。
asd.ButtonState state = asd.Engine.Keyboard.GetKeyState(keys[i]);
if (state == asd.ButtonState.Free) // 前フレームと本フレームで非押下
{
displayStr += (keystr + "キーを離しています。");
}
else if (state == asd.ButtonState.Hold) // 前フレームと本フレームで押下
{
displayStr += (keystr + "キーを押しています。");
}
else if (state == asd.ButtonState.Release) // 前フレームで押下、本フレームで非押下
{
displayStr += (keystr + "キーを離しました!");
}
else if (state == asd.ButtonState.Push) // 前フレームで非押下、本フレームで押下
{
displayStr += (keystr + "キーを押しました!");
}
displayStr += "\n";
}
// キー入力状態を示す文字列を更新する。
keyStateText.Text = displayStr;
// Altseedを更新する。
asd.Engine.Update();
}
//Altseedの終了処理をする。
asd.Engine.Terminate();
}
}
Java
/**
* キーボードの複数のキーの入力状態を取得するサンプル。
*/
public class Keyboard_PuralKeys
{
public java.lang.String getDescription() {
return "キーボードの複数のキーの入力状態を調べ、表示するサンプルです。";
}
public java.lang.String getTitle() {
return "複数のキーの入力状態";
}
public java.lang.String getClassName() {
return "Keyboard_PuralKeys";
}
public static void main(String args[])
{
// Altseedを初期化する。
asd.Engine.Initialize("Keyboard_PuralKeys", 640, 480, new asd.EngineOption());
asd.Font font = asd.Engine.getGraphics().CreateDynamicFont("", 40, new asd.Color(255, 255, 255, 255), 1, new asd.Color(0, 0, 0, 255));
// キーの入力状態を表示する文字描画オブジェクトを設定して、エンジンに追加する。
asd.TextObject2D keyStateText = new asd.TextObject2D();
keyStateText.setPosition(new asd.Vector2DF(10, 10));
keyStateText.setFont(font);
asd.Engine.AddObject2D(keyStateText);
// 入力チェックするキー一覧。(Z, X, C, V, B)
java.util.ArrayList<asd.Keys> keys = new java.util.ArrayList<asd.Keys>();
keys.add(asd.Keys.Z);
keys.add(asd.Keys.X);
keys.add(asd.Keys.C);
keys.add(asd.Keys.V);
keys.add(asd.Keys.B);
// キーの文字列表現。
java.util.ArrayList<java.lang.String> keyStrs = new java.util.ArrayList<java.lang.String>();
keyStrs.add("Z");
keyStrs.add("X");
keyStrs.add("C");
keyStrs.add("V");
keyStrs.add("B");
// Altseedのウインドウが閉じられていないか確認する。
while(asd.Engine.DoEvents())
{
java.lang.String displayStr = "";
// すべてのキーに対して入力状態を確認してから表示する。
for(int i = 0; (i < keys.size()); i++)
{
java.lang.String keystr = keyStrs.get(i);
// キーボードのZキーの入力状態を取得する。
asd.ButtonState state = asd.Engine.getKeyboard().GetKeyState(keys.get(i));
if((state == asd.ButtonState.Free))
{
displayStr += (keystr + "キーを離しています。");
}
else
{
if((state == asd.ButtonState.Hold))
{
displayStr += (keystr + "キーを押しています。");
}
else
{
if((state == asd.ButtonState.Release))
{
displayStr += (keystr + "キーを離しました!");
}
else
{
if((state == asd.ButtonState.Push))
{
displayStr += (keystr + "キーを押しました!");
}
}
}
}
displayStr += "\n";
}
// キー入力状態を示す文字列を更新する。
keyStateText.setText(displayStr);
// Altseedを更新する。
asd.Engine.Update();
}
// Altseedの終了処理をする。
asd.Engine.Terminate();
}
}