Playdateには文字入力機構も備わっていて以下キャプチャのようなiOSのデートピッカーのように上下で文字切り替え・入力できる機構が利用できます。
非常に簡単に実装できるので簡単に紹介します。
import "CoreLibs/object"
import "CoreLibs/graphics"
import "CoreLibs/sprites"
import "CoreLibs/timer"
import "CoreLibs/keyboard"
local gfx <const> = playdate.graphics
local inputText = "Edit PressA" -- 編集テキスト
function myGameSetUp()
-- キーボード: 文字変更時実行
playdate.keyboard.textChangedCallback = function()
inputText = playdate.keyboard.text
gfx.sprite.redrawBackground()
end
-- キーボード: 変更終了時実行
playdate.keyboard.keyboardDidHideCallback = function()
print(playdate.keyboard.text)
end
gfx.sprite.setBackgroundDrawingCallback(
function( x, y, width, height )
gfx.drawText(inputText, 20, 20)
end
)
end
myGameSetUp()
function playdate.update()
-- Aボタン: 文字入力
if playdate.buttonIsPressed(playdate.kButtonA) then
playdate.keyboard.show(inputText)
end
gfx.sprite.update()
playdate.timer.updateTimers()
end
キーボードAPIを使うには"CoreLibs/keyboard"
をimportします。
キーボードの表示はplaydate.keyboard.show([初期値])
を実行します。
今回はAボタンを押すとキーボードを表示するようにしました。
キー入力中の値を取得するにはplaydate.keyboard.textChangedCallback
で実行したいコールバック関数を記述します。
キー入力している値はplaydate.keyboard.text
で取得できます。
キーボードを非表示した時にはplaydate.keyboard.keyboardDidHideCallback
でコールバック関数を記述します。
他にも以下のコールバック関数が存在します。
playdate.keyboard.keyboardDidShowCallback
:キーボードが表示された時
playdate.keyboard.keyboardWillHideCallback([bool])
:キーボードを非表示する直前に呼び出す。引数はtrueがOKを押した時、falseがそれ以外の時
playdate.keyboard.keyboardAnimatingCallback
:キーボードが表示/非表示アニメーションする際に呼び出す