PicoPicoGameEngine

Quick Links

スプライトオブジェクト

ppsprite

.new()

スプライトオブジェクトを作成します。

sp = ppsprite.new()

タイルサイズが32x32ドットのスプライトオブジェクトを作成します。

sp : ppsprite object

スプライトオブジェクト

sp_array = ppsprite.new(n)

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

n : number

生成するスプライトオブジェクトの数

sp_array : object

スプライトオブジェクトの配列

sp = ppsprite.new(texture_filename)

指定したテクスチャを割り当てたスプライトオブジェクトが生成されます。タイルサイズはテクスチャの画像サイズになります。

texture_filename : string

テクスチャのファイル名

sp : ppsprite object

スプライトオブジェクト

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
sp:tile(2)
sp:pos(32,20)

function start()
  sp:draw()
end

:show()

表示状態にします。

sprite:show()
sprite : sprite object

スプライトオブジェクト

:hide()

非表示状態にします。

sprite:hide()
sprite : sprite object

スプライトオブジェクト

:idle()

アイドル処理を行います。

初期状態では何もしません。

sprite:idle()
sprite : sprite object

スプライトオブジェクト

:draw()

描画します。

sprite:draw()
sprite : sprite object

スプライトオブジェクト

:isAlive()

有効かどうかを返します。

result = sprite:isAlive()
sprite : sprite object

スプライトオブジェクト

  • true 有効
  • false 無効

:isVisible()

表示中かどうかを返します。

result = sprite:isVisible()
sprite : sprite object

スプライトオブジェクト

  • true 表示中である
  • false 表示中でない

:pos()

表示位置を指定します。

引数がない場合は表示位置を返します。

sprite:pos(x,y)
sprite:pos({x,y})
sprite:pos(pos)
pos = sprite:pos()
sprite : sprite object

スプライトオブジェクト

x : number

X座標

y : number

Y座標

pos : point object

座標

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
sp:pos(32,20)
sp:pos({32,20})
sp:pos({x=32,y=20})
sp.x,sp.y=32,20

:aabb()

バウンディングボックスを返します。

aabb = sprite:aabb()
sprite : sprite object

スプライトオブジェクト

aabb : pprect object

バウンディングボックス

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
sp:tile(2)
sp:pos(32,20)

function start()
  sp:pivot(16,16)
  sp:rotate(sp:rotate()+0.01)
  sp:draw()
  ppgraph:box(sp:aabb())
end

:size()

サイズを返します。

サイズはスケーリング指定を考慮します。

size = sprite:size()
sprite : sprite object

スプライトオブジェクト

size : pprect object

サイズ

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
sp:tile(2)
sp:pos(32,20)
function start()
  sp:draw()
  ppgraph:box(
    sp:size()+sp:pos())
end

:layout()

表示位置を自動でレイアウトするかどうかの指定をします。

オートレイアウトを有効にすると、座標指定は表示位置の相対座標になります。

sprite:layout(autolayout, centerx, centery, [area])
sprite : sprite object

スプライトオブジェクト

autolayout : boolean

自動レイアウトするかどうか

  • true 有効
  • false 無効
centerx : boolean

横方向のセンタリングをするかどうか

  • true 有効
  • false 無効
centery : boolean

縦方向のセンタリングをするかどうか

  • true 有効
  • false 無効
[area] : rectangle object/optional

配置するエリア、省略するとスクリーンエリアが適用されます。

:texture()

テクスチャを指定します。

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

sprite:texture(texture)
sprite:texture(name,[texture_option])
sprite : sprite object

スプライトオブジェクト

texture : texture object

テクスチャ

name : string

テクスチャファイル名

[texture_option] : object/optional

テクスチャオプション

:enable()

有効状態にします。

:isAlive()で有効、無効を判断できます。

sprite:enable()
sprite : sprite object

スプライトオブジェクト

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
sp:tile(2)
sp:pos(32,20)

function start()
  sp:draw()
  if sp:isAlive() then
    ppgraph:print("Alive")
  end
  if #pptouch() > 0 then
    sp:enable()
  else
    sp:disable()
  end
end

:disable()

無効状態にします。

無効にすると非表示状態になります。isAlive()で有効、無効を判断できます。

sprite:disable()
sprite : sprite object

スプライトオブジェクト

:move()

表示位置を移動させます。

sprite:move(x,y)
sprite:move({x,y})
sprite:move(pos)
sprite : sprite object

スプライトオブジェクト

x : number

X移動量

y : number

Y移動量

pos : point object

移動量

:tileInfo()

タイルの位置情報を変更します。引数がない場合は設定値を返します。

sprite:tileInfo(tile_info)
sprite : sprite object

スプライトオブジェクト

tile_info : object

タイルの位置を指定するオブジェクトです。次のような構造になっています。

tile_info={
  size={
    width=[タイル横幅],
    height=[タイル高さ]
  },
  stride={
    x=[タイルの横間隔],
    y=[タイルの縦間隔]
  },
  offset={
    x=[タイルの横開始位置],
    y=[タイルの縦開始位置]
  }
}

:tileSize()

