PicoPicoGameEngine

Quick Links

キー関連オブジェクト

ppkey

.up()
.down()
.left()
.right()
.a()
.b()
.c()
.d()
.e()
.f()
.g()
.h()
.x()
.y()
.leftShoulder()
.rightShoulder()
.pause()

キーが押されているかどうかを判定します。

iOSではiCadeに対応しています。iOS7ではGameControllerに対応しています。

push = ppkey.up([trigger_flag])
push = ppkey.down([trigger_flag])
push = ppkey.left([trigger_flag])
push = ppkey.right([trigger_flag])
push = ppkey.a([trigger_flag])
push = ppkey.b([trigger_flag])
push = ppkey.c([trigger_flag])
push = ppkey.d([trigger_flag])
push = ppkey.e([trigger_flag])
push = ppkey.f([trigger_flag])
push = ppkey.g([trigger_flag])
push = ppkey.h([trigger_flag])
push = ppkey.x([trigger_flag])
push = ppkey.y([trigger_flag])
push = ppkey.leftShoulder([trigger_flag])
push = ppkey.rightShoulder([trigger_flag])
push = ppkey.pause()
push : boolean

押したかどうか

  • true 押した
  • false 押していない
[trigger_flag] : boolean/optional

押した瞬間を検知するかどうか。trueなら押した直後のみpushがtrueになる。デフォルトはfalse。

  • true 検知する
  • false 検知しない

ppvkey

:touch()

バーチャルキーをタッチしているかどうかを調べます。

touch = ppvkey:touch()
touch : boolean

バーチャルキーをタッチしているかどうか

  • true タッチしている
  • false タッチしていない
pptex:default(
  pptex:load("sample.png"))
fighter=ppsprite.new()
fighter:tile(2)
mv={{1,0},{0,-1},{-1,0},{0,1}}
s=ppscreen:size()
ppvkey:center(
  s.width/2,s.height/2)

p16=pppoint(16,16)
fighter:pos(
  ppvkey:center()-p16)

function start()
  if ppvkey:touch() then
    fighter:move(
      mv[ppvkey:dir(4)+1])
    ppgraph:print(ppvkey:dir(4))
  end
  ppgraph:put(
    ppvkey:center()-p16,7)
  fighter:draw()
end

:delta()

バーチャルキーの中心位置からのタッチ位置のずれを取得します。

delta = ppvkey:delta()
delta : point object

タッチ位置のずれ

:dir()

中心からの方向を取得します。

dir = ppvkey:dir(division,[area])
division : number

方向を何分割するか

[area] : rectangle object/optional

バーチャルキーとして判定するエリア

dir : number

タッチしている方向、-1の場合はニュートラル。0〜division-1

:center()

バーチャルキーの中心を指定します。

ppvkey:center(x,y)
ppvkey:center({x,y})
ppvkey:center(position)
x : number

中心のX座標

y : number

中心のY座標

position : point object

中心座標

:fixed()

中心位置を固定するかどうかを指定します。

trueにした場合はcenter()で指定した位置が中心になります。 falseの場合はタッチ開始位置が中心になります。

ppvkey:fixed(flag)
flag : boolean

固定するかどうか

  • true する
  • false しない
pptex:default(
  pptex:load("sample.png"))
fighter=ppsprite.new()
fighter:tile(2)
mv={{1,0},{0,-1},{-1,0},{0,1}}
ppvkey:fixed(true)
s=ppscreen:size()
ppvkey:center(
  s.width/2,s.height/2)

p16=pppoint(16,16)
fighter:pos(
  ppvkey:center()-p16)

function start()
  if ppvkey:touch() then
    fighter:move(
      mv[ppvkey:dir(4)+1])
    ppgraph:print(ppvkey:dir(4))
  end
  ppgraph:put(
    ppvkey:center()-p16,7)
  fighter:draw()
end