<snapdata remixID="8694741"><project name='platformer2' app='Snap! 5.1, http://snap.berkeley.edu' version='1'>
  <notes>Known bug, if you it the side of a platform: it freeze (infinite loop)</notes>
  <thumbnail>data:image/png;base64,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</thumbnail>
  <stage inheritance='true' id='1' volume='100' height='360' tempo='60' lines='round' width='480' name='Stage' sublistIDs='false' threadsafe='false' codify='false' color='255,255,255,1' scheduled='false' pan='0' ternary='false' costume='0'>
    <pentrails>data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAeAAAAFoCAYAAACPNyggAAACtUlEQVR4nO3BMQEAAADCoPVPbQwfoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+Bo3+AAF/RMkcAAAAAElFTkSuQmCC</pentrails>
    <costumes>
      <list struct='atomic' id='2'/>
    </costumes>
    <sounds>
      <list struct='atomic' id='3'/>
    </sounds>
    <variables/>
    <blocks/>
    <scripts/>
    <sprites>
      <watcher scope='Sprite' x='10.000000000000455' color='243,118,29' style='normal' var='hspeed' y='9.999999999999972' hidden='true'/>
      <watcher scope='Sprite' x='10.000000000000455' color='243,118,29' style='normal' var='vspeed' y='46.840002' hidden='true'/>
      <watcher scope='Sprite' x='10.000000000000455' color='243,118,29' style='normal' var='canJump' y='83.68000399999988' hidden='true'/>
      <sprite x='-96.42500975789426' pen='tip' id='11' y='2.302675585284419' name='Sprite(2)' idx='2' volume='100' rotation='1' scale='1' heading='90' draggable='true' color='80,80,80,1' pan='0' costume='1'>
        <costumes>
          <list id='12'>
            <item>
              <costume center-x='117.88937151300911' image='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTE1Ny4xMTA2Mjg0ODY5OTEgNzEzIDQzMS44ODkzNzE1MTMwMDkxIDExNCIgd2lkdGg9IjQzMS44ODkzNzE1MTMwMDkxIiBoZWlnaHQ9IjExNCI+PHJlY3Qgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjMiIGZpbGw9InJnYigyNiw0MSwyNTUpIiBwcm90b3R5cGU9IlZlY3RvclJlY3RhbmdsZSIgd2lkdGg9IjMwMS43MzMyNjg3OTQ3NDg1IiBoZWlnaHQ9IjE3LjQ0MzQ3ODI2MDg2OTU5NyIgeD0iMTE1OC42MTA2Mjg0ODY5OTEiIHk9IjgwMS41OTQwNTAzNDMyNDk1Ii8+PGxpbmUgc3Ryb2tlPSJyZ2IoMCwwLDApIiBzdHJva2UtbGluZWpvaW49Im1pdGVyIiBzdHJva2Utd2lkdGg9IjIwIiBmaWxsPSJub25lIiBwcm90b3R5cGU9IlZlY3RvckxpbmUiIHgxPSIxNDMwIiB5MT0iODE3IiB4Mj0iMTU3OSIgeTI9IjcyMyIvPjwvc3ZnPg==' center-y='-61.5' name='costume1' id='13'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list struct='atomic' id='14'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='previousX'>
            <l>-96.42500975789426</l>
          </variable>
          <variable name='previousY'>
            <l>2.302675585284419</l>
          </variable>
        </variables>
        <scripts>
          <script x='205.5208333333333' y='107.6875'>
            <block s='receiveGo'/>
            <block s='doSetVar'>
              <l>previousX</l>
              <block s='xPosition'/>
            </block>
            <block s='doSetVar'>
              <l>previousY</l>
              <block s='yPosition'/>
            </block>
          </script>
        </scripts>
      </sprite>
      <sprite x='-183.14516129032245' pen='tip' id='27' y='15.07184677419366' name='Sprite(4)' idx='4' volume='100' rotation='1' scale='1' heading='90' draggable='true' color='80,80,80,1' pan='0' costume='1'>
        <costumes>
          <list id='28'>
            <item>
              <costume center-x='37.5' image='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTI1MC41IDY3MC41IDc1IDIyIiB3aWR0aD0iNzUiIGhlaWdodD0iMjIiPjxyZWN0IHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJyZ2IoMjEyLDIzNiwwKSIgcHJvdG90eXBlPSJWZWN0b3JSZWN0YW5nbGUiIHdpZHRoPSI3MiIgaGVpZ2h0PSIxOSIgeD0iMTI1MiIgeT0iNjcyIi8+PC9zdmc+' center-y='11' name='costume1' id='29'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list struct='atomic' id='30'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='previousY'>
            <l>13.07184677419366</l>
          </variable>
        </variables>
        <scripts>
          <script x='17.708333333333336' y='69.79166666666667'>
            <block s='receiveGo'/>
            <block s='doForever'>
              <script>
                <block s='doSetVar'>
                  <l>previousX</l>
                  <block s='xPosition'/>
                </block>
              </script>
            </block>
          </script>
          <script x='225' y='167.70833333333334'>
            <block s='receiveGo'/>
            <block s='doDeclareVariables'>
              <list>
                <l>up</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>up</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
              </block>
            </block>
            <block s='doForever'>
              <script>
                <block s='doSetVar'>
                  <l>previousY</l>
                  <block s='yPosition'/>
                </block>
                <block s='doIfElse'>
                  <block var='up'/>
                  <script>
                    <block s='changeYPosition'>
                      <l>2</l>
                    </block>
                  </script>
                  <script>
                    <block s='changeYPosition'>
                      <l>-2</l>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportGreaterThan'>
                    <block s='yPosition'/>
                    <l>85</l>
                  </block>
                  <script>
                    <block s='doSetVar'>
                      <l>up</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportGreaterThan'>
                    <l>-18</l>
                    <block s='yPosition'/>
                  </block>
                  <script>
                    <block s='doSetVar'>
                      <l>up</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>true</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher scope='Sprite(3)' x='7.741935483870748' color='243,118,29' style='normal' var='previousX' y='7.741935483870968' hidden='true'/>
      <watcher scope='Sprite(2)' x='7.741935483870748' color='243,118,29' style='normal' var='previousX' y='36.263227354838705' hidden='true'/>
      <watcher x='7.741935483870748' color='243,118,29' style='normal' var='previousX' y='64.78451922580643' hidden='true'/>
      <watcher scope='Sprite(4)' x='7.741935483870748' color='243,118,29' style='normal' var='previousY' y='93.30581109677416' hidden='true'/>
      <watcher scope='Sprite(3)' x='7.741935483870748' color='243,118,29' style='normal' var='previousY' y='121.8271029677419' hidden='true'/>
      <watcher scope='Sprite(2)' x='7.741935483870748' color='243,118,29' style='normal' var='previousY' y='150.34839483870962' hidden='true'/>
      <sprite x='-36.69354838708841' pen='tip' id='101' y='-18.193548387096712' name='Sprite(3)' idx='3' volume='100' rotation='1' scale='1' heading='90' draggable='true' color='80,80,80,1' pan='0' costume='1'>
        <costumes>
          <list id='102'>
            <item>
              <costume center-x='37.5' image='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTI1MC41IDY3MC41IDc1IDIyIiB3aWR0aD0iNzUiIGhlaWdodD0iMjIiPjxyZWN0IHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJyZ2IoMjEsMjEwLDApIiBwcm90b3R5cGU9IlZlY3RvclJlY3RhbmdsZSIgd2lkdGg9IjcyIiBoZWlnaHQ9IjE5IiB4PSIxMjUyIiB5PSI2NzIiLz48L3N2Zz4=' center-y='11' name='costume1' id='103'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list struct='atomic' id='104'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='previousX'>
            <l>-34.69354838708841</l>
          </variable>
          <variable name='previousY'>
            <l>-18.193548387096712</l>
          </variable>
        </variables>
        <scripts>
          <script x='374.4791666666667' y='138.02083333333334'>
            <block s='receiveGo'/>
            <block s='doForever'>
              <script>
                <block s='doSetVar'>
                  <l>previousY</l>
                  <block s='yPosition'/>
                </block>
              </script>
            </block>
          </script>
          <script x='87.29166666666663' y='142.0625'>
            <block s='receiveGo'/>
            <block s='doDeclareVariables'>
              <list>
                <l>right</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>right</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
              </block>
            </block>
            <block s='doForever'>
              <script>
                <block s='doSetVar'>
                  <l>previousX</l>
                  <block s='xPosition'/>
                </block>
                <block s='doIfElse'>
                  <block var='right'/>
                  <script>
                    <block s='changeXPosition'>
                      <l>2</l>
                    </block>
                  </script>
                  <script>
                    <block s='changeXPosition'>
                      <l>-2</l>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportGreaterThan'>
                    <block s='xPosition'/>
                    <l>180</l>
                  </block>
                  <script>
                    <block s='doSetVar'>
                      <l>right</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportGreaterThan'>
                    <l>-102</l>
                    <block s='xPosition'/>
                  </block>
                  <script>
                    <block s='doSetVar'>
                      <l>right</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>true</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
              </script>
            </block>
          </script>
        </scripts>
      </sprite>
      <watcher scope='Sprite(5)' x='10' color='243,118,29' style='normal' var='previousY' y='10' hidden='true'/>
      <sprite x='-172.5' pen='tip' id='170' y='-122.5' name='Sprite' idx='1' volume='100' rotation='1' scale='1' heading='90' draggable='true' color='80,80,80,1' pan='0' costume='1'>
        <costumes>
          <list id='171'>
            <item>
              <costume center-x='13.5' image='data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHNuYXA9Imh0dHA6Ly9zbmFwLmJlcmtlbGV5LmVkdS9ydW4iIHZlcnNpb249IjEuMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ieE1pbllNaW4gbWVldCIgdmlld0JveD0iMTI1MS41IDYzNy41IDI3IDI3IiB3aWR0aD0iMjciIGhlaWdodD0iMjciPjxlbGxpcHNlIHN0cm9rZT0icmdiKDAsMCwwKSIgc3Ryb2tlLWxpbmVqb2luPSJtaXRlciIgc3Ryb2tlLXdpZHRoPSIzIiBmaWxsPSJyZ2IoMjQyLDAsNDApIiBwcm90b3R5cGU9IlZlY3RvckVsbGlwc2UiIGN4PSIxMjY1IiBjeT0iNjUxIiByeD0iMTIiIHJ5PSIxMiIvPjwvc3ZnPg==' center-y='13.5' name='costume1' id='172'/>
            </item>
          </list>
        </costumes>
        <sounds>
          <list struct='atomic' id='173'/>
        </sounds>
        <blocks/>
        <variables>
          <variable name='hspeed'>
            <l>6.5</l>
          </variable>
          <variable name='vspeed'>
            <l>0</l>
          </variable>
          <variable name='canJump'>
            <bool>true</bool>
          </variable>
        </variables>
        <scripts>
          <script x='15.625' y='5.208333333333334'>
            <block s='receiveGo'/>
            <block s='doDeclareVariables'>
              <list>
                <l>platforms</l>
                <l>onFloor</l>
              </list>
            </block>
            <block s='doSetVar'>
              <l>onFloor</l>
              <block s='reportBoolean'>
                <l>
                  <bool>true</bool>
                </l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>platforms</l>
              <block s='reportNewList'>
                <list>
                  <block s='reportObject'>
                    <l>Sprite(2)</l>
                  </block>
                  <block s='reportObject'>
                    <l>Sprite(3)</l>
                  </block>
                  <block s='reportObject'>
                    <l>Sprite(4)</l>
                  </block>
                </list>
              </block>
            </block>
            <block s='doSetVar'>
              <l>canJump</l>
              <block s='reportBoolean'>
                <l>
                  <bool>false</bool>
                </l>
              </block>
            </block>
            <block s='doSetVar'>
              <l>hspeed</l>
              <l>0</l>
            </block>
            <block s='doSetVar'>
              <l>vspeed</l>
              <l>0</l>
            </block>
            <block s='doForever'>
              <script>
                <block s='doDeclareVariables'>
                  <list>
                    <l>previousX</l>
                    <l>previousY</l>
                  </list>
                </block>
                <block s='doSetVar'>
                  <l>previousX</l>
                  <block s='xPosition'/>
                </block>
                <block s='doSetVar'>
                  <l>previousY</l>
                  <block s='yPosition'/>
                </block>
                <block s='doChangeVar'>
                  <l>vspeed</l>
                  <l>-1</l>
                </block>
                <block s='doChangeVar'>
                  <l>hspeed</l>
                  <block s='reportProduct'>
                    <l>0.5</l>
                    <block s='reportDifference'>
                      <l>0</l>
                      <custom-block s='signum %n'>
                        <block var='hspeed'/>
                      </custom-block>
                    </block>
                  </block>
                </block>
                <block s='changeYPosition'>
                  <block var='vspeed'/>
                </block>
                <block s='changeXPosition'>
                  <block var='hspeed'/>
                </block>
                <block s='doSetVar'>
                  <l>vspeed</l>
                  <custom-block s='clamp %n between %n and %n'>
                    <block var='vspeed'/>
                    <l>-16</l>
                    <l>16</l>
                  </custom-block>
                </block>
                <block s='doWarp'>
                  <script>
                    <block s='doForEach'>
                      <l>platform</l>
                      <block var='platforms'/>
                      <script>
                        <block s='doIf'>
                          <block s='reportTouchingObject'>
                            <block var='platform'/>
                          </block>
                          <script>
                            <block s='setYPosition'>
                              <block var='previousY'/>
                            </block>
                            <block s='doIf'>
                              <block s='reportGreaterThan'>
                                <l>0</l>
                                <block var='vspeed'/>
                              </block>
                              <script>
                                <block s='doSetVar'>
                                  <l>canJump</l>
                                  <block s='reportBoolean'>
                                    <l>
                                      <bool>true</bool>
                                    </l>
                                  </block>
                                </block>
                                <block s='doSetVar'>
                                  <l>onFloor</l>
                                  <block s='reportBoolean'>
                                    <l>
                                      <bool>true</bool>
                                    </l>
                                  </block>
                                </block>
                              </script>
                            </block>
                            <block s='doSetVar'>
                              <l>vspeed</l>
                              <l>0</l>
                            </block>
                            <block s='changeXPosition'>
                              <block s='reportProduct'>
                                <l>2</l>
                                <block s='reportAskFor'>
                                  <block var='platform'/>
                                  <block s='reifyReporter'>
                                    <autolambda>
                                      <custom-block s='speedX'/>
                                    </autolambda>
                                    <list/>
                                  </block>
                                  <list/>
                                </block>
                              </block>
                            </block>
                            <block s='changeYPosition'>
                              <block s='reportProduct'>
                                <l>2</l>
                                <block s='reportAskFor'>
                                  <block var='platform'/>
                                  <block s='reifyReporter'>
                                    <autolambda>
                                      <custom-block s='speedY'/>
                                    </autolambda>
                                    <list/>
                                  </block>
                                  <list/>
                                </block>
                              </block>
                            </block>
                            <block s='doWarp'>
                              <script>
                                <block s='doUntil'>
                                  <block s='reportTouchingObject'>
                                    <block var='platform'/>
                                  </block>
                                  <script>
                                    <block s='changeYPosition'>
                                      <l>-0.5</l>
                                    </block>
                                  </script>
                                </block>
                                <block s='changeYPosition'>
                                  <l>0.5</l>
                                </block>
                              </script>
                            </block>
                          </script>
                        </block>
                      </script>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportKeyPressed'>
                    <l>
                      <option>d</option>
                    </l>
                  </block>
                  <script>
                    <block s='doChangeVar'>
                      <l>hspeed</l>
                      <l>2</l>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportKeyPressed'>
                    <l>
                      <option>q</option>
                    </l>
                  </block>
                  <script>
                    <block s='doChangeVar'>
                      <l>hspeed</l>
                      <l>-2</l>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportAnd'>
                    <block s='reportKeyPressed'>
                      <l>
                        <option>space</option>
                      </l>
                    </block>
                    <block var='canJump'/>
                  </block>
                  <script>
                    <block s='doSetVar'>
                      <l>canJump</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                    <block s='changeYPosition'>
                      <l>1</l>
                    </block>
                    <block s='doSetVar'>
                      <l>vspeed</l>
                      <l>16</l>
                    </block>
                    <block s='doSetVar'>
                      <l>canJump</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                    <block s='doSetVar'>
                      <l>onFloor</l>
                      <block s='reportBoolean'>
                        <l>
                          <bool>false</bool>
                        </l>
                      </block>
                    </block>
                  </script>
                </block>
                <block s='doIf'>
                  <block s='reportTouchingObject'>
                    <l>Sprite(2)</l>
                  </block>
                  <script>
                    <block s='doWarp'>
                      <script>
                        <block s='doUntil'>
                          <block s='reportNot'>
                            <block s='reportTouchingObject'>
                              <l>Sprite(2)</l>
                            </block>
                          </block>
                          <script>
                            <block s='changeYPosition'>
                              <l>1</l>
                            </block>
                          </script>
                        </block>
                      </script>
                    </block>
                  </script>
                </block>
                <block s='doSetVar'>
                  <l>hspeed</l>
                  <custom-block s='clamp %n between %n and %n'>
                    <block var='hspeed'/>
                    <l>-8</l>
                    <l>8</l>
                  </custom-block>
                </block>
              </script>
            </block>
          </script>
        </scripts>
      </sprite>
    </sprites>
  </stage>
  <hidden/>
  <headers/>
  <code/>
  <blocks>
    <block-definition s='signum %&apos;number&apos;' category='operators' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doReport'>
          <block s='reportIfElse'>
            <block s='reportGreaterThan'>
              <block var='hspeed'/>
              <l>0</l>
            </block>
            <l>1</l>
            <block s='reportIfElse'>
              <block s='reportLessThan'>
                <block var='hspeed'/>
                <l>0</l>
              </block>
              <l>-1</l>
              <l>0</l>
            </block>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='clamp %&apos;x&apos; between %&apos;a&apos; and %&apos;b&apos;' category='control' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs>
        <input type='%n'/>
        <input type='%n'/>
        <input type='%n'/>
      </inputs>
      <script>
        <block s='doIf'>
          <block s='reportGreaterThan'>
            <block var='x'/>
            <block var='b'/>
          </block>
          <script>
            <block s='doReport'>
              <block var='b'/>
            </block>
          </script>
        </block>
        <block s='doIf'>
          <block s='reportLessThan'>
            <block var='x'/>
            <block var='a'/>
          </block>
          <script>
            <block s='doReport'>
              <block var='a'/>
            </block>
          </script>
        </block>
        <block s='doReport'>
          <block var='x'/>
        </block>
      </script>
    </block-definition>
    <block-definition s='speedX' category='motion' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportDifference'>
            <block s='xPosition'/>
            <block var='previousX'/>
          </block>
        </block>
      </script>
    </block-definition>
    <block-definition s='speedY' category='motion' type='reporter'>
      <header/>
      <code/>
      <translations/>
      <inputs/>
      <script>
        <block s='doReport'>
          <block s='reportDifference'>
            <block s='yPosition'/>
            <block var='previousY'/>
          </block>
        </block>
      </script>
    </block-definition>
  </blocks>
  <variables>
    <variable name='previousX'>
      <l>-183.14516129032245</l>
    </variable>
  </variables>
</project><media name="platformer2" app="Snap! 5.1, http://snap.berkeley.edu" version="1"></media></snapdata>