Difference between revisions of "love.textinput (日本語)"

(Created page with "{{newin|0.9.0|090|type=関数}} 利用者によりテキストが入力されたときに呼ばれます。例えば、米国英語配列のキーボードで [Shift]+[2]...")
 
m
Line 1: Line 1:
{{newin|[[0.9.0]]|090|type=関数}}
+
{{newin (日本語)|[[0.9.0 (日本語)|0.9.0]]|090|type=関数}}
利用者によりテキストが入力されたときに呼ばれます。例えば、米国英語配列のキーボードで [Shift]+[2] が押されたときに、"@" のテキストが生成されます。
+
利用者によりテキストが入力されたときに呼ばれます。例えば、米国英語配列のキーボードで [Shift]+[2] を押すと、 "@" のテキストが生成されます。
 
== 関数 ==
 
== 関数 ==
 
=== 概要 ===
 
=== 概要 ===
Line 10: Line 10:
  
 
== 注釈 ==
 
== 注釈 ==
Lua は UTF-8 でエンコードされた Unicode テキストを正確かつ良好に文字列として記憶できますが、 Lua の文字列ライブラリにおいて多くの関数はテキストを要求通りに処理できません。例えば、 #text (および string.len(text)) は Unicode 文字数ではなく、文字列の''バイト''数を返します。[http://lua-users.org/wiki/LuaUnicode Lua wiki] および [http://www.lua.org/wshop12/Ierusalimschy.pdf Lua 開発者の一人よるプレゼンテーション] にもっと詳細な解説と、いくつかの小技があります。
+
Lua は UTF-8 でエンコードされた Unicode テキストを正確かつ良好に文字列として記憶できますが、 Lua の文字列ライブラリにおいて多くの関数はテキストを要求通りに処理できません。例えば、 #text (および string.len(text)) は Unicode 文字数ではなく、文字列の''バイト''数を返します。[http://lua-users.org/wiki/LuaUnicode Lua wiki] および [http://www.lua.org/wshop12/Ierusalimschy.pdf ある Lua 開発者によるプレゼンテーション] には、より詳細な解説と、いくつかの小技があります。
 
[[utf8 (日本語)|utf8]] ライブラリは UTF-8 で符号化された Unicode テキストを操作するために使用することができます(この関数にて指定された text 引数と同じです)。
 
[[utf8 (日本語)|utf8]] ライブラリは UTF-8 で符号化された Unicode テキストを操作するために使用することができます(この関数にて指定された text 引数と同じです)。
  
Line 75: Line 75:
 
{{#set:PrettySince=0.9.0}}
 
{{#set:PrettySince=0.9.0}}
 
{{#set:Description=利用者によりテキストが入力されたときに呼ばれます。}}
 
{{#set:Description=利用者によりテキストが入力されたときに呼ばれます。}}
{{#set:Subcategory=General}}
+
{{#set:Subcategory=Keyboard}}
  
 
== そのほかの言語 ==
 
== そのほかの言語 ==
{{i18n|love.textinput}}
+
{{i18n (日本語)|love.textinput}}

Revision as of 23:56, 11 June 2019

LÖVE 0.9.0 から使用可能
この関数は以前のバージョンでは非対応です。

利用者によりテキストが入力されたときに呼ばれます。例えば、米国英語配列のキーボードで [Shift]+[2] を押すと、 "@" のテキストが生成されます。

関数

概要

love.textinput( text )

返値

ありません。

注釈

Lua は UTF-8 でエンコードされた Unicode テキストを正確かつ良好に文字列として記憶できますが、 Lua の文字列ライブラリにおいて多くの関数はテキストを要求通りに処理できません。例えば、 #text (および string.len(text)) は Unicode 文字数ではなく、文字列のバイト数を返します。Lua wiki および ある Lua 開発者によるプレゼンテーション には、より詳細な解説と、いくつかの小技があります。 utf8 ライブラリは UTF-8 で符号化された Unicode テキストを操作するために使用することができます(この関数にて指定された text 引数と同じです)。

Android および iOS において、 textinput は標準で無効にされています。有効にするには love.keyboard.setTextInput を呼び出します。

用例

利用者が書いたテキストの記録及び表示をします。

function love.load()
    text = "Type away! -- "
end

function love.textinput(t)
    text = text .. t
end

function love.draw()
    love.graphics.printf(text, 0, 0, love.graphics.getWidth())
end

利用者が書いたテキストの表示、およびバックスペースが押されたときにテキストを消去します。

local utf8 = require("utf8")

function love.load()
    text = "Type away! -- "

    -- バックスペースを押し下げたままにして love.keypressed の複数回発生させるためにキーリピートを有効にします。
    love.keyboard.setKeyRepeat(true)
end

function love.textinput(t)
    text = text .. t
end

function love.keypressed(key)
    if key == "backspace" then
        -- 文字列にある最後の UTF-8 文字のオフセット・バイトを取得します。
        local byteoffset = utf8.offset(text, -1)

        if byteoffset then
            -- 最後の UTF-8 文字を削除します。
            -- string.sub は UTF-8 文字 ではなくバイトで操作を行うため string.sub(text, 1, -2) を使用することはできません。
            text = string.sub(text, 1, byteoffset - 1)
        end
    end
end

function love.draw()
    love.graphics.printf(text, 0, 0, love.graphics.getWidth())
end

関連



そのほかの言語