what done?

This commit is contained in:
=
2016-09-27 15:43:48 +02:00
parent 9d0401496f
commit 8218977825
1443 changed files with 93549 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<levelPack name="Levelpack 1">
<levels>
<level goalX="24" number="1">
<terrain endX="27" height="-0.6">
<gaps>
<gap leftEdge="4" rightEdge="5"/>
<gap leftEdge="12" rightEdge="13"/>
<gap leftEdge="16" rightEdge="16.5"/>
<gap leftEdge="16.8" rightEdge="17.3"/>
</gaps>
</terrain>
<obstacles>
<obstacle height="0.3" leftEdge="9" rightEdge="10" type="default"/>
<obstacle height="0.2" leftEdge="13" rightEdge="14" type="default"/>
<obstacle height="0.3" leftEdge="18" rightEdge="20" type="default"/>
<obstacle height="0.5" leftEdge="20" rightEdge="21" type="default"/>
<obstacle height="0.1" leftEdge="21" rightEdge="22" type="default"/>
</obstacles>
</level>
<level goalX="21.25" number="2">
<terrain endX="21" height="-0.6">
<gaps>
<gap leftEdge="1" rightEdge="1.7" />
<gap leftEdge="8.9" rightEdge="9.6" />
<gap leftEdge="9.7" rightEdge="10.4" />
<gap leftEdge="15" rightEdge="16.1" />
</gaps>
</terrain>
<obstacles>
<obstacle height="0.3" leftEdge="1.73" rightEdge="2.3" type="default" />
<obstacle height="0.5" leftEdge="2.9" rightEdge="3.6" type="default" />
<obstacle height="0.3" leftEdge="5" rightEdge="7" type="default" />
<obstacle height="0.52" leftEdge="7.1" rightEdge="8.5" type="default" />
<obstacle height="0.5" leftEdge="11.4" rightEdge="12.8" type="default" />
<obstacle height="0.5" leftEdge="13.9" rightEdge="14.2" type="default" />
<obstacle height="0.24" leftEdge="16.8" rightEdge="18.3" type="default" />
<obstacle height="0.35" leftEdge="18.30001" rightEdge="18.8" type="default" />
<obstacle height="0.54" leftEdge="18.80001" rightEdge="19.4" type="default" />
<obstacle height="0.41" leftEdge="19.40001" rightEdge="20.5" type="default" />
</obstacles>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,196 @@
<levelPack name="Grasslands" id="1">
<levels class="java.util.ArrayList">
<level number="1" goalX="22.606565">
<terrain height="-0.6" endX="25.106565">
<gaps class="java.util.ArrayList">
<gap leftEdge="5.3500023" rightEdge="5.950004"/>
<gap leftEdge="15.353701" rightEdge="15.7197"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="10.873024" rightEdge="11.427025" height="0.304" y="-0.448" attachedToGround="true"/>
<obstacleData type="" leftEdge="14.860029" rightEdge="15.360029" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.096622" rightEdge="22.096622" height="0.25" y="-0.47500002" attachedToGround="true"/>
<obstacleData type="" leftEdge="22.166656" rightEdge="22.666656" height="0.639" y="-0.28050002" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="11.159975" y="-0.15999995" width="0.25" height="0.25"/>
<starData index="2" x="15.106676" y="-0.14000002" width="0.25" height="0.25"/>
<starData index="3" x="22.043303" y="-0.20666662" width="0.25" height="0.25"/>
</stars>
</level>
<level number="2" goalX="22.366613">
<terrain height="-0.6" endX="25.36662">
<gaps class="java.util.ArrayList">
<gap leftEdge="4.863002" rightEdge="5.6970024"/>
<gap leftEdge="10.581718" rightEdge="11.33174"/>
<gap leftEdge="15.4032545" rightEdge="16.05025"/>
<gap leftEdge="19.54848" rightEdge="20.111479"/>
<gap leftEdge="20.609486" rightEdge="21.050488"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="3.3708305" rightEdge="4.8758307" height="0.2" y="-0.5" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.334382" rightEdge="11.912381" height="0.319" y="-0.44050002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.4509985" rightEdge="3.3089983" height="0.275" y="-0.46250004" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.6111658" rightEdge="2.3221657" height="0.338" y="-0.43100002" attachedToGround="true"/>
<obstacleData type="" leftEdge="16.037212" rightEdge="16.856213" height="0.435" y="-0.38250002" attachedToGround="true"/>
<obstacleData type="" leftEdge="16.873312" rightEdge="17.873312" height="0.367" y="-0.41650003" attachedToGround="true"/>
<obstacleData type="" leftEdge="17.884027" rightEdge="18.896029" height="0.327" y="-0.4365" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.046677" rightEdge="19.546677" height="0.884" y="-0.15800002" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.113306" rightEdge="20.613306" height="0.5" y="-0.35000002" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="10.94335" y="-0.61999965" width="0.25" height="0.25"/>
<starData index="2" x="15.7367" y="0.3199999" width="0.25" height="0.25"/>
<starData index="3" x="18.893328" y="-0.12666662" width="0.25" height="0.25"/>
</stars>
</level>
<level number="3" goalX="19.200012">
<terrain height="-0.6" endX="18.900013">
<gaps class="java.util.ArrayList">
<gap leftEdge="2.3799982" rightEdge="2.9799984"/>
<gap leftEdge="4.825835" rightEdge="5.200835"/>
<gap leftEdge="7.5069995" rightEdge="8.013"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="8.00651" rightEdge="8.67351" height="0.319" y="-0.44050002" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.703371" rightEdge="12.7233715" height="0.299" y="-0.4505" attachedToGround="true"/>
<obstacleData type="" leftEdge="15.164396" rightEdge="15.762396" height="0.466" y="-0.36700004" attachedToGround="true"/>
<obstacleData type="" leftEdge="15.891703" rightEdge="16.901701" height="0.402" y="-0.39900002" attachedToGround="true"/>
<obstacleData type="" leftEdge="16.998373" rightEdge="18.248373" height="0.353" y="-0.42350003" attachedToGround="true"/>
<obstacleData type="" leftEdge="18.396694" rightEdge="18.896694" height="0.789" y="-0.20550004" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="2.6399994" y="0.10666669" width="0.25" height="0.25"/>
<starData index="2" x="8.793346" y="-0.4733331" width="0.25" height="0.25"/>
<starData index="3" x="12.253348" y="-0.13333318" width="0.25" height="0.25"/>
</stars>
</level>
<level number="4" goalX="23.639889">
<terrain height="-0.6" endX="23.639889">
<gaps class="java.util.ArrayList">
<gap leftEdge="15.903543" rightEdge="17.656546"/>
<gap leftEdge="20.776228" rightEdge="22.557226"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="1.948999" rightEdge="2.5509992" height="0.354" y="-0.42300004" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.592169" rightEdge="8.321169" height="0.408" y="-0.39600003" attachedToGround="true"/>
<obstacleData type="" leftEdge="8.408872" rightEdge="11.137872" height="0.803" y="-0.19850004" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.196732" rightEdge="14.196732" height="0.5" y="0.3966666" attachedToGround="false"/>
<obstacleData type="" leftEdge="14.865067" rightEdge="17.775066" height="0.299" y="0.48666632" attachedToGround="false"/>
<obstacleData type="" leftEdge="17.871216" rightEdge="18.522217" height="1.415" y="0.10749996" attachedToGround="true"/>
<obstacleData type="" leftEdge="18.612877" rightEdge="20.853878" height="0.231" y="0.55999976" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="11.560022" y="-0.26000002" width="0.25" height="0.25"/>
<starData index="2" x="16.310017" y="0.80666655" width="0.25" height="0.25"/>
<starData index="3" x="21.629972" y="-0.12" width="0.25" height="0.25"/>
</stars>
</level>
<level number="5" goalX="16.249996">
<terrain height="-0.6" endX="18.249996">
<gaps class="java.util.ArrayList">
<gap leftEdge="6.810508" rightEdge="8.329505"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="2.3669987" rightEdge="2.7929988" height="1.074" y="-0.06300002" attachedToGround="true"/>
<obstacleData type="" leftEdge="12.000204" rightEdge="13.373203" height="0.946" y="-0.12700003" attachedToGround="true"/>
<obstacleData type="" leftEdge="13.539708" rightEdge="15.093709" height="0.725" y="-0.23750001" attachedToGround="true"/>
<obstacleData type="" leftEdge="15.29672" rightEdge="15.79672" height="1.539" y="0.1695" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="2.5799987" y="0.62" width="0.25" height="0.25"/>
<starData index="2" x="7.5566673" y="0.26000008" width="0.25" height="0.25"/>
<starData index="3" x="11.85002" y="-0.4533334" width="0.25" height="0.25"/>
</stars>
</level>
<level number="6" goalX="27.539873">
<terrain height="-0.6" endX="26.939873">
<gaps class="java.util.ArrayList">
<gap leftEdge="4.026832" rightEdge="5.179832"/>
<gap leftEdge="9.292203" rightEdge="10.061208"/>
<gap leftEdge="10.566699" rightEdge="11.166699"/>
<gap leftEdge="16.414387" rightEdge="16.75238"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="1.1131666" rightEdge="1.5001667" height="0.941" y="-0.12950003" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.6498328" rightEdge="1.7768329" height="0.902" y="-0.14900002" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.9103338" rightEdge="2.1163337" height="0.838" y="-0.18100002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.224499" rightEdge="2.415499" height="0.735" y="-0.23250002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.500666" rightEdge="2.6726658" height="0.613" y="-0.29350004" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.731666" rightEdge="3.961666" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.1713314" rightEdge="5.955332" height="0.186" y="-0.507" attachedToGround="true"/>
<obstacleData type="" leftEdge="10.060041" rightEdge="10.560041" height="0.843" y="-0.17850003" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.506636" rightEdge="20.806635" height="0.558" y="-0.321" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.5105" rightEdge="20.8095" height="0.286" y="0.9333331" attachedToGround="false"/>
<obstacleData type="" leftEdge="14.943075" rightEdge="16.437075" height="0.231" y="-0.48450002" attachedToGround="true"/>
<obstacleData type="" leftEdge="25.285612" rightEdge="26.707613" height="0.599" y="-0.30050004" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="4.586666" y="-0.5866665" width="0.25" height="0.25"/>
<starData index="2" x="10.696706" y="-0.46666694" width="0.25" height="0.25"/>
<starData index="3" x="20.64665" y="0.39999995" width="0.25" height="0.25"/>
</stars>
</level>
<level number="7" goalX="25.473257">
<terrain height="-0.6" endX="28.473238">
<gaps class="java.util.ArrayList">
<gap leftEdge="7.3475013" rightEdge="9.372511"/>
<gap leftEdge="9.8666935" rightEdge="10.466708"/>
<gap leftEdge="15.304541" rightEdge="16.335531"/>
<gap leftEdge="19.761318" rightEdge="20.305317"/>
<gap leftEdge="24.703619" rightEdge="25.36962"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="2.9593315" rightEdge="3.9473314" height="0.313" y="-0.01333334" attachedToGround="false"/>
<obstacleData type="" leftEdge="3.987667" rightEdge="5.565667" height="0.272" y="-0.046666723" attachedToGround="false"/>
<obstacleData type="" leftEdge="8.7657" rightEdge="10.8077" height="0.095" y="-0.5525" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.595845" rightEdge="6.950845" height="0.19" y="-0.073333286" attachedToGround="false"/>
<obstacleData type="" leftEdge="15.055702" rightEdge="16.537703" height="0.218" y="-0.49100003" attachedToGround="true"/>
<obstacleData type="" leftEdge="6.992841" rightEdge="7.353841" height="0.558" y="-0.321" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.35432" rightEdge="19.75232" height="0.762" y="-0.21900001" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.963318" rightEdge="20.463318" height="0.5" y="0.7533332" attachedToGround="false"/>
<obstacleData type="" leftEdge="20.287636" rightEdge="21.245636" height="0.435" y="-0.38250002" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.503141" rightEdge="21.190142" height="0.5" y="0.42999995" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="6.6800065" y="-0.38666666" width="0.25" height="0.25"/>
<starData index="2" x="15.820039" y="-0.7866664" width="0.25" height="0.25"/>
<starData index="3" x="20.679989" y="0.85333335" width="0.25" height="0.25"/>
</stars>
</level>
<level number="8" goalX="20.523335">
<terrain height="-0.6" endX="23.523335">
<gaps class="java.util.ArrayList">
<gap leftEdge="-1.3473341" rightEdge="2.240666"/>
<gap leftEdge="3.05333" rightEdge="7.05333"/>
<gap leftEdge="11.257536" rightEdge="14.282536"/>
<gap leftEdge="15.696874" rightEdge="16.10987"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="-0.9233334" rightEdge="2.0766666" height="0.136" y="-0.90666574" attachedToGround="false"/>
<obstacleData type="" leftEdge="4.979664" rightEdge="5.9736643" height="0.286" y="-0.89333284" attachedToGround="false"/>
<obstacleData type="" leftEdge="3.057998" rightEdge="3.9619977" height="0.299" y="-0.81333286" attachedToGround="false"/>
<obstacleData type="" leftEdge="3.9729972" rightEdge="4.9669976" height="0.286" y="-0.8533326" attachedToGround="false"/>
<obstacleData type="" leftEdge="5.997839" rightEdge="6.8288393" height="0.231" y="-0.9199996" attachedToGround="false"/>
<obstacleData type="" leftEdge="11.854198" rightEdge="13.119198" height="1.02" y="0.023333304" attachedToGround="false"/>
<obstacleData type="" leftEdge="13.141195" rightEdge="13.792196" height="0.639" y="0.18666656" attachedToGround="false"/>
<obstacleData type="" leftEdge="14.541548" rightEdge="15.698547" height="0.422" y="-0.38900003" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.074863" rightEdge="20.851864" height="1.02" y="-0.09000003" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.280017" rightEdge="14.280017" height="0.218" y="-1.1066662" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="2.6366663" y="0.44666678" width="0.25" height="0.25"/>
<starData index="2" x="14.12338" y="-0.79999965" width="0.25" height="0.25"/>
<starData index="3" x="20.230003" y="0.5599996" width="0.25" height="0.25"/>
</stars>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,50 @@
<levelPack name="Testcave" id="0" terrainHeight="0.306" ceilingHeight="0.538">
<levels class="java.util.ArrayList">
<level number="1" goalX="32.129963" startSpeed="0.25" endSpeed="0.7">
<terrainTiles class="entities.tileLists.Terrain">
<tile x="-1.6499999" width="2.7000003"/>
<tile x="0.6273333" width="0.6546662"/>
<tile x="5.837672" width="5.558014"/>
</terrainTiles>
<ceilingTiles class="entities.tileLists.Ceiling">
<tile x="-0.41333365" width="5.1733327"/>
<tile x="7.895005" width="1.4433479"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="9.0" rightEdge="10.0" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="13.0" rightEdge="14.0" height="0.2" y="-0.5" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.52634" rightEdge="20.580341" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.580004" rightEdge="21.580004" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="21.580002" rightEdge="22.580002" height="0.1" y="-0.55" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.6033329" rightEdge="2.103333" height="0.5" y="-0.18399999" attachedToGround="true"/>
<obstacleData type="default" leftEdge="-0.25" rightEdge="0.25" height="0.5" y="0.0" attachedToGround="false"/>
<obstacleData type="default" leftEdge="-0.25" rightEdge="0.25" height="0.5" y="0.0" attachedToGround="false"/>
<obstacleData type="default" leftEdge="-0.25" rightEdge="0.25" height="0.5" y="0.0" attachedToGround="true"/>
<obstacleData type="default" leftEdge="-0.25" rightEdge="0.25" height="0.5" y="0.0" attachedToGround="false"/>
<obstacleData type="default" leftEdge="-0.25" rightEdge="0.25" height="0.5" y="0.0" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="10.163283" y="-0.05999978" width="0.25" height="0.25"/>
<starData index="2" x="19.366709" y="-0.046666652" width="0.25" height="0.25"/>
<starData index="3" x="21.73662" y="0.05333341" width="0.25" height="0.25"/>
</stars>
</level>
<level number="3" goalX="8.616679" startSpeed="0.19" endSpeed="0.44">
<terrainTiles class="entities.tileLists.Terrain">
<tile x="-1.0226668" width="3.9546664"/>
<tile x="5.837672" width="5.5580134"/>
</terrainTiles>
<ceilingTiles class="entities.tileLists.Ceiling">
<tile x="-0.43666697" width="5.126666"/>
<tile x="7.8716717" width="1.4900146"/>
</ceilingTiles>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="1.3278332" rightEdge="3.098833" height="0.5" y="-0.2733331" attachedToGround="false"/>
<obstacleData type="" leftEdge="4.0364995" rightEdge="6.2235" height="0.109" y="0.61333334" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData index="1" x="6.0466657" y="0.83333325" width="0.25" height="0.25"/>
</stars>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,106 @@
<levelPack name="First Pack">
<levels class="java.util.ArrayList">
<level number="1" goalX="22.259893">
<terrain height="-0.6" endX="23.259893">
<gaps class="java.util.ArrayList">
<gap leftEdge="5.3500023" rightEdge="5.950004"/>
<gap leftEdge="15.353701" rightEdge="15.7197"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="10.873024" rightEdge="11.427025" height="0.304" y="-0.448" attachedToGround="true"/>
<obstacleData type="" leftEdge="14.860029" rightEdge="15.360029" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.383318" rightEdge="21.383318" height="0.25" y="-0.47500002" attachedToGround="true"/>
<obstacleData type="" leftEdge="21.586645" rightEdge="22.086645" height="0.5" y="-0.35000002" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="11.150023" y="-0.1200001" width="0.25" height="0.25"/>
<starData x="15.120053" y="-0.12666668" width="0.25" height="0.25"/>
<starData x="21.42998" y="-0.20666662" width="0.25" height="0.25"/>
</stars>
</level>
<level number="2" goalX="16.220043">
<terrain height="-0.6" endX="19.220049">
<gaps class="java.util.ArrayList">
<gap leftEdge="4.8896685" rightEdge="5.723669"/>
<gap leftEdge="10.581718" rightEdge="11.33174"/>
<gap leftEdge="15.4032545" rightEdge="16.05025"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="3.3708305" rightEdge="4.8758307" height="0.2" y="-0.5" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.334382" rightEdge="11.912381" height="0.319" y="-0.44050002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.4509985" rightEdge="3.3089983" height="0.275" y="-0.46250004" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.6111658" rightEdge="2.3221657" height="0.338" y="-0.43100002" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="5.310005" y="-0.61333305" width="0.25" height="0.25"/>
<starData x="10.976699" y="-0.6333332" width="0.25" height="0.25"/>
<starData x="15.743367" y="0.31333324" width="0.25" height="0.25"/>
</stars>
</level>
<level number="3" goalX="19.146683">
<terrain height="-0.6" endX="18.846684">
<gaps class="java.util.ArrayList">
<gap leftEdge="2.3799982" rightEdge="2.9799984"/>
<gap leftEdge="4.825835" rightEdge="5.200835"/>
<gap leftEdge="7.5069995" rightEdge="8.013"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="8.00651" rightEdge="8.67351" height="0.319" y="-0.44050002" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.703371" rightEdge="12.7233715" height="0.299" y="-0.4505" attachedToGround="true"/>
<obstacleData type="" leftEdge="15.164396" rightEdge="15.762396" height="0.466" y="-0.36700004" attachedToGround="true"/>
<obstacleData type="" leftEdge="15.818368" rightEdge="16.828367" height="0.402" y="-0.39900002" attachedToGround="true"/>
<obstacleData type="" leftEdge="16.858376" rightEdge="18.108376" height="0.353" y="-0.42350003" attachedToGround="true"/>
<obstacleData type="" leftEdge="18.216705" rightEdge="18.716705" height="0.789" y="-0.20550004" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="2.6933327" y="0.1266667" width="0.25" height="0.25"/>
<starData x="8.853351" y="-0.4533331" width="0.25" height="0.25"/>
<starData x="12.253348" y="-0.13333318" width="0.25" height="0.25"/>
</stars>
</level>
<level number="4" goalX="17.23667">
<terrain height="-0.6" endX="19.23667">
<gaps class="java.util.ArrayList">
<gap leftEdge="6.810508" rightEdge="8.329505"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="2.3669987" rightEdge="2.7929988" height="1.074" y="-0.06300002" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.929536" rightEdge="13.150537" height="0.946" y="-0.12700003" attachedToGround="true"/>
<obstacleData type="" leftEdge="13.377707" rightEdge="14.495707" height="0.725" y="-0.23750001" attachedToGround="true"/>
<obstacleData type="" leftEdge="14.676702" rightEdge="15.176702" height="1.539" y="0.1695" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="2.573332" y="0.62" width="0.25" height="0.25"/>
<starData x="7.5566673" y="0.26000008" width="0.25" height="0.25"/>
<starData x="11.710016" y="-0.42666656" width="0.25" height="0.25"/>
</stars>
</level>
<level number="5" goalX="10.1833515">
<terrain height="-0.6" endX="9.483352">
<gaps class="java.util.ArrayList">
<gap leftEdge="4.026832" rightEdge="5.179832"/>
<gap leftEdge="8.085517" rightEdge="8.854522"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="1.1131666" rightEdge="1.5001667" height="0.941" y="-0.12950003" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.6498328" rightEdge="1.7768329" height="0.902" y="-0.14900002" attachedToGround="true"/>
<obstacleData type="" leftEdge="1.9103338" rightEdge="2.1163337" height="0.838" y="-0.18100002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.224499" rightEdge="2.415499" height="0.735" y="-0.23250002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.500666" rightEdge="2.6726658" height="0.613" y="-0.29350004" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.731666" rightEdge="3.961666" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.1713314" rightEdge="5.955332" height="0.186" y="-0.507" attachedToGround="true"/>
<obstacleData type="" leftEdge="8.860007" rightEdge="9.360007" height="0.843" y="-0.17850003" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="4.5599995" y="-0.54666656" width="0.25" height="0.25"/>
<starData x="6.203336" y="0.36666653" width="0.25" height="0.25"/>
<starData x="9.543362" y="-0.43333334" width="0.25" height="0.25"/>
</stars>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,84 @@
<levelPack name="Test Pack">
<levels class="java.util.ArrayList">
<level number="1" goalX="24.0">
<terrain height="-0.6" endX="27.0">
<gaps class="java.util.ArrayList">
<gap leftEdge="4.0" rightEdge="5.0"/>
<gap leftEdge="12.0" rightEdge="13.0"/>
<gap leftEdge="16.0" rightEdge="16.5"/>
<gap leftEdge="16.8" rightEdge="17.3"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="9.0" rightEdge="10.0" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="13.0" rightEdge="14.0" height="0.2" y="-0.5" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.52634" rightEdge="20.580341" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="20.580004" rightEdge="21.580004" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="21.580002" rightEdge="22.580002" height="0.1" y="-0.55" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList"/>
</level>
<level number="2" goalX="21.25">
<terrain height="-0.6" endX="21.0">
<gaps class="java.util.ArrayList">
<gap leftEdge="1.0" rightEdge="1.7"/>
<gap leftEdge="8.9" rightEdge="9.6"/>
<gap leftEdge="9.7" rightEdge="10.4"/>
<gap leftEdge="15.0" rightEdge="16.1"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="0.42333412" rightEdge="0.99333405" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="2.9" rightEdge="3.6" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.0" rightEdge="7.0" height="0.3" y="-0.45000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="7.1000004" rightEdge="8.5" height="0.52" y="-0.34000003" attachedToGround="true"/>
<obstacleData type="" leftEdge="11.4" rightEdge="12.800001" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="13.9" rightEdge="14.199999" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="16.8" rightEdge="18.3" height="0.24" y="-0.48000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="18.30001" rightEdge="18.8" height="0.35" y="-0.425" attachedToGround="true"/>
<obstacleData type="" leftEdge="18.80001" rightEdge="19.400002" height="0.54" y="-0.33" attachedToGround="true"/>
<obstacleData type="" leftEdge="19.40001" rightEdge="20.5" height="0.41" y="-0.39500004" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList">
<starData x="0.19333333" y="-0.02" width="0.25" height="0.25"/>
</stars>
</level>
<level number="3" goalX="10.013344">
<terrain height="-0.6" endX="13.013344">
<gaps class="java.util.ArrayList">
<gap leftEdge="0.99333334" rightEdge="1.5933334"/>
<gap leftEdge="2.3266642" rightEdge="5.326664"/>
<gap leftEdge="5.376665" rightEdge="8.376666"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="1.0611664" rightEdge="1.5121664" height="0.431" y="-0.12666668" attachedToGround="false"/>
<obstacleData type="" leftEdge="2.615834" rightEdge="3.590834" height="0.181" y="-0.37333322" attachedToGround="false"/>
<obstacleData type="" leftEdge="3.5901666" rightEdge="4.2031665" height="0.27" y="-0.21999994" attachedToGround="false"/>
<obstacleData type="" leftEdge="4.1894994" rightEdge="4.910499" height="0.294" y="0.0" attachedToGround="false"/>
<obstacleData type="" leftEdge="5.1586647" rightEdge="6.5946646" height="0.279" y="-0.24049996" attachedToGround="false"/>
<obstacleData type="" leftEdge="5.76284" rightEdge="5.9838395" height="0.76" y="0.5999998" attachedToGround="false"/>
<obstacleData type="" leftEdge="6.808838" rightEdge="8.097838" height="0.211" y="-0.33999994" attachedToGround="false"/>
<obstacleData type="" leftEdge="8.2516775" rightEdge="8.761678" height="0.877" y="-0.16150004" attachedToGround="true"/>
</obstacles>
<stars class="java.util.ArrayList"/>
</level>
<level number="4" goalX="14.916662">
<terrain height="-0.6" endX="17.916662">
<gaps class="java.util.ArrayList">
<gap leftEdge="12.363373" rightEdge="12.963373"/>
</gaps>
</terrain>
<obstacles class="java.util.ArrayList">
<obstacleData type="" leftEdge="2.5548315" rightEdge="3.9518313" height="0.201" y="-0.09283342" attachedToGround="false"/>
<obstacleData type="" leftEdge="0.84966636" rightEdge="1.1636665" height="0.27" y="-0.46500003" attachedToGround="true"/>
<obstacleData type="" leftEdge="4.0266647" rightEdge="4.5266647" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="5.05683" rightEdge="6.16983" height="0.25" y="-0.09333334" attachedToGround="false"/>
<obstacleData type="" leftEdge="6.2320023" rightEdge="6.948002" height="0.5" y="-0.35000002" attachedToGround="true"/>
<obstacleData type="" leftEdge="7.572172" rightEdge="8.621172" height="0.284" y="-0.08666665" attachedToGround="false"/>
<obstacleData type="" leftEdge="8.682344" rightEdge="9.084345" height="1.142" y="0.40666664" attachedToGround="false"/>
</obstacles>
<stars class="java.util.ArrayList"/>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,12 @@
<levelPack name="test" id="1" terrainHeight="0.0" ceilingHeight="0.0">
<levels class="java.util.ArrayList">
<level number="2" goalX="3.0">
<terrainTiles class="java.util.ArrayList">
<tile x="0.0" width="6.0"/>
</terrainTiles>
<ceilingTiles class="java.util.ArrayList"/>
<obstacles class="java.util.ArrayList"/>
<stars class="java.util.ArrayList"/>
</level>
</levels>
</levelPack>

