今日の追加・変更
今日も、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
こうすると、写真のように、黒の四角の真下に楕円がくっつくようになります。