グループ

このエントリーをはてなブックマークに追加

 

 いくつかのオブジェクト(四角、絵、写真など)をひとまとめにして管理をしたい場合があります。その様な際に使用する機能がグループです。

 

1.関数の説明

 グループを作成する場合、以下の関数を実行します。

display.newGroup()
戻り値はグループです。

 

2. グループへの登録方法

 グループへの登録方法は2種類あります。

 

2.1 オブジェクト作成時に登録

 四角形や円などのオブジェクトを作成する際、引数にparentGroupというのがありました。そのparentGroupに登録したいグループを指定すれば、グループに追加することができます。

local group = display.newGroup()
local circle = display.newCircle(group, 100, 100, 60)

 

2.2 オブジェクトをグループに登録

 オブジェクトを作成後、後からグループに追加する方法です。

local circle = display.newCircle(100, 100, 60)
local group = display.newGroup()
group:insert(circle)

 

3. グループを使ってみる

 人形のグループを作ってみます。

 

3.1 人形を作成する

 それでは人形を作成します。「doll」グループにパーツを登録しています。

— 作成位置(頭の中心座標)
local x = 100
local y = 100

— 人形グループ
local doll = display.newGroup()

— 頭
local headSize = 20
local head = display.newCircle(doll, x, y, 20)

— 胴体
local bodySize = 60
local body = display.newRect(doll, x, y, headSize * 2, bodySize)
body.y = y + headSize + body.height * 0.5

— 腕
local armSize = 50
— 右腕
local rightArm = display.newRect(doll, x, y, armSize * 0.3, armSize)
rightArm.x = x – body.width * 0.5 – rightArm.width * 0.5 – 5
rightArm.y = y + headSize + rightArm.height * 0.5
— 左腕
local leftArm = display.newRect(doll, x, y, armSize * 0.3, armSize)
leftArm.x = x + body.width * 0.5 + leftArm.width * 0.5 + 5
leftArm.y = y + headSize + leftArm.height * 0.5

— 足
local legSize = 50
— 右足
local rightLeg = display.newRect(doll, x, y, legSize * 0.3, legSize)
rightLeg.x = x – body.width * 0.25
rightLeg.y = body.y + body.height * 0.5 + rightLeg.height * 0.5 + 5
— 左足
local leftLeg = display.newRect(doll, x, y, legSize * 0.3, legSize)
leftLeg.x = x + body.width * 0.25
leftLeg.y = body.y + body.height * 0.5 + leftLeg.height * 0.5 + 5

 

 

3.2 作成した人形を回転させる

 グループごと回転させることで、まとめて回転させることができます。ただし、回転する座標の中心は画面の左上になっています。なので、回転させると以下のようになります。

doll.rotation = -30

 

 

3.3 作成した人形の中心で回転させる

 体の中心で回転させたい場合、回転中心位置を変更します。白い線は「x=100」と「y=100」の線です。

 

3.3.1 アンカーを有効にする

 グループを作成した段階ではアンカーポイントを尊重しないので、アンカーを有効にします。

doll.anchorChildren = true

 


 アンカーを有効にすると表示位置が変わります。グループの中心が(0, 0)になり、表示位置が(0, 0)になります。

 

3.3.2 「doll」グループの位置を調整

 続いて、「doll」グループの位置を調整します。

doll.x = 100
doll.y = 100

 

 

3.3.3 「doll」グループを回転

 アンカーポイントを有効にしたので、回転させます。すると、グループの中心座標を中心に回転します。

doll.rotation = -30

 

 

3.3.4 「doll」グループのアンカーポイントの位置を変更して回転

 アンカーポイントの位置を変更します。アンカーポイントの設定はそのグループのサイズの割合で設定します。頭のてっぺんを中心にしたい場合、以下のように記述します。

doll.anchorX = 0.5
doll.anchorY = 0
doll.rotation = -30

 

 

4. ソースコード

 プログラムの全文を掲載します。

  プログラム新しいウィンドウで開く

<注意>
文字コードUTF-8になっています。(Corona SDKではUTF-8が標準の為)
ファイル名は必要に応じて変更し利用してください。
本サイトの注意事項を確認してください。
ソースコードを使用する場合、上記注意とともに、自己責任でお願いします。

       

<更新履歴>

更新日 Corona SDKのバージョン
新規作成 2015年8月12日 v2015.2646

 

前へ          メニューへ          次へ

 

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)