View File

@ -0,0 +1,157 @@
Untitled
- Delay -
active: false
- Duration -
lowMin: 300.0
lowMax: 300.0
- Count -
min: 0
max: 500
- Emission -
lowMin: 0.0
lowMax: 0.0
highMin: 60.0
highMax: 60.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Life -
lowMin: 0.0
lowMax: 0.0
highMin: 600.0
highMax: 600.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.66
timeline2: 1.0
- Life Offset -
active: false
- X Offset -
active: false
- Y Offset -
active: false
- Spawn Shape -
shape: point
- Spawn Width -
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 0.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Spawn Height -
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 0.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Scale -
lowMin: 15.0
lowMax: 15.0
highMin: 110.0
highMax: 110.0
relative: false
scalingCount: 3
scaling0: 0.0
scaling1: 0.19607843
scaling2: 0.60784316
timelineCount: 3
timeline0: 0.0
timeline1: 0.80136985
timeline2: 1.0
- Velocity -
active: true
lowMin: 1000.0
lowMax: 1000.0
highMin: -2000.0
highMax: -2000.0
relative: false
scalingCount: 3
scaling0: 0.0
scaling1: 0.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.30170777
timeline2: 1.0
- Angle -
active: true
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 360.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.7191781
timeline2: 1.0
- Rotation -
active: false
- Wind -
active: false
- Gravity -
active: false
- Tint -
colorsCount: 9
colors0: 1.0
colors1: 0.92941177
colors2: 0.047058824
colors3: 1.0
colors4: 0.92941177
colors5: 0.047058824
colors6: 1.0
colors7: 0.78039217
colors8: 0.047058824
timelineCount: 3
timeline0: 0.0
timeline1: 0.7521515
timeline2: 1.0
- Transparency -
lowMin: 0.0
lowMax: 0.0
highMin: 1.0
highMax: 1.0
relative: false
scalingCount: 7
scaling0: 0.0
scaling1: 1.0
scaling2: 1.0
scaling3: 1.0
scaling4: 1.0
scaling5: 1.0
scaling6: 0.0
timelineCount: 7
timeline0: 0.0
timeline1: 0.12068965
timeline2: 0.28767124
timeline3: 0.5
timeline4: 0.7873563
timeline5: 0.967433
timeline6: 1.0
- Options -
attached: false
continuous: false
aligned: false
additive: true
behind: false
premultipliedAlpha: false
- Image Path -
star.png

