PicoPicoGameEngine

Quick Links

テキストオブジェクト

テキストオブジェクトはメッセージを1文字づつ表示したり、メニュー選択するウインドウを処理したりするオブジェクトです。スクロールビューとして利用することもできます。

pptext

ppspriteのサブクラスです。

.new()

テキストオブジェクトを作成します。

引数nを指定すると指定した数だけテキストオブジェクトが入ったテーブルを返します。

text = pptext.new()
text_array = pptext.new(n)
text : pptext object

テキストオブジェクト

n : number

生成するテキストオブジェクトの数

text_array : object

テキストオブジェクトの配列

:frameRect()

ウインドウ領域を指定します。

引数がない場合は設定値を返します。

text:frameRect( x,y,width,height)
text:frameRect( {x,y,width,height})
text:frameRect(frame)
result = text:frameRect()
text : pptext object

テキストオブジェクト

x : number

X方向移動量

y : number

Y方向移動量

width : number

横幅

height : number

高さ

frame : rectangle object

ウインドウ領域

result : pprect object

ウインドウ領域

m=pptext.new()
w=ppscreen:size().width
m:frameRect(16,16,w-32,300)
for i=0,30 do
  m:add("LIST "..i)
end

function start()
  ppgraph:fill(
    m:frameRect(),ppgraph.blue)
  v=ppscreen:viewport()
  ppscreen:viewport(
    m:frameRect())
  m:idle()
  m:draw()
  ppscreen:viewport(v)
end

:contentsRect()

テキストの内部領域のエリア(pprect)を返します。

テキストが変更されると自動的に再計算されます。

text:contentsRect(rect)
result = text:contentsRect()
text : pptext object

テキストオブジェクト

rect : rectangle object

コンテンツ領域

result : pprect object

コンテンツ領域

:isDragging()

ウインドウ領域内をドラッグ中かどうかを返します。

result = text:isDragging()
text : pptext object

テキストオブジェクト

result : boolean

ドラッグ中かどうか

  • true ドラッグしている
  • false ドラッグしていない

:idle()

タッチ処理やスクロール処理を動作させます。

ゲームループ内で毎フレーム実行します。

text:idle()
text : pptext object

テキストオブジェクト

:clear()

入力したテキストを全て削除します。

text:clear()
text : pptext object

テキストオブジェクト

:text()

表示するテキストを指定します。

text:text(text)
text : pptext object

テキストオブジェクト

:lineHeight()

1行の高さを指定します。

text:lineHeight(lineHeight)
lineHeight = text:lineHeight()
text : pptext object

テキストオブジェクト

lineHeight : number

行の高さ pixel

:cellRect()

指定したセルの矩形領域を返します。

result = text:cellRect(cell_index)
text : pptext object

テキストオブジェクト

cell_index : number

セル番号

result : rectangle object

セルの矩形領域

m=pptext.new()
m:frameRect(16,16,100,100)
m:add("HELLO WOLRD 1")
m:add("HELLO")
  
function start()
  ppgraph:fill(
    m:frameRect(),ppgraph.blue)
  v=ppscreen:viewport()
  ppscreen:viewport(m:frameRect())
  m:idle()
  m:draw()
  ppscreen:viewport(v)
  
  ppgraph:box(
    m:cellRect(1),ppgraph.red)
  ppgraph:box(
    m:cellRect(2),ppgraph.red)
  
end

:cellString()

指定したセルの文字をテーブル(配列)で返します。

一つのセルに複数行あれば、各行の文字列が配列となって返ってきます。

strings = text:cellString(cell_index)
text : pptext object

テキストオブジェクト

cell_index : number

セル番号

strings : string object array

指定したセルの文字列の配列

m=pptext.new()
m:frameRect(16,16,100,100)
m:add("HELLO WOLRD 1")
m:add("HELLO WOLRD 2")
  
function start()
  ppgraph:fill(
    m:frameRect(),ppgraph.blue)
  v=ppscreen:viewport()
  ppscreen:viewport(m:frameRect())
  m:idle()
  m:draw()
  ppscreen:viewport(v)
  ppgraph:locate(132,16)
  local l=m:cellString(1)
  for k,v in pairs(l) do
    ppgraph:print(k..":"..v)
    ppgraph:move(0,16)
  end
end

:autoScroll()

追加した文字がウインドウ領域内に入るように自動スクロールするかどうかの指定をします。

text:autoScroll(flag)
flag = text:autoScroll()
text : pptext object

テキストオブジェクト

flag : boolean