タイルの位置情報を変更します。引数がない場合は設定値を返します。

sprite:tileSize(width,height)
sprite:tileSize({width,height})
sprite:tileSize(size)
size = sprite:tileSize()
sprite : sprite object

スプライトオブジェクト

width : number

タイル横幅

height : number

タイル高さ

size : object

タイルサイズ

size={
  width=[タイル横幅],
  height=[タイル高さ]
}

:tileStride()

タイルの位置情報を変更します。

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

sprite:tileStride(x,y)
sprite:tileStride({x,y})
sprite:tileStride(stride)
stride = sprite:tileStride()
sprite : sprite object

スプライトオブジェクト

x : number

X移動量

y : number

Y移動量

stride : point object

移動量

:tileOffset()

タイルの位置情報を変更します。

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

sprite:tileOffset(x,y)
sprite:tileOffset({x,y})
sprite:tileOffset(offset)
offset = sprite:tileOffset()
sprite : sprite object

スプライトオブジェクト

x : number

X方向オフセット

y : number

Y方向オフセット

offset : point object

オフセット

:tile()

タイル番号を変更します。

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

sprite:tile(index)
index = sprite:tile()
sprite : sprite object

スプライトオブジェクト

index : number

タイル番号

:rotate()

回転させます。

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

sprite:rotate(r)
r = sprite:rotate()
sprite : sprite object

スプライトオブジェクト

r : number

回転値、ラジアン

:pivot()

スプライトを中心位置を指定します。

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

sprite:pivot(x,y)
sprite:pivot({x,y})
sprite:pivot(pivot)
pivot = sprite:pivot()
sprite : sprite object

スプライトオブジェクト

x : number

X座標

y : number

Y座標

pivot : point object

中心座標

:flip()

上下左右反転、90度単位の回転を指定します。

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

sprite:flip(hflip,vflip,rot90)
hflip,vflip,rot90 = sprite:flip()
sprite : sprite object

スプライトオブジェクト

hflip : boolean

水平方向の反転を有効にするかどうか

  • true 有効
  • false 無効
vflip : boolean

垂直方向の反転を有効にするかどうか

  • true 有効
  • false 無効
rot90 : number

90度単位の回転 0〜3 反時計回り

:scale()

拡大縮小値を指定します。

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

sprite:scale(x,y)
sprite:scale({x,y})
sprite:scale(scale)
scale = sprite:scale()
sprite : sprite object

スプライトオブジェクト

x : number

X方向拡大率

y : number

Y方向拡大率

scale : point object

拡大率

:alpha()

透明度を指定します。

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

sprite:alpha(a)
a = sprite:alpha()
sprite : sprite object

スプライトオブジェクト

a : number

透明度 0〜255

:color()

色を指定します。

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

sprite:color(color)
color = sprite:color()
sprite : sprite object

スプライトオブジェクト

color : color object

:loopAnime()

タイルアニメーションを行います。

アニメーションはループします。

sprite:loopAnime(time,tile_array)
sprite : sprite object

スプライトオブジェクト

time : number

アニメが終了するまでの時間(秒)

tile_array : object

アニメーションさせるタイルの配列

pptex:default(
  pptex:load("sample.png"))
sp=ppsprite.new()
function start()
  sp:loopAnime(4,{2,3,4,5})
  sp:draw()
end

:playAnime()

タイルアニメーションを行います。

アニメーションが終了するとtrueを返します。

done = sprite:playAnime(time,tile_array)
sprite : sprite object

スプライトオブジェクト

time : number

アニメが終了するまでの時間(秒)

tile_array : object

アニメーションさせるタイルの配列

done : boolean

アニメーションが終了するとtrueになる

:contain()

座標がスプライトのバウンディングボックス内かどうかを調べます。

result = sprite:contain(point)
sprite : sprite object

スプライトオブジェクト

point : point object

調べる座標

result : boolean

バウンディングボックス内ならtrue

  • true 内側
  • false 外側/li>

:intersect()

矩形がスプライトのバウンディングボックスと交差しているかどうかを調べます。

result = sprite:intersect(rect)
sprite : sprite object

スプライトオブジェクト

rect : rectangle object

交差を調べる矩形

result : boolean

バウンディングボックスと交差しているならtrue

  • true 交差している
  • false 交差していない

:drag()

ドラッグします。

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

sprite:drag(points,[drag_area])
sprite : sprite object

スプライトオブジェクト

points : objects

ドラッグするポイントの配列

[drag_area] : rectangle object/optional

ドラッグするスクリーンエリア

pptex:default(
  pptex:load("sample.png"))
s=ppsprite.new()
s:tile(2)
function start()
  s:drag(pptouch(),
         ppscreen:size())
  s:draw()
end

.x
.y

座標を示します。

x = sprite.x
y = sprite.y
sprite.x = x
sprite.y = y
sprite : sprite object

スプライトオブジェクト

x : number

X座標

y : number

Y座標

.animationTime

loopAnime() playAnime()で使用します。

.hitlength
.hitmask
.hit

あたり判定で使用します。

.autolayout
.centerx
.centery

自動レイアウトで使用します。