View File

@ -0,0 +1,184 @@
Untitled
- Delay -
active: false
- Duration -
lowMin: 500.0
lowMax: 500.0
- Count -
min: 0
max: 1000
- Emission -
lowMin: 0.0
lowMax: 0.0
highMin: 300.0
highMax: 300.0
relative: false
scalingCount: 4
scaling0: 1.0
scaling1: 0.74509805
scaling2: 0.3137255
scaling3: 0.0
timelineCount: 4
timeline0: 0.0
timeline1: 0.5205479
timeline2: 0.8630137
timeline3: 1.0
- Life -
lowMin: 0.0
lowMax: 0.0
highMin: 500.0
highMax: 800.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 0.3
timelineCount: 3
timeline0: 0.0
timeline1: 0.66
timeline2: 1.0
- Life Offset -
active: false
- X Offset -
active: false
- Y Offset -
active: false
- Spawn Shape -
shape: square
- Spawn Width -
lowMin: 200.0
lowMax: 200.0
highMin: 20.0
highMax: 20.0
relative: false
scalingCount: 2
scaling0: 0.0
scaling1: 0.0
timelineCount: 2
timeline0: 0.0
timeline1: 1.0
- Spawn Height -
lowMin: 200.0
lowMax: 200.0
highMin: 20.0
highMax: 20.0
relative: false
scalingCount: 2
scaling0: 0.0
scaling1: 0.0
timelineCount: 2
timeline0: 0.0
timeline1: 1.0
- Scale -
lowMin: 0.0
lowMax: 0.0
highMin: 27.0
highMax: 37.0
relative: false
scalingCount: 2
scaling0: 1.0
scaling1: 0.54901963
timelineCount: 2
timeline0: 0.0
timeline1: 1.0
- Velocity -
active: true
lowMin: 100.0
lowMax: 300.0
highMin: 500.0
highMax: 900.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 0.7647059
scaling2: 0.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.69863015
timeline2: 1.0
- Angle -
active: true
lowMin: 90.0
lowMax: 90.0
highMin: 0.0
highMax: 360.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.51369864
timeline2: 1.0
- Rotation -
active: false
- Wind -
active: true
lowMin: -50.0
lowMax: 50.0
highMin: -100.0
highMax: 100.0
relative: false
scalingCount: 2
scaling0: 0.0
scaling1: 1.0
timelineCount: 2
timeline0: 0.0
timeline1: 1.0
- Gravity -
active: false
- Tint -
colorsCount: 18
colors0: 0.07058824
colors1: 0.67058825
colors2: 1.0
colors3: 1.0
colors4: 0.7176471
colors5: 0.07058824
colors6: 1.0
colors7: 0.7411765
colors8: 0.07058824
colors9: 1.0
colors10: 0.12156863
colors11: 0.07058824
colors12: 0.9647059
colors13: 0.0
colors14: 0.0
colors15: 0.39607844
colors16: 0.047058824
colors17: 0.02745098
timelineCount: 6
timeline0: 0.0
timeline1: 0.024096385
timeline2: 0.09638554
timeline3: 0.59380376
timeline4: 0.9328744
timeline5: 1.0
- Transparency -
lowMin: 0.0
lowMax: 0.0
highMin: 1.0
highMax: 1.0
relative: false
scalingCount: 5
scaling0: 0.10526316
scaling1: 1.0
scaling2: 1.0
scaling3: 0.14035088
scaling4: 0.0
timelineCount: 5
timeline0: 0.0
timeline1: 0.2
timeline2: 0.5273973
timeline3: 0.74657536
timeline4: 1.0
- Options -
attached: false
continuous: false
aligned: false
additive: true
behind: false
premultipliedAlpha: false
- Image Path -
particle.png

