-- ax9.levelgen dummy = { point.new(-451.5, 546.0), point.new(-450.5, 546.0) } frames = { { -- 1 { point.new(-204.0, 515.1), point.new(-204.0, 535.5), point.new(-153.0, 525.3), point.new(-153.0, 504.9), point.new(-204.0, 515.1), point.new(-183.6, 494.7), point.new(-153.0, 504.9) }, { point.new(-451.7, 513.7), point.new(-451.3, 534.1), point.new(-408.0, 525.3), point.new(-408.0, 504.9), point.new(-451.7, 513.3), point.new(-451.7, 507.3), point.new(-438.6, 494.7), point.new(-408.0, 504.9) }, { point.new(51.0, 515.1), point.new(51.0, 535.5), point.new(102.0, 525.3), point.new(102.0, 504.9), point.new(51.0, 515.1), point.new(71.4, 494.7), point.new(102.0, 504.9) }, { point.new(306.0, 515.1), point.new(306.0, 535.5), point.new(357.0, 525.3), point.new(357.0, 504.9), point.new(306.0, 515.1), point.new(326.4, 494.7), point.new(357.0, 504.9) }, { point.new(-102.0, -504.9), point.new(-102.0, -484.5), point.new(-51.0, -494.7), point.new(-51.0, -515.1), point.new(-102.0, -504.9), point.new(-81.6, -525.3), point.new(-51.0, -515.1) }, { point.new(-357.0, -504.9), point.new(-357.0, -484.5), point.new(-306.0, -494.7), point.new(-306.0, -515.1), point.new(-357.0, -504.9), point.new(-336.6, -525.3), point.new(-306.0, -515.1) }, { point.new(-586.5, -555.9), point.new(-586.5, -535.5), point.new(-535.5, -545.7), point.new(-586.5, -535.5), point.new(-586.5, -555.9), point.new(-536.0, -555.7), point.new(-535.6, -545.7) }, { point.new(153.0, -504.9), point.new(153.0, -484.5), point.new(204.0, -494.7), point.new(204.0, -515.1), point.new(153.0, -504.9), point.new(173.4, -525.3), point.new(204.0, -515.1) }, { point.new(408.0, -504.9), point.new(408.0, -484.5), point.new(459.0, -494.7), point.new(459.0, -515.1), point.new(408.0, -504.9), point.new(428.4, -525.3), point.new(459.0, -515.1) }, { point.new(465.2, -474.0), point.new(481.1, -458.3) }, { point.new(722.8, 607.7), point.new(678.0, 643.7) }, { point.new(-102.0, 510.0), point.new(-146.8, 546.0) }, { point.new(-229.5, 510.0), point.new(-274.3, 546.0) }, { point.new(-357.0, 510.0), point.new(-401.8, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(25.5, 510.0), point.new(-19.3, 546.0) }, { point.new(153.0, 510.0), point.new(108.2, 546.0) }, { point.new(280.5, 510.0), point.new(235.7, 546.0) }, { point.new(408.0, 510.0), point.new(363.2, 546.0) }, { point.new(535.5, 510.0), point.new(490.7, 546.0) }, { point.new(663.0, 510.0), point.new(618.2, 546.0) }, { point.new(-127.5, -510.0), point.new(-172.3, -474.0) }, { point.new(-255.0, -510.0), point.new(-299.8, -474.0) }, { point.new(-382.5, -510.0), point.new(-427.3, -474.0) }, { point.new(-510.0, -510.0), point.new(-554.8, -474.0) }, { point.new(-637.5, -510.0), point.new(-682.3, -474.0) }, { point.new(0.0, -510.0), point.new(-44.8, -474.0) }, { point.new(127.5, -510.0), point.new(82.7, -474.0) }, { point.new(255.0, -510.0), point.new(210.2, -474.0) }, { point.new(382.5, -510.0), point.new(337.7, -474.0) }, { point.new(510.0, -510.0), point.new(465.2, -474.0) }, dummy, dummy, }, { -- 2 { point.new(-229.5, 515.1), point.new(-229.5, 535.5), point.new(-178.5, 525.3), point.new(-178.5, 504.9), point.new(-229.5, 515.1), point.new(-209.1, 494.7), point.new(-178.5, 504.9) }, { point.new(25.5, 515.1), point.new(25.5, 535.5), point.new(76.5, 525.3), point.new(76.5, 504.9), point.new(25.5, 515.1), point.new(45.9, 494.7), point.new(76.5, 504.9) }, { point.new(280.5, 515.1), point.new(280.5, 535.5), point.new(331.5, 525.3), point.new(331.5, 504.9), point.new(280.5, 515.1), point.new(300.9, 494.7), point.new(331.5, 504.9) }, { point.new(-76.5, -504.9), point.new(-76.5, -484.5), point.new(-25.5, -494.7), point.new(-25.5, -515.1), point.new(-76.5, -504.9), point.new(-56.1, -525.3), point.new(-25.5, -515.1) }, { point.new(-331.5, -504.9), point.new(-331.5, -484.5), point.new(-280.5, -494.7), point.new(-280.5, -515.1), point.new(-331.5, -504.9), point.new(-311.1, -525.3), point.new(-280.5, -515.1) }, { point.new(-586.5, -504.9), point.new(-586.5, -484.5), point.new(-535.5, -494.7), point.new(-535.5, -515.1), point.new(-586.5, -504.9), point.new(-566.1, -525.3), point.new(-535.5, -515.1) }, { point.new(178.5, -504.9), point.new(178.5, -484.5), point.new(229.5, -494.7), point.new(229.5, -515.1), point.new(178.5, -504.9), point.new(198.9, -525.3), point.new(229.5, -515.1) }, { point.new(433.5, -504.9), point.new(433.5, -484.5), point.new(484.5, -494.7), point.new(484.5, -515.1), point.new(433.5, -504.9), point.new(453.9, -525.3), point.new(484.5, -515.1) }, { point.new(465.2, -474.0), point.new(481.1, -458.3) }, { point.new(525.9, -494.3), point.new(481.1, -458.3) }, { point.new(525.9, -494.3), point.new(492.9, -468.0) }, { point.new(722.8, 575.3), point.new(678.0, 611.3) }, { point.new(-0.0, 510.0), point.new(-44.8, 546.0) }, { point.new(-127.5, 510.0), point.new(-172.3, 546.0) }, { point.new(-255.0, 510.0), point.new(-299.8, 546.0) }, { point.new(-382.5, 510.0), point.new(-427.3, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(127.5, 510.0), point.new(82.7, 546.0) }, { point.new(255.0, 510.0), point.new(210.2, 546.0) }, { point.new(382.5, 510.0), point.new(337.7, 546.0) }, { point.new(510.0, 510.0), point.new(465.2, 546.0) }, { point.new(637.5, 510.0), point.new(592.7, 546.0) }, { point.new(-102.0, -510.0), point.new(-146.8, -474.0) }, { point.new(-229.5, -510.0), point.new(-274.3, -474.0) }, { point.new(-357.0, -510.0), point.new(-401.8, -474.0) }, { point.new(-484.5, -510.0), point.new(-529.3, -474.0) }, { point.new(-612.0, -510.0), point.new(-656.8, -474.0) }, { point.new(25.5, -510.0), point.new(-19.3, -474.0) }, { point.new(153.0, -510.0), point.new(108.2, -474.0) }, { point.new(280.5, -510.0), point.new(235.7, -474.0) }, { point.new(408.0, -510.0), point.new(363.2, -474.0) }, dummy, dummy, }, { -- 3 { point.new(-0.0, 515.1), point.new(-0.0, 535.5), point.new(51.0, 525.3), point.new(51.0, 504.9), point.new(-0.0, 515.1), point.new(20.4, 494.7), point.new(51.0, 504.9) }, { point.new(-255.0, 515.1), point.new(-255.0, 535.5), point.new(-204.0, 525.3), point.new(-204.0, 504.9), point.new(-255.0, 515.1), point.new(-234.6, 494.7), point.new(-204.0, 504.9) }, { point.new(255.0, 515.1), point.new(255.0, 535.5), point.new(306.0, 525.3), point.new(306.0, 504.9), point.new(255.0, 515.1), point.new(275.4, 494.7), point.new(306.0, 504.9) }, { point.new(-56.5, -504.6), point.new(-56.5, -484.2), point.new(-5.5, -494.4), point.new(-5.5, -514.8), point.new(-56.5, -504.6), point.new(-36.1, -525.0), point.new(-5.5, -514.8) }, { point.new(-311.5, -504.6), point.new(-311.5, -484.2), point.new(-260.5, -494.4), point.new(-260.5, -514.8), point.new(-311.5, -504.6), point.new(-291.1, -525.0), point.new(-260.5, -514.8) }, { point.new(-566.5, -504.6), point.new(-566.5, -484.2), point.new(-515.5, -494.4), point.new(-515.5, -514.8), point.new(-566.5, -504.6), point.new(-546.1, -525.0), point.new(-515.5, -514.8) }, { point.new(198.5, -504.6), point.new(198.5, -484.2), point.new(249.5, -494.4), point.new(249.5, -514.8), point.new(198.5, -504.6), point.new(218.9, -525.0), point.new(249.5, -514.8) }, { point.new(453.5, -504.6), point.new(453.5, -484.2), point.new(504.5, -494.4), point.new(504.5, -514.8), point.new(453.5, -504.6), point.new(473.9, -525.0), point.new(504.5, -514.8) }, { point.new(484.5, 362.1), point.new(484.5, 382.5), point.new(535.5, 372.3), point.new(484.5, 382.5), point.new(484.5, 362.1), point.new(535.0, 362.3), point.new(535.4, 372.3), }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(535.5, -484.5), point.new(501.1, -458.0) }, { point.new(535.5, -484.5), point.new(512.9, -467.7) }, { point.new(722.8, 544.3), point.new(678.0, 580.3) }, { point.new(-25.5, 510.0), point.new(-70.3, 546.0) }, { point.new(-153.0, 510.0), point.new(-197.8, 546.0) }, { point.new(-280.5, 510.0), point.new(-325.3, 546.0) }, { point.new(-408.0, 510.0), point.new(-452.8, 546.0) }, { point.new(-568.1, 536.4), point.new(-580.3, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(102.0, 510.0), point.new(57.2, 546.0) }, { point.new(229.5, 510.0), point.new(184.7, 546.0) }, { point.new(357.0, 510.0), point.new(312.2, 546.0) }, { point.new(484.5, 510.0), point.new(439.7, 546.0) }, { point.new(612.0, 510.0), point.new(567.2, 546.0) }, { point.new(-82.0, -509.7), point.new(-126.8, -473.7) }, { point.new(-209.5, -509.7), point.new(-254.3, -473.7) }, { point.new(-337.0, -509.7), point.new(-381.8, -473.7) }, { point.new(-464.5, -509.7), point.new(-509.3, -473.7) }, { point.new(-592.0, -509.7), point.new(-636.8, -473.7) }, { point.new(45.5, -509.7), point.new(0.7, -473.7) }, { point.new(173.0, -509.7), point.new(128.2, -473.7) }, { point.new(300.5, -509.7), point.new(255.7, -473.7) }, { point.new(428.0, -509.7), point.new(383.2, -473.7) }, }, { -- 4 { point.new(-25.5, 515.1), point.new(-25.5, 535.5), point.new(25.5, 525.3), point.new(25.5, 504.9), point.new(-25.5, 515.1), point.new(-5.1, 494.7), point.new(25.5, 504.9) }, { point.new(-280.5, 515.1), point.new(-280.5, 535.5), point.new(-229.5, 525.3), point.new(-229.5, 504.9), point.new(-280.5, 515.1), point.new(-260.1, 494.7), point.new(-229.5, 504.9) }, { point.new(229.5, 515.1), point.new(229.5, 535.5), point.new(280.5, 525.3), point.new(280.5, 504.9), point.new(229.5, 515.1), point.new(249.9, 494.7), point.new(280.5, 504.9) }, { point.new(484.5, 515.1), point.new(484.5, 535.5), point.new(535.5, 525.3), point.new(535.5, 504.9), point.new(484.5, 515.1), point.new(504.9, 494.7), point.new(535.5, 504.9) }, { point.new(-31.0, -504.6), point.new(-31.0, -484.2), point.new(20.0, -494.4), point.new(20.0, -514.8), point.new(-31.0, -504.6), point.new(-10.6, -525.0), point.new(20.0, -514.8) }, { point.new(-286.0, -504.6), point.new(-286.0, -484.2), point.new(-235.0, -494.4), point.new(-235.0, -514.8), point.new(-286.0, -504.6), point.new(-265.6, -525.0), point.new(-235.0, -514.8) }, { point.new(-541.0, -504.6), point.new(-541.0, -484.2), point.new(-490.0, -494.4), point.new(-490.0, -514.8), point.new(-541.0, -504.6), point.new(-520.6, -525.0), point.new(-490.0, -514.8) }, { point.new(224.0, -504.6), point.new(224.0, -484.2), point.new(275.0, -494.4), point.new(275.0, -514.8), point.new(224.0, -504.6), point.new(244.4, -525.0), point.new(275.0, -514.8) }, { point.new(490.7, -485.3), point.new(490.7, -464.9), point.new(541.7, -475.1), point.new(541.7, -495.5), point.new(490.7, -485.3), point.new(511.1, -505.7), point.new(541.7, -495.5) }, { point.new(-433.5, 510.0), point.new(-451.2, 524.4) }, { point.new(453.5, -509.7), point.new(428.1, -489.8) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(700.0, 521.9), point.new(655.2, 557.9) }, { point.new(-51.0, 510.0), point.new(-95.8, 546.0) }, { point.new(-178.5, 510.0), point.new(-223.3, 546.0) }, { point.new(-306.0, 510.0), point.new(-350.8, 546.0) }, { point.new(-568.7, 516.1), point.new(-605.8, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(76.5, 510.0), point.new(31.7, 546.0) }, { point.new(204.0, 510.0), point.new(159.2, 546.0) }, { point.new(331.5, 510.0), point.new(286.7, 546.0) }, { point.new(459.0, 510.0), point.new(414.2, 546.0) }, { point.new(586.5, 510.0), point.new(541.7, 546.0) }, { point.new(-56.5, -509.7), point.new(-101.3, -473.7) }, { point.new(-184.0, -509.7), point.new(-228.8, -473.7) }, { point.new(-311.5, -509.7), point.new(-356.3, -473.7) }, { point.new(-439.0, -509.7), point.new(-483.8, -473.7) }, { point.new(-566.5, -509.7), point.new(-611.3, -473.7) }, { point.new(71.0, -509.7), point.new(26.2, -473.7) }, { point.new(198.5, -509.7), point.new(153.7, -473.7) }, { point.new(326.0, -509.7), point.new(281.2, -473.7) }, { point.new(453.5, -509.7), point.new(408.7, -473.7) }, { point.new(453.5, -509.7), point.new(408.7, -473.7) }, }, { -- 5 { point.new(-51.0, 515.1), point.new(-51.0, 535.5), point.new(0.0, 525.3), point.new(0.0, 504.9), point.new(-51.0, 515.1), point.new(-30.6, 494.7), point.new(0.0, 504.9) }, { point.new(-306.0, 515.1), point.new(-306.0, 535.5), point.new(-255.0, 525.3), point.new(-255.0, 504.9), point.new(-306.0, 515.1), point.new(-285.6, 494.7), point.new(-255.0, 504.9) }, { point.new(204.0, 515.1), point.new(204.0, 535.5), point.new(255.0, 525.3), point.new(255.0, 504.9), point.new(204.0, 515.1), point.new(224.4, 494.7), point.new(255.0, 504.9) }, { point.new(459.0, 515.1), point.new(459.0, 535.5), point.new(510.0, 525.3), point.new(510.0, 504.9), point.new(459.0, 515.1), point.new(479.4, 494.7), point.new(510.0, 504.9) }, { point.new(-5.5, -504.6), point.new(-5.5, -484.2), point.new(45.5, -494.4), point.new(45.5, -514.8), point.new(-5.5, -504.6), point.new(14.9, -525.0), point.new(45.5, -514.8) }, { point.new(-260.5, -504.6), point.new(-260.5, -484.2), point.new(-209.5, -494.4), point.new(-209.5, -514.8), point.new(-260.5, -504.6), point.new(-240.1, -525.0), point.new(-209.5, -514.8) }, { point.new(-515.5, -504.6), point.new(-515.5, -484.2), point.new(-464.5, -494.4), point.new(-464.5, -514.8), point.new(-515.5, -504.6), point.new(-495.1, -525.0), point.new(-464.5, -514.8) }, { point.new(249.5, -504.6), point.new(249.5, -484.2), point.new(300.5, -494.4), point.new(300.5, -514.8), point.new(249.5, -504.6), point.new(269.9, -525.0), point.new(300.5, -514.8) }, { point.new(499.8, -459.0), point.new(499.6, -458.7), point.new(551.0, -459.1), point.new(550.8, -469.2), point.new(499.6, -458.7), point.new(520.2, -479.4), point.new(550.8, -469.2) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(479.0, -509.7), point.new(453.6, -489.8) }, { point.new(-76.5, 510.0), point.new(-121.3, 546.0) }, { point.new(-204.0, 510.0), point.new(-248.8, 546.0) }, { point.new(-331.5, 510.0), point.new(-376.3, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(51.0, 510.0), point.new(6.2, 546.0) }, { point.new(178.5, 510.0), point.new(133.7, 546.0) }, { point.new(306.0, 510.0), point.new(261.2, 546.0) }, { point.new(433.5, 510.0), point.new(388.7, 546.0) }, { point.new(561.0, 510.0), point.new(516.2, 546.0) }, { point.new(688.5, 510.0), point.new(643.7, 546.0) }, { point.new(-31.0, -509.7), point.new(-75.8, -473.7) }, { point.new(-158.5, -509.7), point.new(-203.3, -473.7) }, { point.new(-286.0, -509.7), point.new(-330.8, -473.7) }, { point.new(-413.5, -509.7), point.new(-458.3, -473.7) }, { point.new(-541.0, -509.7), point.new(-585.8, -473.7) }, { point.new(96.5, -509.7), point.new(51.7, -473.7) }, { point.new(224.0, -509.7), point.new(179.2, -473.7) }, { point.new(351.5, -509.7), point.new(306.7, -473.7) }, { point.new(479.0, -509.7), point.new(434.2, -473.7) }, { point.new(479.0, -509.7), point.new(434.2, -473.7) }, dummy, dummy, }, { -- 6 { point.new(-76.5, 515.1), point.new(-76.5, 535.5), point.new(-25.5, 525.3), point.new(-25.5, 504.9), point.new(-76.5, 515.1), point.new(-56.1, 494.7), point.new(-25.5, 504.9) }, { point.new(-331.5, 515.1), point.new(-331.5, 535.5), point.new(-280.5, 525.3), point.new(-280.5, 504.9), point.new(-331.5, 515.1), point.new(-311.1, 494.7), point.new(-280.5, 504.9) }, { point.new(178.5, 515.1), point.new(178.5, 535.5), point.new(229.5, 525.3), point.new(229.5, 504.9), point.new(178.5, 515.1), point.new(198.9, 494.7), point.new(229.5, 504.9) }, { point.new(433.5, 515.1), point.new(433.5, 535.5), point.new(484.5, 525.3), point.new(484.5, 504.9), point.new(433.5, 515.1), point.new(453.9, 494.7), point.new(484.5, 504.9) }, { point.new(-235.0, -504.6), point.new(-235.0, -484.2), point.new(-184.0, -494.4), point.new(-184.0, -514.8), point.new(-235.0, -504.6), point.new(-214.6, -525.0), point.new(-184.0, -514.8) }, { point.new(-490.0, -504.6), point.new(-490.0, -484.2), point.new(-439.0, -494.4), point.new(-439.0, -514.8), point.new(-490.0, -504.6), point.new(-469.6, -525.0), point.new(-439.0, -514.8) }, { point.new(20.0, -504.6), point.new(20.0, -484.2), point.new(71.0, -494.4), point.new(71.0, -514.8), point.new(20.0, -504.6), point.new(40.4, -525.0), point.new(71.0, -514.8) }, { point.new(275.0, -504.6), point.new(275.0, -484.2), point.new(326.0, -494.4), point.new(326.0, -514.8), point.new(275.0, -504.6), point.new(295.4, -525.0), point.new(326.0, -514.8) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(504.5, -509.7), point.new(479.1, -489.8) }, { point.new(722.8, 586.3), point.new(678.0, 622.3) }, { point.new(-102.0, 510.0), point.new(-146.8, 546.0) }, { point.new(-229.5, 510.0), point.new(-274.3, 546.0) }, { point.new(-357.0, 510.0), point.new(-401.8, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(25.5, 510.0), point.new(-19.3, 546.0) }, { point.new(153.0, 510.0), point.new(108.2, 546.0) }, { point.new(280.5, 510.0), point.new(235.7, 546.0) }, { point.new(408.0, 510.0), point.new(363.2, 546.0) }, { point.new(535.5, 510.0), point.new(490.7, 546.0) }, { point.new(663.0, 510.0), point.new(618.2, 546.0) }, { point.new(-5.5, -509.7), point.new(-50.3, -473.7) }, { point.new(-133.0, -509.7), point.new(-177.8, -473.7) }, { point.new(-260.5, -509.7), point.new(-305.3, -473.7) }, { point.new(-388.0, -509.7), point.new(-432.8, -473.7) }, { point.new(-515.5, -509.7), point.new(-560.3, -473.7) }, { point.new(122.0, -509.7), point.new(77.2, -473.7) }, { point.new(249.5, -509.7), point.new(204.7, -473.7) }, { point.new(377.0, -509.7), point.new(332.2, -473.7) }, { point.new(504.5, -509.7), point.new(459.7, -473.7) }, { point.new(504.5, -509.7), point.new(459.7, -473.7) }, dummy, dummy, }, { -- 7 { point.new(-102.0, 515.1), point.new(-102.0, 535.5), point.new(-51.0, 525.3), point.new(-51.0, 504.9), point.new(-102.0, 515.1), point.new(-81.6, 494.7), point.new(-51.0, 504.9) }, { point.new(-357.0, 515.1), point.new(-357.0, 535.5), point.new(-306.0, 525.3), point.new(-306.0, 504.9), point.new(-357.0, 515.1), point.new(-336.6, 494.7), point.new(-306.0, 504.9) }, { point.new(153.0, 515.1), point.new(153.0, 535.5), point.new(204.0, 525.3), point.new(204.0, 504.9), point.new(153.0, 515.1), point.new(173.4, 494.7), point.new(204.0, 504.9) }, { point.new(408.0, 515.1), point.new(408.0, 535.5), point.new(459.0, 525.3), point.new(459.0, 504.9), point.new(408.0, 515.1), point.new(428.4, 494.7), point.new(459.0, 504.9) }, { point.new(-209.5, -504.6), point.new(-209.5, -484.2), point.new(-158.5, -494.4), point.new(-158.5, -514.8), point.new(-209.5, -504.6), point.new(-189.1, -525.0), point.new(-158.5, -514.8) }, { point.new(-464.5, -504.6), point.new(-464.5, -484.2), point.new(-413.5, -494.4), point.new(-413.5, -514.8), point.new(-464.5, -504.6), point.new(-444.1, -525.0), point.new(-413.5, -514.8) }, { point.new(45.5, -504.6), point.new(45.5, -484.2), point.new(96.5, -494.4), point.new(96.5, -514.8), point.new(45.5, -504.6), point.new(65.9, -525.0), point.new(96.5, -514.8) }, { point.new(300.5, -504.6), point.new(300.5, -484.2), point.new(351.5, -494.4), point.new(351.5, -514.8), point.new(300.5, -504.6), point.new(320.9, -525.0), point.new(351.5, -514.8) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(535.5, -484.5), point.new(503.3, -458.3) }, { point.new(535.5, -484.5), point.new(516.1, -468.4) }, { point.new(535.5, -484.5), point.new(535.5, -484.5) }, { point.new(722.8, 560.7), point.new(678.0, 596.7) }, { point.new(-127.5, 510.0), point.new(-172.3, 546.0) }, { point.new(-255.0, 510.0), point.new(-299.8, 546.0) }, { point.new(-382.5, 510.0), point.new(-427.3, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(0.0, 510.0), point.new(-44.8, 546.0) }, { point.new(127.5, 510.0), point.new(82.7, 546.0) }, { point.new(255.0, 510.0), point.new(210.2, 546.0) }, { point.new(382.5, 510.0), point.new(337.7, 546.0) }, { point.new(510.0, 510.0), point.new(465.2, 546.0) }, { point.new(637.5, 510.0), point.new(592.7, 546.0) }, { point.new(-107.5, -509.7), point.new(-152.3, -473.7) }, { point.new(-235.0, -509.7), point.new(-279.8, -473.7) }, { point.new(-362.5, -509.7), point.new(-407.3, -473.7) }, { point.new(-490.0, -509.7), point.new(-534.8, -473.7) }, { point.new(-612.0, -510.0), point.new(-656.8, -474.0) }, { point.new(20.0, -509.7), point.new(-24.8, -473.7) }, { point.new(147.5, -509.7), point.new(102.7, -473.7) }, { point.new(275.0, -509.7), point.new(230.2, -473.7) }, { point.new(402.5, -509.7), point.new(357.7, -473.7) }, dummy, }, { -- 8 { point.new(-127.5, 515.1), point.new(-127.5, 535.5), point.new(-76.5, 525.3), point.new(-76.5, 504.9), point.new(-127.5, 515.1), point.new(-107.1, 494.7), point.new(-76.5, 504.9) }, { point.new(-382.5, 515.1), point.new(-382.5, 535.5), point.new(-331.5, 525.3), point.new(-331.5, 504.9), point.new(-382.5, 515.1), point.new(-362.1, 494.7), point.new(-331.5, 504.9) }, { point.new(127.5, 515.1), point.new(127.5, 535.5), point.new(178.5, 525.3), point.new(178.5, 504.9), point.new(127.5, 515.1), point.new(147.9, 494.7), point.new(178.5, 504.9) }, { point.new(382.5, 515.1), point.new(382.5, 535.5), point.new(433.5, 525.3), point.new(433.5, 504.9), point.new(382.5, 515.1), point.new(402.9, 494.7), point.new(433.5, 504.9) }, { point.new(-184.0, -504.6), point.new(-184.0, -484.2), point.new(-133.0, -494.4), point.new(-133.0, -514.8), point.new(-184.0, -504.6), point.new(-163.6, -525.0), point.new(-133.0, -514.8) }, { point.new(-439.0, -504.6), point.new(-439.0, -484.2), point.new(-388.0, -494.4), point.new(-388.0, -514.8), point.new(-439.0, -504.6), point.new(-418.6, -525.0), point.new(-388.0, -514.8) }, { point.new(71.0, -504.6), point.new(71.0, -484.2), point.new(122.0, -494.4), point.new(122.0, -514.8), point.new(71.0, -504.6), point.new(91.4, -525.0), point.new(122.0, -514.8) }, { point.new(326.0, -504.6), point.new(326.0, -484.2), point.new(377.0, -494.4), point.new(377.0, -514.8), point.new(326.0, -504.6), point.new(346.4, -525.0), point.new(377.0, -514.8) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(722.8, 544.3), point.new(678.0, 580.3) }, { point.new(-25.5, 510.0), point.new(-70.3, 546.0) }, { point.new(-153.0, 510.0), point.new(-197.8, 546.0) }, { point.new(-153.0, 510.0), point.new(-197.8, 546.0) }, { point.new(-280.5, 510.0), point.new(-325.3, 546.0) }, { point.new(-408.0, 510.0), point.new(-452.8, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(102.0, 510.0), point.new(57.2, 546.0) }, { point.new(229.5, 510.0), point.new(184.7, 546.0) }, { point.new(357.0, 510.0), point.new(312.2, 546.0) }, { point.new(484.5, 510.0), point.new(439.7, 546.0) }, { point.new(612.0, 510.0), point.new(567.2, 546.0) }, { point.new(-82.0, -509.7), point.new(-126.8, -473.7) }, { point.new(-209.5, -509.7), point.new(-254.3, -473.7) }, { point.new(-337.0, -509.7), point.new(-381.8, -473.7) }, { point.new(-464.5, -509.7), point.new(-509.3, -473.7) }, { point.new(-586.5, -510.0), point.new(-631.3, -474.0) }, { point.new(45.5, -509.7), point.new(0.7, -473.7) }, { point.new(173.0, -509.7), point.new(128.2, -473.7) }, { point.new(300.5, -509.7), point.new(255.7, -473.7) }, { point.new(428.0, -509.7), point.new(383.2, -473.7) }, dummy, dummy, dummy, dummy, }, { -- 9 { point.new(-153.0, 515.1), point.new(-153.0, 535.5), point.new(-102.0, 525.3), point.new(-102.0, 504.9), point.new(-153.0, 515.1), point.new(-132.6, 494.7), point.new(-102.0, 504.9) }, { point.new(-408.0, 515.1), point.new(-408.0, 535.5), point.new(-357.0, 525.3), point.new(-357.0, 504.9), point.new(-408.0, 515.1), point.new(-387.6, 494.7), point.new(-357.0, 504.9) }, { point.new(102.0, 515.1), point.new(102.0, 535.5), point.new(153.0, 525.3), point.new(153.0, 504.9), point.new(102.0, 515.1), point.new(122.4, 494.7), point.new(153.0, 504.9) }, { point.new(357.0, 515.1), point.new(357.0, 535.5), point.new(408.0, 525.3), point.new(408.0, 504.9), point.new(357.0, 515.1), point.new(377.4, 494.7), point.new(408.0, 504.9) }, { point.new(-158.5, -504.6), point.new(-158.5, -484.2), point.new(-107.5, -494.4), point.new(-107.5, -514.8), point.new(-158.5, -504.6), point.new(-138.1, -525.0), point.new(-107.5, -514.8) }, { point.new(-413.5, -504.6), point.new(-413.5, -484.2), point.new(-362.5, -494.4), point.new(-362.5, -514.8), point.new(-413.5, -504.6), point.new(-393.1, -525.0), point.new(-362.5, -514.8) }, { point.new(96.5, -504.6), point.new(96.5, -484.2), point.new(147.5, -494.4), point.new(147.5, -514.8), point.new(96.5, -504.6), point.new(116.9, -525.0), point.new(147.5, -514.8) }, { point.new(351.5, -504.6), point.new(351.5, -484.2), point.new(402.5, -494.4), point.new(402.5, -514.8), point.new(351.5, -504.6), point.new(371.9, -525.0), point.new(402.5, -514.8) }, { point.new(-433.5, 510.0), point.new(-451.5, 524.1) }, { point.new(-561.0, -510.0), point.new(-605.8, -474.0) }, { point.new(465.2, -474.0), point.new(480.7, -458.5) }, { point.new(708.9, 529.8), point.new(664.1, 565.8) }, { point.new(-51.0, 510.0), point.new(-95.8, 546.0) }, { point.new(-178.5, 510.0), point.new(-223.3, 546.0) }, { point.new(-306.0, 510.0), point.new(-350.8, 546.0) }, { point.new(-568.3, 536.0), point.new(-580.3, 546.0) }, { point.new(-598.9, 510.0), point.new(-643.7, 546.0) }, { point.new(76.5, 510.0), point.new(31.7, 546.0) }, { point.new(204.0, 510.0), point.new(159.2, 546.0) }, { point.new(331.5, 510.0), point.new(286.7, 546.0) }, { point.new(459.0, 510.0), point.new(414.2, 546.0) }, { point.new(586.5, 510.0), point.new(541.7, 546.0) }, { point.new(-56.5, -509.7), point.new(-101.3, -473.7) }, { point.new(-184.0, -509.7), point.new(-228.8, -473.7) }, { point.new(-311.5, -509.7), point.new(-356.3, -473.7) }, { point.new(-439.0, -509.7), point.new(-483.8, -473.7) }, { point.new(71.0, -509.7), point.new(26.2, -473.7) }, { point.new(198.5, -509.7), point.new(153.7, -473.7) }, { point.new(326.0, -509.7), point.new(281.2, -473.7) }, { point.new(453.5, -509.7), point.new(408.7, -473.7) }, dummy, dummy, dummy, }, } -- end frames frameCount = 9 -- precalculated for performance/safety -- linesPerFrame = 50 -- same -- Here is where we keep track of our LineItem objects so we can adjust them when necessary storage = {} currentFrameLoopIndex = 0 function runFrame() -- This is math magic to get it to loop through the frames -- It adds one, then divides by the total frames and gives the remainder (also called 'modulo', the '%') local nextFrameLoopIndex = (currentFrameLoopIndex + 1) % frameCount -- Adjust our LineItems to new locations -- We have to +1 because Lua uses 1-index for tables adjustFrame(nextFrameLoopIndex + 1) -- Now set our current frame to be this one currentFrameLoopIndex = nextFrameLoopIndex -- Which frame are we on? -- logprint("Frame: " .. currentFrameLoopIndex + 1) -- make it 1-indexed (instead of 0-indexed) end function adjustFrame(frameIndex) local frame = frames[frameIndex] -- Our storage better have LineItems in it! for key, lineitem in ipairs(storage) do -- everyframe *must* have the same amount lineitem:setGeom(frame[key]) end end function createFrame(frameIndex) local frame = frames[frameIndex] for key, value in ipairs(frame) do -- Create our lineitem with the geometry found in the 'frames' array local lineitem = LineItem.new() -- Set its geometry lineitem:setGeom(frame[key]) -- Add it to the game levelgen:addItem(lineitem) -- Store it for later removal table.insert(storage, lineitem) end end function main() -- Create our first frame createFrame(1) -- create first frame -- Change this for the animation time - 1000 ms == 1 second -- I don't recommend much faster than this as it is *really* network heavy with -- drawing so many lines Timer:scheduleRepeating(runFrame, 300) end