<snapdata remixID="14213594"><project name="ponk_starter" app="Snap! 10.4.6, https://snap.berkeley.edu" version="2"><notes>2025 feb 27b&#xD;pong game in Snap! on ipad!&#xD;&#xD;Suggestions: &#xD;—Gliding paddle bounces off walls.&#xD;—Stage (or control buttons) tell paddle to reverse path up or down.&#xD;—Private blocks of “getReady”, “moveALittle”, “checkWalls”, “bounce”, “checkPaddleHit” (in ball).&#xD;&#xD;Ingredients needed:&#xD;From dark blue ”Motion”:&#xD;  — (x position)&#xD;  — (y position)&#xD;From purple “Looks”:&#xD;  — “switch to costume…”&#xD;From tan “Control”:&#xD;  — “if”&#xD;  — “repeat”&#xD;&#xD;From blue ”Sensing”:&#xD;  — (mouse y)&#xD;  — ([x position 🔽] of [paddle tr 🔽])&#xD;&#xD;From green “Operators”:&#xD;  — “&lt;“&#xD;  — “&gt;”&#xD;&#xD;From orange “Variables”:&#xD;  — Make a variable…&#xD;  — “set…”&#xD;  — “script variables…”&#xD;  — “change …”&#xD;&#xD;&#xD;Optional ingredients:&#xD;From purple “Looks”:&#xD;  — “switch to costume (stretch [ball 🔽] x:(66) y:(100) %)”&#xD;&#xD;Questions for thought:&#xD;— Who should detect paddle-ball impact?&#xD;— What stops the action? Neg score?&#xD;&#xD;Step 1: putting click detection into stage scripts (for paddle movement w/o mouse)&#xD;&#xD;Optional suggestions:&#xD;—Ball starts with slight dY: easier to predict its path. With “wait 0.05” I’m liking dX is -5, dY is -1 at first.&#xD;–Squish while bouncing is summoned by broadcast w/o wait, for speed. Uses script variable so we can tinker with speed.&#xD;—Get point for paddle hit ball.&#xD;—Lose point(s) for paddle misses ball.&#xD;—If paddle hits ball, change not just dX but also dY. Perhaps more dY if hit is farther up or down from center of paddle.&#xD;—Paddle tiltable for angle of hit?!?!&#xD;—Bricks that disappear.&#xD;—Paddle accelerates if you click ahead of it. (More ddY if touch farther from paddle center, or repeatedly?)&#xD;—Ball accelerates after time.&#xD;—More balls. More paddles?&#xD;&#xD;iPad notes:&#xD;—Long click (instead of right click or control click) to get pop-up menus.&#xD;—Long click on scripts window to make new command.&#xD;— Gear on upper left allows adjustment of block size.&#xD;— Box-in-box at left edge above stage screen will give us more room for scripting (smaller stage).&#xD;— iPad text editing doesn’t seem to use virtual-space-bar-as-cursor. Have to click to move cursor.&#xD;— Sometimes the list of command blocks disappears from left side: solution is touch a color category at top left (motion or looks or whatever).&#xD;&#xD;starter &amp; game by M. Roam, 2025</notes><thumbnail>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAAB4CAYAAAB1ovlvAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAoKADAAQAAAABAAAAeAAAAAAeaS0RAAAE2UlEQVR4Ae3dTUhUbRTA8TNOH8RAUC5SLFCKqEUJQVAgJLYJKtrUqgJbt2pTIUGLFhZuaht9GC2CpJVIFIFFWotaRSGGsynLKLBFYUGpzQjPrWuNPmc8lwP2F17ujHPPed5+/NG0fN/cdOlNeEPASaDG6VyORWBGgAAJwVWAAF35OZwAacBVgABd+TmcAGnAVYAAXfk5nABpwFWAAF35OZwAacBVgABd+TmcAGnAVYAAXfk5nABpwFVgievpHP5fCfS8f5j8erev2iSNK+qEABMSHmQiMDUp50duyZU3vVL8/il1xMl1ByTHX0hNmfDEUGBk4p20Pzsng19eV9xKgBVpeGFBAqWPfC2Pj88ZX3k/X4QsSJnhSgKnX1+bN77yLB8BKwny/uoFSj9mlOvbHTXPFyFRTNykEegevT/37ZeGktcJMKHggZXAiy/FuVc9+JC8ToAJBQ+sBEa/pb/d8tfetrrkXQSYUPDASqB55XrpGXtUed2JzclrfBWcUPDASmDX6q3RqwgwmoobYwVaarfKhkJD1O0EGMXETVqBzo3HokYIMIqJm7QCBxva5FTpz3rne+Mb0fMJ8fqCBDqHrktH8WbFHQRYkYYXrAQGxl/K1bd90v32XrKyZfUW2btmB38Ul4jwwEWA3wO6sHNoECDAIMHVRYAAXdg5NAgQYJDg6iJAgC7sHBoECDBIcHURIEAXdg4NAgQYJLi6CBCgCzuHBgECDBJcXQQI0IWdQ4MAAQYJri4CBOjCzqFBgACDBFcXAQJ0YefQIBD1Y5nTIxMyNTAeZlLXfPva1HOeIKARiApwsmNYpnp+/zT7nwfkCnmpOVT/57t4jEC0AJ+Co6m4MQsBAsxClZ3RAgQYTcWNWQgQYBaq7IwWIMBoKm7MQoAAs1BlZ7QAAUZTcWMWAgSYhSo7owUIMJqKG7MQIMAsVNkZLRAdYFHGUksH5VXqOU8QqEYgOsCnS4elS27PnNGVvyN3a55Xcx4zCKQEov4yQnniyI9W2Zc/K1Lokxs/+6V3+QWRz6ldPEFALRAdYHlzqzTLme+XpX/ZRWn6XFAfxgACswWiPwWXB+trG2VP437Z+bVp9h6eI1CVgOoj4OGP26T8D28IWAmoPgJaHcoeBIIAAQYJri4CBgHmXP7FOXRxCET9V/Kni6UfSnry7++55I/G/R9xFgcXvwprgagArQ9lHwJBwOBTcFjFFQG9AAHqzZgwFCBAQ0xW6QUIUG/GhKEAARpiskovQIB6MyYMBQjQEJNVegEC1JsxYShAgIaYrNILEKDejAlDAQI0xGSVXoAA9WZMGAoQoCEmq/QCBKg3Y8JQgAANMVmlFyBAvRkThgIEaIjJKr0AAerNmDAUIEBDTFbpBQhQb8aEoQABGmKySi9AgHozJgwFCNAQk1V6AQLUmzFhKECAhpis0gsQoN6MCUMBAjTEZJVegAD1ZkwYChCgISar9AIEqDdjwlCAAA0xWaUXIEC9GROGAgRoiMkqvQAB6s2YMBQgQENMVukFCFBvxoShAAEaYrJKL0CAejMmDAUI0BCTVXoBAtSbMWEoQICGmKzSCxCg3owJQwECNMRklV6AAPVmTBgKEKAhJqv0AgSoN2PCUIAADTFZpRcgQL0ZE4YCBGiIySq9AAHqzZgwFPgFLMWQlG9TUQcAAAAASUVORK5CYII=</thumbnail><scenes select="1"><scene name="ponk_starter"><notes>2025 feb 27b&#xD;pong game in Snap! on ipad!&#xD;&#xD;Suggestions: &#xD;—Gliding paddle bounces off walls.&#xD;—Stage (or control buttons) tell paddle to reverse path up or down.&#xD;—Private blocks of “getReady”, “moveALittle”, “checkWalls”, “bounce”, “checkPaddleHit” (in ball).&#xD;&#xD;Ingredients needed:&#xD;From dark blue ”Motion”:&#xD;  — (x position)&#xD;  — (y position)&#xD;From purple “Looks”:&#xD;  — “switch to costume…”&#xD;From tan “Control”:&#xD;  — “if”&#xD;  — “repeat”&#xD;&#xD;From blue ”Sensing”:&#xD;  — (mouse y)&#xD;  — ([x position 🔽] of [paddle tr 🔽])&#xD;&#xD;From green “Operators”:&#xD;  — “&lt;“&#xD;  — “&gt;”&#xD;&#xD;From orange “Variables”:&#xD;  — Make a variable…&#xD;  — “set…”&#xD;  — “script variables…”&#xD;  — “change …”&#xD;&#xD;&#xD;Optional ingredients:&#xD;From purple “Looks”:&#xD;  — “switch to costume (stretch [ball 🔽] x:(66) y:(100) %)”&#xD;&#xD;Questions for thought:&#xD;— Who should detect paddle-ball impact?&#xD;— What stops the action? Neg score?&#xD;&#xD;Step 1: putting click detection into stage scripts (for paddle movement w/o mouse)&#xD;&#xD;Optional suggestions:&#xD;—Ball starts with slight dY: easier to predict its path. With “wait 0.05” I’m liking dX is -5, dY is -1 at first.&#xD;–Squish while bouncing is summoned by broadcast w/o wait, for speed. Uses script variable so we can tinker with speed.&#xD;—Get point for paddle hit ball.&#xD;—Lose point(s) for paddle misses ball.&#xD;—If paddle hits ball, change not just dX but also dY. Perhaps more dY if hit is farther up or down from center of paddle.&#xD;—Paddle tiltable for angle of hit?!?!&#xD;—Bricks that disappear.&#xD;—Paddle accelerates if you click ahead of it. (More ddY if touch farther from paddle center, or repeatedly?)&#xD;—Ball accelerates after time.&#xD;—More balls. More paddles?&#xD;&#xD;iPad notes:&#xD;—Long click (instead of right click or control click) to get pop-up menus.&#xD;—Long click on scripts window to make new command.&#xD;— Gear on upper left allows adjustment of block size.&#xD;— Box-in-box at left edge above stage screen will give us more room for scripting (smaller stage).&#xD;— iPad text editing doesn’t seem to use virtual-space-bar-as-cursor. Have to click to move cursor.&#xD;— Sometimes the list of command blocks disappears from left side: solution is touch a color category at top left (motion or looks or whatever).&#xD;&#xD;starter &amp; game by M. Roam, 2025</notes><hidden></hidden><headers></headers><code></code><blocks></blocks><primitives></primitives><stage name="Stage" width="480" height="360" costume="0" color="255,255,255,1" tempo="60" threadsafe="false" penlog="false" volume="100" pan="0" lines="round" ternary="false" hyperops="true" codify="false" inheritance="true" sublistIDs="false" id="6"><pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAB4KADAAQAAAABAAABaAAAAAAHwbojAAAL30lEQVR4Ae3QMQEAAADCoPVPbQwfiEBhwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGDBgwIABAwYMGPgMDI3+AAEeFvcCAAAAAElFTkSuQmCC</pentrails><costumes><list struct="atomic" id="7"></list></costumes><sounds><list struct="atomic" id="8"></list></sounds><variables></variables><blocks></blocks><scripts><script x="37.26190476190473" y="49.714285714285694"><block s="receiveInteraction"><l><option>clicked</option></l><comment w="132" collapsed="false">The background is called the &quot;stage.&quot; This yellow block activates when a mouse or finger clicks on the background. </comment></block></script><script x="192.83333333333337" y="276.83333333333337"><block s="reportMouseY"><comment w="251" collapsed="false">tells us Y of where a mouse or finger clicked</comment></block></script><script x="184.54761904761904" y="229.85714285714266"><block s="reportMouseX"><comment w="251" collapsed="false">tells us X of where a mouse or finger clicked</comment></block></script><script x="185.2619047619047" y="384.33333333333326"><block s="reportAttributeOf"><l><option>x position</option></l><l>paddle</l><comment w="158" collapsed="false">Tells us where the paddle sprite is. For Pong, do we care more about X position or Y position of the paddle?</comment></block></script><script x="168.54761904761904" y="326.16666666666663"><block s="reportMousePosition"><comment w="251" collapsed="false">tells us X,Y of where a mouse or finger clicked</comment></block></script><comment x="356.83333333333337" y="51.9047619047619" w="141.42857142857144" collapsed="false">I suggest checking whether finger-touch (mouse x, mouse y) is above or below paddle, and steer the paddle toward the finger.&#xD;&#xD;In my practice version I, the paddle stops when I click on the paddle.</comment></scripts><sprites select="1"><sprite name="ball" idx="2" x="230" y="110" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="1" color="80,80,80,1" pen="tip" id="21"><costumes><list id="22"><item><ref mediaID="ball_cst_ball"></ref></item></list></costumes><sounds><list struct="atomic" id="23"></list></sounds><blocks></blocks><variables></variables><scripts><script x="150" y="64.80952380952374"><block s="receiveMessage"><l>ballFlat</l><list></list><comment w="90" collapsed="false">for bouncing up and down</comment></block></script><script x="208.57142857142856" y="194.42857142857156"><block s="receiveMessage"><l>ballNarrow</l><list></list><comment w="90" collapsed="false">for bouncing left and right</comment></block></script><script x="44" y="215.09523809523813"><block s="receiveGo"></block></script><comment x="425" y="344" w="90" collapsed="false">Hi! There is code in the &quot;stage&quot; zone that is below and beside the sprites. I would check it.--&gt;</comment></scripts></sprite><sprite name="paddle" idx="1" x="-200" y="9" heading="90" scale="1" volume="100" pan="0" rotation="1" draggable="true" costume="3" color="96.9,46.512,0,1" pen="tip" id="36"><costumes><list id="37"><item><ref mediaID="paddle_cst_paddle"></ref></item><item><ref mediaID="paddle_cst_up"></ref></item><item><ref mediaID="paddle_cst_down"></ref></item></list></costumes><sounds><list struct="atomic" id="38"></list></sounds><blocks></blocks><variables></variables><scripts><script x="35.71428571428572" y="164"><block s="receiveGo"></block></script><script x="41.928571428571416" y="362.8809523809523"><block s="receiveMessage"><l>paddleGoDown</l><list></list></block></script><script x="51.428571428571445" y="443.6904761904764"><block s="receiveMessage"><l>paddleGoUp</l><list></list></block></script><comment x="393" y="328" w="90" collapsed="false">Hi! There is code in the &quot;stage&quot; zone that is below and beside the sprites. I would check it.--&gt;</comment></scripts></sprite></sprites></stage><variables></variables></scene></scenes></project><media name="ponk_starter" app="Snap! 10.4.6, https://snap.berkeley.edu" version="2"><costume name="ball" center-x="22" center-y="23" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACwAAAAuCAYAAABTTPsKAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAALKADAAQAAAABAAAALgAAAACGrrTDAAACDElEQVRYCe2Xv07DMBDGr8CAGDq1pSAxwhvATCQ2QEKqBAIB6qNVgEAUKiHxAGaGN4ARiT9Jpy5MqORCr02a2LmUmNiILE7t893PXz67SQnyuG6dPivNtiix4hRBEydwm7BcaziPitzSIbcjVmoteJIGKAYyA3ebsFppOPeKnOyhbkesVVrwwJ7gB7KBe/tQKR84Xpbk3NjeuaiWL6DLiZ/iBHWPYUMXLNbH3FiDw5KuMHdDcapxYlI2phr4t2FpQQpoOXBRsCnQiR7m+oly62hlDDGF346gVt913nVAZM351hbz9VNww/NiwFC0FcJ0eD/m5yiwabAEH4JO9DDFmdiOFDZVXVJtoLJ1CgfA/SbM0kJMbYnx2xKm24FU9G0xQ/da2p273NPqBf7kfYhkWZWFm84W/+Jj8FktVDiLgQyItU5hvafEzXruz0Qv8PToVSUvcuv+6azz8D9wXl6V5QkUfj4Rc7IAU/qJMQBeuoIPU8BkHMRonYejB6WpL0J/46uZzGOayiF1ETHmYe9SLBJ70W0SSwy4egavbltsFg2LDMgyzhHddOHRoq0xZgVCkwNjRFHQElhEUgMXAa2ARZyYh7EzcvkJvGuxFenT8COokQKLZdMVHsB5h7BQ3XNeNLACngZJGyypFht4ODlvXzNUHdb2b7ID0+yfgmcEpbKTA1MGbLnwE0KGS30BlRqHMdd6cbIAAAAASUVORK5CYII=" mediaID="ball_cst_ball"/><costume name="paddle" center-x="12" center-y="35.01666666666665" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAA/CAYAAAACPvOBAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAE6ADAAQAAAABAAAAPwAAAAAkXpKjAAAAeElEQVRYCe3SuwnAMBAEUdnIFbj/ntyIcAEO/AGnsyC4cA6U7MIGDy37fVyt6Pq7872SW0tW/hHH5jU10wwE/BoAE2LNAg5UmgFMiDULOFBpBjAh1izgQKUZwIRYs4ADlWYAE2LNAg5UmgFMiDULOFD10c4Nuun4AfbcBURzVNi4AAAAAElFTkSuQmCC" mediaID="paddle_cst_paddle"/><costume name="up" center-x="11.5" center-y="34.51666666666665" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABMAAAA/CAYAAAACPvOBAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAE6ADAAQAAAABAAAAPwAAAAAkXpKjAAABqElEQVRYCWMU/n/hNwOVAAvQHBCmCmCiiilQQ0YNIz00R8NsRITZz3kbGL7EVjP83neKaP8yAkuN/+iqv2a3MfyYtgouzOZty8A9vZqBSVYCLoaNgTWd/XvwDEXtn3M3CBoE0oDVMO6ZtQwMzAgpRmF+FMNxcRA6kFT8Wr+PgeHvP7jI3yt3GL43z4LzcTGwhtl7RS8GdK+CDODdOoWBzcsGl1mY3vwxeTncICYZcRTNX9ObGf69fEu8Yd/7FsMVcxbFMoDCj0lcGCz278lLBpCBuABKmKG7iqMwhgHkOnCEQE34tfEAzvBDMQzdVTAXsPk7MHDWpsG4DN/qpjH82nYEzocx4IZhcxVMEYjmasoiGH5ww3C5CtlAQuEHNgyUDJiVZcH6QGEECitsAD38GEUEGRj+I3IjSjoDh8O3HwxsIS7YzIKLgcKMSVKEgSMzDC4GYqAYhiJDBgceZmToxdAyahhGkBAUGA0zgkGEoWA0zDCChKDAaJgRDCIMBaNhhhEkBAVGw4xgEGEoGA0zjCAhKDAaZgSDCEMBVcOM5S3De1YMK8gUAABzfYBPXBfiYgAAAABJRU5ErkJggg==" mediaID="paddle_cst_up"/><costume name="down" center-x="12" center-y="29.01666666666665" image="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABUAAABACAYAAAD1VDzSAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAFaADAAQAAAABAAAAQAAAAAD46FK1AAABjklEQVRYCWNkAIH/+1nANDUIRsc/YMN+Mn7/TQ3zQGawMzAwMv5k2PafWgbCzGGCMahJjxpKzdCEmDUapqNhSuUQGE1SVA5QoHGjYToaplQOgdEkReUAHc2mo0mKDkmKndmHKFvYmXwYQBgbwIyov/+AnQEvbGrhYpyS8QwM//5BMFwUwcA0FCGHk/Xv+WuwHJOMOFY1GIYyKUiBFeJyLTujN9yg70/mw9nIDAxDvz+YgyyPwgaH4X9ID4mrIQNFDpmDYShIEptr4eEIlGfzs2d43+CHbA4KG2fnDOZ9JjkJBhY9NYZfWw6BNYLCEZe3YSbjNJRTIYXh34NnEHWMjMD+K8TbwB4iTC9OGqv3QapRwpaIcES2AaehYEXMCGlmbWW84Ui8ocCMAAPfrk6GMQnSCKcQUMrr1UZABUIa7+ABz+w6ht8HzjCwx/sxvHaTQ+giwMIZ+wT04ZUm2vt4TUGTHDUULUCowB0NUyoEIpoRQydMgUU6AwM1x/uA1RAjuJRi/8/JihYs5HOBzgQAbLlN0yIzcgAAAAAASUVORK5CYII=" mediaID="paddle_cst_down"/></media></snapdata>