View File

@ -0,0 +1,149 @@
Untitled
- Delay -
active: false
- Duration -
lowMin: 1000.0
lowMax: 1000.0
- Count -
min: 0
max: 500
- Emission -
lowMin: 0.0
lowMax: 0.0
highMin: 10.0
highMax: 10.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Life -
lowMin: 0.0
lowMax: 0.0
highMin: 1300.0
highMax: 1600.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.66
timeline2: 1.0
- Life Offset -
active: false
- X Offset -
active: false
- Y Offset -
active: false
- Spawn Shape -
shape: point
- Spawn Width -
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 0.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Spawn Height -
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 0.0
relative: false
scalingCount: 1
scaling0: 1.0
timelineCount: 1
timeline0: 0.0
- Scale -
lowMin: 15.0
lowMax: 15.0
highMin: 30.0
highMax: 35.0
relative: false
scalingCount: 3
scaling0: 0.0
scaling1: 0.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.37671232
timeline2: 1.0
- Velocity -
active: true
lowMin: 100.0
lowMax: 150.0
highMin: 370.0
highMax: 400.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 0.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.08628652
timeline2: 0.087286524
- Angle -
active: true
lowMin: 0.0
lowMax: 0.0
highMin: 0.0
highMax: 360.0
relative: false
scalingCount: 3
scaling0: 1.0
scaling1: 1.0
scaling2: 1.0
timelineCount: 3
timeline0: 0.0
timeline1: 0.7191781
timeline2: 1.0
- Rotation -
active: false
- Wind -
active: false
- Gravity -
active: false
- Tint -
colorsCount: 6
colors0: 1.0
colors1: 1.0
colors2: 0.047058824
colors3: 1.0
colors4: 0.89411765
colors5: 0.047058824
timelineCount: 2
timeline0: 0.0
timeline1: 1.0
- Transparency -
lowMin: 0.0
lowMax: 0.0
highMin: 1.0
highMax: 1.0
relative: false
scalingCount: 5
scaling0: 0.0
scaling1: 0.0
scaling2: 1.0
scaling3: 1.0
scaling4: 0.0
timelineCount: 5
timeline0: 0.0
timeline1: 0.10344828
timeline2: 0.3659004
timeline3: 0.8082192
timeline4: 1.0
- Options -
attached: false
continuous: true
aligned: false
additive: true
behind: false
premultipliedAlpha: false
- Image Path -
particle.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -0,0 +1,29 @@
precision mediump float;
uniform sampler2D texture;
uniform float alpha;
uniform vec2 texAtlasSize;
uniform float texAtlasIndex;
varying vec2 pass_TexCoords;
vec2 getTexCoordsInAtlas(in float atlasIndex);
void main() {
vec2 texAtlasCoords = getTexCoordsInAtlas(texAtlasIndex);
gl_FragColor = texture2D(texture, texAtlasCoords);
gl_FragColor.a = min(gl_FragColor.a, alpha);
}
vec2 getTexCoordsInAtlas(in float atlasIndex){
vec2 texAtlasCoords = vec2(0.0, 0.0);
texAtlasCoords.x = mod(pass_TexCoords.x, 1.0) / texAtlasSize.x;
texAtlasCoords.x += mod(atlasIndex, texAtlasSize.x) / texAtlasSize.x;
texAtlasCoords.y = mod(pass_TexCoords.y, 1.0) / texAtlasSize.y;
texAtlasCoords.y += floor(atlasIndex / texAtlasSize.y) / texAtlasSize.y;
return texAtlasCoords;
}