自動スクロールするかどうか

  • true 有効
  • false 無効

:autoCenter()

文字がウインドウ領域内に収まった場合に中央に寄せるかどうか指定します。

text:autoCenter(flag)
flag = text:autoCenter()
text : pptext object

テキストオブジェクト

flag : boolean

中央に寄せるかどうか

  • true 有効
  • false 無効

:cellCount()

セルの数を返します。

result = text:cellCount()
text : pptext object

テキストオブジェクト

result : number

セルの数

:hideCell()

文字の描画を行うかどうかの指定をします。

これを有効にするとテキストオブジェクトは動作したまま、文字が表示されなくなります。

text:hideCell(flag)
flag = text:hideCell()
text : pptext object

テキストオブジェクト

flag : boolean

文字の描画を行うかどうか

  • true する
  • false しない

:select()

指定したセルを選択します。

引数がない場合は選択行を返します。

text:select(select_cell_index)
text : pptext object

テキストオブジェクト

select_cell_index : object

選択するセル番号の配列

m=pptext.new()
m:frameRect(
  ppscreen:size())
m:add("HELLO WOLRD 1")
m:add("HELLO WORLD 2")
m:add("HELLO WORLD 3")
m:add("HELLO WORLD 4")
m:add("HELLO WORLD 5")
m:selectable(true)
-- Select 2,4,5 lines
m:select({2,4,5})

function start()
  ppgraph:fill(
    m:frameRect(),
    ppgraph.blue)
  ppscreen:viewport(
    m:frameRect())
  m:idle()
  m:draw()
  ppscreen:viewport(
    ppscreen:size())
end

:selectedColor()

選択したセルの色を指定します。

text:selectedColor(color)
color = text:selectedColor()
text : pptext object

テキストオブジェクト

color : color object

選択したセルの色

:selectable()

選択可能かどうかを指定します。

text:selectable(flag)
flag = text:selectable()
text : pptext object

テキストオブジェクト

flag : boolean

選択可能かどうか

  • true 可能
  • false 不可能

:multiselectable()

複数選択可能かどうかを指定します。

text:multiselectable(flag)
flag = text:multiselectable()
text : pptext object

テキストオブジェクト

flag : boolean

複数選択可能かどうか

  • true 可能
  • false 不可能

:emptyselection()

0選択状態が可能かどうかを指定します。

text:emptyselection(flag)
flag = text:emptyselection()
text : pptext object

テキストオブジェクト

flag : boolean

0選択状態が可能かどうか

  • true 可能
  • false 不可能

:column()

カラム数を指定します。

text:column(column)
column = text:column()
text : pptext object

テキストオブジェクト

column : number

カラム数

m=pptext.new()
m:frameRect(
  ppscreen:size())
for i=0,30 do
  m:add("LIST "..i)
end
m:column(2)

function start()
  ppgraph:fill(
    m:frameRect(),
    ppgraph.blue)
  ppscreen:viewport(
    m:frameRect())
  m:idle()
  m:draw()
  ppscreen:viewport(
    ppscreen:size())
end

:speed()

追加文字の表示スピードを指定します。

1以上を指定すると追加文字列を1文字づつ表示していきます。0を指定すると遅延なく表示されます。

text:speed(speed)
speed = text:speed()
text : pptext object

テキストオブジェクト

speed : number

追加文字の表示スピード

:add()

文字を追加します。

改行コードが末尾に付加されます。

text:add(string)
text : pptext object

テキストオブジェクト

string : string

追加する文字列

:append()

文字を追加します。

text:append(string)
text : pptext object

テキストオブジェクト

string : string

追加する文字列

:done()

追加文字の表示アニメーションが終了したかどうかを返します。

done = text:done()
text : pptext object

テキストオブジェクト

done : boolean

表示アニメーションが終了したかどうか

  • true 終了した
  • false 終了していない

:cursorPosition()

カーソル位置を返します。

pos = text:cursorPosition()
text : pptext object

テキストオブジェクト

pos : point object

カーソル位置

:margin()

文字表示位置のマージンを指定します。

text:margin( top, right, bottom, left)
text:margin( {top, right, bottom, left})
text:margin({top=top, right=right, bottom=bottom, left=left})
text : pptext object

テキストオブジェクト

top : number

上からのオフセット

right : number

右からのオフセット

bottom : number

下からのオフセット

left : number

左からのオフセット

:lastSelect()

最後に選択したセルのセル番号を返します。

cell_index = text:lastSelect()
text : pptext object

テキストオブジェクト

cell_index : number

最後に選択したセルのセル番号