サイログ。

~雑多な記事置き場~

今日の追加・変更

あなた(ボックス)についていきます


今日も、Spriteクラスのレイアウト関連の実装と、Shapeクラスの実装を。
レイアウト関係を強化したり、snapメソッドを追加しました。
snapメソッドは、レイアウト計算の対象を特定のスプライトに変更するものです。
こういった計算は、Spriteの作成順に依存していますが、snapを使うと、
snap対象の位置情報が変わると、正しくsnap先の位置情報も更新されるようになります。

スクリプトはこんな感じ。

@spr0 = Shape.create(:box, [640, 480, [0, 0, 64], :edge, 4, [64,64,128]])
@spr0.centering
@spr0.visible = true

@spr1 = Shape.create(:box, [100, 50, [0, 0, 0], :trcolor, [255, 255, 0], :edge, 2, [255, 255, 255]])
@spr1.centering
@spr1.visible = true

@spr2 = Shape.create(:ellipse, [50, 80, [255, 255, 0], :edge, 4, [128, 128, 0]])
@spr2.alpha = 128
@spr2.snap(@spr1)
@spr2.set_layout(:left, [:bottom, :outside])
@spr2.visible = true

@spr3 = Shape.create(:roundbox, [50, 80, 4, [0, 255, 0], :edge, 4, [0, 128, 0]])
@spr3.x = 200
@spr3.y = 200
@spr3.visible = true

こうすると、写真のように、黒の四角の真下に楕円がくっつくようになります。