View File

@ -0,0 +1,15 @@
uniform mat4 mvpMatrix;
uniform mat4 transformationMatrix;
attribute vec4 position;
attribute vec2 texCoords;
varying vec2 pass_TexCoords;
void main() {
vec4 transformatedPosition = transformationMatrix * position;
gl_Position = mvpMatrix * transformatedPosition;
pass_TexCoords = texCoords;
}

View File

@ -0,0 +1,13 @@
precision mediump float;
uniform sampler2D texture;
uniform vec3 color;
varying vec2 pass_TexCoords;
void main() {
gl_FragColor.a = texture2D(texture, pass_TexCoords).a;
gl_FragColor.rgb = color;
}

View File

@ -0,0 +1,11 @@
precision mediump float;
uniform sampler2D texture;
varying vec2 pass_TexCoords;
void main() {
gl_FragColor = texture2D(texture, pass_TexCoords);
}

View File

@ -0,0 +1,12 @@
attribute vec4 position;
attribute vec2 texCoords;
varying vec2 pass_TexCoords;
void main() {
gl_Position = position;
pass_TexCoords.x = texCoords.x;
pass_TexCoords.y = -texCoords.y;
}

View File

@ -0,0 +1,18 @@
uniform mat4 mvpMatrix;
uniform mat4 transformationMatrix;
attribute vec4 position;
attribute vec2 texCoords;
varying vec2 pass_TexCoords;
void main() {
vec4 transformatedPosition = transformationMatrix * position;
gl_Position = mvpMatrix * transformatedPosition;
pass_TexCoords = (transformationMatrix * vec4(texCoords, 0.0, 0.0)).xy;
pass_TexCoords *= vec2(3.0, 3.0);
pass_TexCoords.y = clamp(pass_TexCoords.y, 0.0, 1.0) + 0.01;
}

View File

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<levelPack name="Testpack">
<levels>
<level goalX="110" number="1">
<terrain endX="100" height="1.0">
<gaps></gaps>
</terrain>
<obstacles></obstacles>
</level>
<level goalX="110" number="2">
<terrain endX="100" height="-0.6">
<gaps></gaps>
</terrain>
<obstacles></obstacles>
</level>
<level goalX="110" number="3">
<terrain endX="100" height="-0.6">
<gaps>
<gap leftEdge="10" rightEdge="11" />
<gap leftEdge="20" rightEdge="21" />
<gap leftEdge="30" rightEdge="31" />
<gap leftEdge="40" rightEdge="41" />
<gap leftEdge="50" rightEdge="51" />
<gap leftEdge="60" rightEdge="61" />
<gap leftEdge="70" rightEdge="71" />
<gap leftEdge="80" rightEdge="81" />
<gap leftEdge="90" rightEdge="91" />
</gaps>
</terrain>
<obstacles></obstacles>
</level>
</levels>
</levelPack>