@ -1,4 +0,0 @@
|
||||
player 200 200
|
||||
enemy 100 100
|
||||
enemy 150 100
|
||||
enemy 200 100
|
Before Width: | Height: | Size: 52 KiB After Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 50 KiB After Width: | Height: | Size: 50 KiB |
After Width: | Height: | Size: 392 KiB |
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 2.5 MiB After Width: | Height: | Size: 2.5 MiB |
Before Width: | Height: | Size: 745 B After Width: | Height: | Size: 745 B |
Before Width: | Height: | Size: 192 KiB |
@ -1,366 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<TextureAtlas imagePath="sprites.png">
|
||||
<!--
|
||||
Created with ShoeBox
|
||||
http://renderhjs.net/shoebox/
|
||||
-->
|
||||
<SubTexture name="blockBrown.png" x="455" y="849" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockBrown_broken.png" x="455" y="914" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGreen.png" x="520" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGreen_key.png" x="520" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGreen_lock.png" x="520" y="179" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGreen_puzzle.png" x="520" y="244" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGrey.png" x="520" y="309" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockGrey_broken.png" x="520" y="374" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockRed.png" x="520" y="504" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockRed_key.png" x="520" y="634" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockRed_lock.png" x="520" y="795" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blockRed_puzzle.png" x="520" y="860" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="blueCrystal.png" x="929" y="317" width="32" height="30" frameX="-0" frameY="-0" frameWidth="32" frameHeight="30"/>
|
||||
<SubTexture name="blueGem.png" x="964" y="797" width="22" height="22" frameX="-0" frameY="-0" frameWidth="22" frameHeight="22"/>
|
||||
<SubTexture name="blueJewel.png" x="964" y="705" width="24" height="22" frameX="-0" frameY="-0" frameWidth="24" frameHeight="22"/>
|
||||
<SubTexture name="buttonFloor.png" x="65" y="1001" width="54" height="12" frameX="-0" frameY="-0" frameWidth="54" frameHeight="12"/>
|
||||
<SubTexture name="buttonFloor_pressed.png" x="65" y="1014" width="54" height="8" frameX="-0" frameY="-0" frameWidth="54" frameHeight="8"/>
|
||||
<SubTexture name="buttonGreen.png" x="707" y="781" width="50" height="29" frameX="-0" frameY="-0" frameWidth="50" frameHeight="29"/>
|
||||
<SubTexture name="buttonGreen_pressed.png" x="696" y="1005" width="50" height="17" frameX="-0" frameY="-0" frameWidth="50" frameHeight="17"/>
|
||||
<SubTexture name="buttonRed.png" x="707" y="751" width="50" height="29" frameX="-0" frameY="-0" frameWidth="50" frameHeight="29"/>
|
||||
<SubTexture name="buttonRed_pressed.png" x="645" y="1005" width="50" height="17" frameX="-0" frameY="-0" frameWidth="50" frameHeight="17"/>
|
||||
<SubTexture name="discGreen.png" x="928" y="216" width="34" height="35" frameX="-0" frameY="-0" frameWidth="34" frameHeight="35"/>
|
||||
<SubTexture name="discRed.png" x="927" y="102" width="34" height="35" frameX="-0" frameY="-0" frameWidth="34" frameHeight="35"/>
|
||||
<SubTexture name="doorGreen.png" x="585" y="446" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorGreen_lock.png" x="650" y="92" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorGreen_top.png" x="520" y="699" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorOpen.png" x="585" y="714" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorOpen_top.png" x="585" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorRed.png" x="585" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorRed_lock.png" x="325" y="427" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="doorRed_top.png" x="520" y="925" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="enemyFloating_1.png" x="807" y="306" width="42" height="40" frameX="-0" frameY="-0" frameWidth="42" frameHeight="40"/>
|
||||
<SubTexture name="enemyFloating_2.png" x="650" y="839" width="55" height="55" frameX="-0" frameY="-0" frameWidth="55" frameHeight="55"/>
|
||||
<SubTexture name="enemyFloating_3.png" x="809" y="51" width="40" height="40" frameX="-0" frameY="-0" frameWidth="40" frameHeight="40"/>
|
||||
<SubTexture name="enemyFloating_4.png" x="805" y="924" width="42" height="40" frameX="-0" frameY="-0" frameWidth="42" frameHeight="40"/>
|
||||
<SubTexture name="enemyFlyingAlt_1.png" x="706" y="839" width="52" height="36" frameX="-0" frameY="-0" frameWidth="52" frameHeight="36"/>
|
||||
<SubTexture name="enemyFlyingAlt_2.png" x="520" y="996" width="63" height="24" frameX="-0" frameY="-0" frameWidth="63" frameHeight="24"/>
|
||||
<SubTexture name="enemyFlyingAlt_3.png" x="705" y="895" width="52" height="29" frameX="-0" frameY="-0" frameWidth="52" frameHeight="29"/>
|
||||
<SubTexture name="enemyFlyingAlt_4.png" x="650" y="354" width="60" height="29" frameX="-0" frameY="-0" frameWidth="60" frameHeight="29"/>
|
||||
<SubTexture name="enemyFlying_1.png" x="455" y="390" width="64" height="38" frameX="-0" frameY="-0" frameWidth="64" frameHeight="38"/>
|
||||
<SubTexture name="enemyFlying_2.png" x="455" y="429" width="64" height="38" frameX="-0" frameY="-0" frameWidth="64" frameHeight="38"/>
|
||||
<SubTexture name="enemyFlying_3.png" x="455" y="533" width="64" height="43" frameX="-0" frameY="-0" frameWidth="64" frameHeight="43"/>
|
||||
<SubTexture name="enemyFlying_4.png" x="584" y="996" width="60" height="25" frameX="-0" frameY="-0" frameWidth="60" frameHeight="25"/>
|
||||
<SubTexture name="enemySpikey_1.png" x="929" y="0" width="32" height="40" frameX="-0" frameY="-0" frameWidth="32" frameHeight="40"/>
|
||||
<SubTexture name="enemySpikey_2.png" x="928" y="994" width="32" height="28" frameX="-0" frameY="-0" frameWidth="32" frameHeight="28"/>
|
||||
<SubTexture name="enemySpikey_3.png" x="929" y="252" width="32" height="64" frameX="-0" frameY="-0" frameWidth="32" frameHeight="64"/>
|
||||
<SubTexture name="enemySpikey_4.png" x="928" y="522" width="32" height="40" frameX="-0" frameY="-0" frameWidth="32" frameHeight="40"/>
|
||||
<SubTexture name="enemySwimming_1.png" x="805" y="790" width="44" height="32" frameX="-0" frameY="-0" frameWidth="44" frameHeight="32"/>
|
||||
<SubTexture name="enemySwimming_2.png" x="763" y="153" width="44" height="32" frameX="-0" frameY="-0" frameWidth="44" frameHeight="32"/>
|
||||
<SubTexture name="enemySwimming_3.png" x="758" y="656" width="46" height="32" frameX="-0" frameY="-0" frameWidth="46" frameHeight="32"/>
|
||||
<SubTexture name="enemySwimming_4.png" x="762" y="306" width="44" height="32" frameX="-0" frameY="-0" frameWidth="44" frameHeight="32"/>
|
||||
<SubTexture name="enemyWalking_1.png" x="928" y="949" width="32" height="44" frameX="-0" frameY="-0" frameWidth="32" frameHeight="44"/>
|
||||
<SubTexture name="enemyWalking_2.png" x="928" y="417" width="32" height="42" frameX="-0" frameY="-0" frameWidth="32" frameHeight="42"/>
|
||||
<SubTexture name="enemyWalking_3.png" x="710" y="464" width="49" height="38" frameX="-0" frameY="-0" frameWidth="49" frameHeight="38"/>
|
||||
<SubTexture name="enemyWalking_4.png" x="928" y="837" width="35" height="41" frameX="-0" frameY="-0" frameWidth="35" frameHeight="41"/>
|
||||
<SubTexture name="fence.png" x="585" y="622" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="fenceBroken.png" x="585" y="668" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="fenceLeft.png" x="585" y="511" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="fenceMid.png" x="650" y="46" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="fenceOpen.png" x="650" y="0" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="fenceRight.png" x="585" y="950" width="64" height="45" frameX="-0" frameY="-0" frameWidth="64" frameHeight="45"/>
|
||||
<SubTexture name="flagGreen_down.png" x="987" y="813" width="15" height="61" frameX="-0" frameY="-0" frameWidth="15" frameHeight="61"/>
|
||||
<SubTexture name="flagGreen_up.png" x="650" y="446" width="59" height="61" frameX="-0" frameY="-0" frameWidth="59" frameHeight="61"/>
|
||||
<SubTexture name="flagRed_down.png" x="987" y="751" width="15" height="61" frameX="-0" frameY="-0" frameWidth="15" frameHeight="61"/>
|
||||
<SubTexture name="flagRed_up.png" x="650" y="384" width="59" height="61" frameX="-0" frameY="-0" frameWidth="59" frameHeight="61"/>
|
||||
<SubTexture name="fluidBlue.png" x="585" y="885" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidBlue_top.png" x="585" y="820" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidBrown.png" x="585" y="557" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidBrown_top.png" x="585" y="381" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidGreen.png" x="585" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidGreen_top.png" x="585" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidRed.png" x="585" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="fluidRed_top.png" x="520" y="569" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="greenCrystal.png" x="928" y="460" width="32" height="30" frameX="-0" frameY="-0" frameWidth="32" frameHeight="30"/>
|
||||
<SubTexture name="greenGem.png" x="964" y="774" width="22" height="22" frameX="-0" frameY="-0" frameWidth="22" frameHeight="22"/>
|
||||
<SubTexture name="greenJewel.png" x="807" y="347" width="24" height="22" frameX="-0" frameY="-0" frameWidth="24" frameHeight="22"/>
|
||||
<SubTexture name="keyGreen.png" x="961" y="495" width="29" height="30" frameX="-0" frameY="-0" frameWidth="29" frameHeight="30"/>
|
||||
<SubTexture name="keyRed.png" x="962" y="252" width="29" height="30" frameX="-0" frameY="-0" frameWidth="29" frameHeight="30"/>
|
||||
<SubTexture name="ladderNarrow_mid.png" x="650" y="508" width="56" height="64" frameX="-0" frameY="-0" frameWidth="56" frameHeight="64"/>
|
||||
<SubTexture name="ladderNarrow_top.png" x="650" y="724" width="56" height="48" frameX="-0" frameY="-0" frameWidth="56" frameHeight="48"/>
|
||||
<SubTexture name="ladderWide_mid.png" x="520" y="439" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="ladderWide_top.png" x="520" y="130" width="64" height="48" frameX="-0" frameY="-0" frameWidth="64" frameHeight="48"/>
|
||||
<SubTexture name="lockGreen.png" x="455" y="784" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenBottom.png" x="455" y="577" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenLeft.png" x="455" y="468" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenLock.png" x="455" y="325" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenMid.png" x="455" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenRight.png" x="455" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockGreenTop.png" x="455" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRed.png" x="455" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedBottom.png" x="390" y="947" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedLeft.png" x="390" y="817" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedLock.png" x="390" y="752" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedMid.png" x="585" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedRight.png" x="390" y="687" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="lockRedTop.png" x="455" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="outlineCrystal.png" x="889" y="926" width="38" height="36" frameX="-0" frameY="-0" frameWidth="38" frameHeight="36"/>
|
||||
<SubTexture name="outlineDisc.png" x="848" y="963" width="40" height="41" frameX="-0" frameY="-0" frameWidth="40" frameHeight="41"/>
|
||||
<SubTexture name="outlineDisc_alt.png" x="848" y="921" width="40" height="41" frameX="-0" frameY="-0" frameWidth="40" frameHeight="41"/>
|
||||
<SubTexture name="outlineGem.png" x="962" y="283" width="28" height="28" frameX="-0" frameY="-0" frameWidth="28" frameHeight="28"/>
|
||||
<SubTexture name="outlineJewel.png" x="929" y="379" width="30" height="28" frameX="-0" frameY="-0" frameWidth="30" frameHeight="28"/>
|
||||
<SubTexture name="outlineKey.png" x="927" y="624" width="36" height="36" frameX="-0" frameY="-0" frameWidth="36" frameHeight="36"/>
|
||||
<SubTexture name="outlinePuzzle.png" x="849" y="347" width="40" height="40" frameX="-0" frameY="-0" frameWidth="40" frameHeight="40"/>
|
||||
<SubTexture name="plantBlue_1.png" x="963" y="145" width="26" height="48" frameX="-0" frameY="-0" frameWidth="26" frameHeight="48"/>
|
||||
<SubTexture name="plantBlue_2.png" x="805" y="755" width="44" height="34" frameX="-0" frameY="-0" frameWidth="44" frameHeight="34"/>
|
||||
<SubTexture name="plantBlue_3.png" x="707" y="811" width="42" height="24" frameX="-0" frameY="-0" frameWidth="42" frameHeight="24"/>
|
||||
<SubTexture name="plantBlue_4.png" x="961" y="949" width="29" height="55" frameX="-0" frameY="-0" frameWidth="29" frameHeight="55"/>
|
||||
<SubTexture name="plantBlue_5.png" x="705" y="925" width="44" height="22" frameX="-0" frameY="-0" frameWidth="44" frameHeight="22"/>
|
||||
<SubTexture name="plantBlue_6.png" x="928" y="138" width="34" height="39" frameX="-0" frameY="-0" frameWidth="34" frameHeight="39"/>
|
||||
<SubTexture name="plantBottom_1.png" x="962" y="0" width="28" height="64" frameX="-0" frameY="-0" frameWidth="28" frameHeight="64"/>
|
||||
<SubTexture name="plantBottom_2.png" x="890" y="662" width="36" height="64" frameX="-0" frameY="-0" frameWidth="36" frameHeight="64"/>
|
||||
<SubTexture name="plantDark_1.png" x="850" y="207" width="38" height="37" frameX="-0" frameY="-0" frameWidth="38" frameHeight="37"/>
|
||||
<SubTexture name="plantDark_2.png" x="850" y="567" width="36" height="31" frameX="-0" frameY="-0" frameWidth="36" frameHeight="31"/>
|
||||
<SubTexture name="plantDark_3.png" x="963" y="194" width="26" height="50" frameX="-0" frameY="-0" frameWidth="26" frameHeight="50"/>
|
||||
<SubTexture name="plantDark_4.png" x="929" y="41" width="32" height="49" frameX="-0" frameY="-0" frameWidth="32" frameHeight="49"/>
|
||||
<SubTexture name="plantDark_5.png" x="962" y="312" width="28" height="32" frameX="-0" frameY="-0" frameWidth="28" frameHeight="32"/>
|
||||
<SubTexture name="plantDark_6.png" x="962" y="65" width="27" height="38" frameX="-0" frameY="-0" frameWidth="27" frameHeight="38"/>
|
||||
<SubTexture name="plantGreen_1.png" x="763" y="108" width="44" height="44" frameX="-0" frameY="-0" frameWidth="44" frameHeight="44"/>
|
||||
<SubTexture name="plantGreen_2.png" x="762" y="339" width="44" height="32" frameX="-0" frameY="-0" frameWidth="44" frameHeight="32"/>
|
||||
<SubTexture name="plantGreen_3.png" x="890" y="727" width="36" height="31" frameX="-0" frameY="-0" frameWidth="36" frameHeight="31"/>
|
||||
<SubTexture name="plantGreen_4.png" x="961" y="526" width="29" height="50" frameX="-0" frameY="-0" frameWidth="29" frameHeight="50"/>
|
||||
<SubTexture name="plantGreen_5.png" x="808" y="147" width="41" height="47" frameX="-0" frameY="-0" frameWidth="41" frameHeight="47"/>
|
||||
<SubTexture name="plantGreen_6.png" x="806" y="599" width="42" height="36" frameX="-0" frameY="-0" frameWidth="42" frameHeight="36"/>
|
||||
<SubTexture name="plantLeaves_1.png" x="889" y="207" width="38" height="64" frameX="-0" frameY="-0" frameWidth="38" frameHeight="64"/>
|
||||
<SubTexture name="plantLeaves_3.png" x="850" y="142" width="38" height="64" frameX="-0" frameY="-0" frameWidth="38" frameHeight="64"/>
|
||||
<SubTexture name="plantRed_1.png" x="929" y="348" width="31" height="30" frameX="-0" frameY="-0" frameWidth="31" frameHeight="30"/>
|
||||
<SubTexture name="plantRed_2.png" x="961" y="466" width="30" height="28" frameX="-0" frameY="-0" frameWidth="30" frameHeight="28"/>
|
||||
<SubTexture name="plantRed_3.png" x="806" y="372" width="42" height="23" frameX="-0" frameY="-0" frameWidth="42" frameHeight="23"/>
|
||||
<SubTexture name="plantRed_4.png" x="928" y="178" width="34" height="37" frameX="-0" frameY="-0" frameWidth="34" frameHeight="37"/>
|
||||
<SubTexture name="plantRed_5.png" x="890" y="461" width="37" height="32" frameX="-0" frameY="-0" frameWidth="37" frameHeight="32"/>
|
||||
<SubTexture name="plantRed_6.png" x="809" y="0" width="40" height="50" frameX="-0" frameY="-0" frameWidth="40" frameHeight="50"/>
|
||||
<SubTexture name="plantStem_Tleft.png" x="889" y="142" width="38" height="64" frameX="-0" frameY="-0" frameWidth="38" frameHeight="64"/>
|
||||
<SubTexture name="plantStem_Tright.png" x="927" y="661" width="36" height="64" frameX="-0" frameY="-0" frameWidth="36" frameHeight="64"/>
|
||||
<SubTexture name="plantStem_cornerLeft.png" x="890" y="578" width="36" height="37" frameX="-0" frameY="-0" frameWidth="36" frameHeight="37"/>
|
||||
<SubTexture name="plantStem_cornerRight.png" x="806" y="452" width="38" height="37" frameX="-0" frameY="-0" frameWidth="38" frameHeight="37"/>
|
||||
<SubTexture name="plantStem_cross.png" x="455" y="719" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="plantStem_horizontal.png" x="65" y="990" width="64" height="10" frameX="-0" frameY="-0" frameWidth="64" frameHeight="10"/>
|
||||
<SubTexture name="plantStem_vertical.png" x="65" y="990" width="64" height="10" frameX="-0" frameY="-0" frameWidth="10" frameHeight="64"/>
|
||||
<SubTexture name="plantThorns_horizontal.png" x="455" y="979" width="64" height="36" frameX="-0" frameY="-0" frameWidth="64" frameHeight="36"/>
|
||||
<SubTexture name="plantThorns_vertical.png" x="927" y="726" width="36" height="64" frameX="-0" frameY="-0" frameWidth="36" frameHeight="64"/>
|
||||
<SubTexture name="plantTop_blue.png" x="650" y="157" width="62" height="54" frameX="-0" frameY="-0" frameWidth="62" frameHeight="54"/>
|
||||
<SubTexture name="plantTop_leaves.png" x="650" y="267" width="62" height="31" frameX="-0" frameY="-0" frameWidth="62" frameHeight="31"/>
|
||||
<SubTexture name="plantTop_red.png" x="650" y="299" width="62" height="54" frameX="-0" frameY="-0" frameWidth="62" frameHeight="54"/>
|
||||
<SubTexture name="plantTop_yellow.png" x="650" y="212" width="62" height="54" frameX="-0" frameY="-0" frameWidth="62" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_dead.png" x="762" y="258" width="45" height="47" frameX="-0" frameY="-0" frameWidth="45" frameHeight="47"/>
|
||||
<SubTexture name="playerBlue_duck.png" x="650" y="605" width="56" height="40" frameX="-0" frameY="-0" frameWidth="56" frameHeight="40"/>
|
||||
<SubTexture name="playerBlue_fall.png" x="805" y="490" width="44" height="54" frameX="-0" frameY="-0" frameWidth="44" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_hit.png" x="758" y="730" width="46" height="40" frameX="-0" frameY="-0" frameWidth="46" frameHeight="40"/>
|
||||
<SubTexture name="playerBlue_roll.png" x="849" y="388" width="40" height="40" frameX="-0" frameY="-0" frameWidth="40" frameHeight="40"/>
|
||||
<SubTexture name="playerBlue_stand.png" x="762" y="203" width="45" height="54" frameX="-0" frameY="-0" frameWidth="45" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_swim1.png" x="805" y="545" width="44" height="53" frameX="-0" frameY="-0" frameWidth="44" frameHeight="53"/>
|
||||
<SubTexture name="playerBlue_swim2.png" x="764" y="0" width="44" height="54" frameX="-0" frameY="-0" frameWidth="44" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_switch1.png" x="650" y="895" width="54" height="54" frameX="-0" frameY="-0" frameWidth="54" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_switch2.png" x="650" y="950" width="53" height="54" frameX="-0" frameY="-0" frameWidth="53" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_up1.png" x="760" y="435" width="45" height="54" frameX="-0" frameY="-0" frameWidth="45" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_up2.png" x="759" y="556" width="45" height="50" frameX="-0" frameY="-0" frameWidth="45" frameHeight="50"/>
|
||||
<SubTexture name="playerBlue_up3.png" x="758" y="771" width="46" height="40" frameX="-0" frameY="-0" frameWidth="46" frameHeight="40"/>
|
||||
<SubTexture name="playerBlue_walk1.png" x="759" y="812" width="45" height="54" frameX="-0" frameY="-0" frameWidth="45" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_walk2.png" x="760" y="380" width="45" height="54" frameX="-0" frameY="-0" frameWidth="45" frameHeight="54"/>
|
||||
<SubTexture name="playerBlue_walk3.png" x="759" y="503" width="45" height="52" frameX="-0" frameY="-0" frameWidth="45" frameHeight="52"/>
|
||||
<SubTexture name="playerBlue_walk4.png" x="713" y="157" width="49" height="45" frameX="-0" frameY="-0" frameWidth="49" frameHeight="45"/>
|
||||
<SubTexture name="playerBlue_walk5.png" x="585" y="779" width="64" height="40" frameX="-0" frameY="-0" frameWidth="64" frameHeight="40"/>
|
||||
<SubTexture name="playerGreen_dead.png" x="890" y="272" width="38" height="43" frameX="-0" frameY="-0" frameWidth="38" frameHeight="43"/>
|
||||
<SubTexture name="playerGreen_duck.png" x="650" y="573" width="56" height="31" frameX="-0" frameY="-0" frameWidth="56" frameHeight="31"/>
|
||||
<SubTexture name="playerGreen_fall.png" x="890" y="316" width="38" height="49" frameX="-0" frameY="-0" frameWidth="38" frameHeight="49"/>
|
||||
<SubTexture name="playerGreen_hit.png" x="758" y="689" width="46" height="40" frameX="-0" frameY="-0" frameWidth="46" frameHeight="40"/>
|
||||
<SubTexture name="playerGreen_roll.png" x="849" y="599" width="40" height="40" frameX="-0" frameY="-0" frameWidth="40" frameHeight="40"/>
|
||||
<SubTexture name="playerGreen_stand.png" x="890" y="0" width="38" height="50" frameX="-0" frameY="-0" frameWidth="38" frameHeight="50"/>
|
||||
<SubTexture name="playerGreen_swim1.png" x="849" y="823" width="40" height="53" frameX="-0" frameY="-0" frameWidth="40" frameHeight="53"/>
|
||||
<SubTexture name="playerGreen_swim2.png" x="808" y="92" width="41" height="54" frameX="-0" frameY="-0" frameWidth="41" frameHeight="54"/>
|
||||
<SubTexture name="playerGreen_switch1.png" x="707" y="508" width="51" height="50" frameX="-0" frameY="-0" frameWidth="51" frameHeight="50"/>
|
||||
<SubTexture name="playerGreen_switch2.png" x="707" y="654" width="50" height="50" frameX="-0" frameY="-0" frameWidth="50" frameHeight="50"/>
|
||||
<SubTexture name="playerGreen_up1.png" x="890" y="51" width="38" height="50" frameX="-0" frameY="-0" frameWidth="38" frameHeight="50"/>
|
||||
<SubTexture name="playerGreen_up2.png" x="849" y="877" width="38" height="43" frameX="-0" frameY="-0" frameWidth="38" frameHeight="43"/>
|
||||
<SubTexture name="playerGreen_up3.png" x="849" y="429" width="40" height="39" frameX="-0" frameY="-0" frameWidth="40" frameHeight="39"/>
|
||||
<SubTexture name="playerGreen_walk1.png" x="890" y="366" width="38" height="50" frameX="-0" frameY="-0" frameWidth="38" frameHeight="50"/>
|
||||
<SubTexture name="playerGreen_walk2.png" x="889" y="963" width="38" height="48" frameX="-0" frameY="-0" frameWidth="38" frameHeight="48"/>
|
||||
<SubTexture name="playerGreen_walk3.png" x="889" y="877" width="38" height="48" frameX="-0" frameY="-0" frameWidth="38" frameHeight="48"/>
|
||||
<SubTexture name="playerGreen_walk4.png" x="713" y="259" width="48" height="43" frameX="-0" frameY="-0" frameWidth="48" frameHeight="43"/>
|
||||
<SubTexture name="playerGreen_walk5.png" x="455" y="642" width="64" height="39" frameX="-0" frameY="-0" frameWidth="64" frameHeight="39"/>
|
||||
<SubTexture name="playerGrey_dead.png" x="890" y="759" width="36" height="39" frameX="-0" frameY="-0" frameWidth="36" frameHeight="39"/>
|
||||
<SubTexture name="playerGrey_duck.png" x="650" y="808" width="56" height="30" frameX="-0" frameY="-0" frameWidth="56" frameHeight="30"/>
|
||||
<SubTexture name="playerGrey_fall.png" x="890" y="616" width="36" height="45" frameX="-0" frameY="-0" frameWidth="36" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_hit.png" x="710" y="427" width="49" height="36" frameX="-0" frameY="-0" frameWidth="49" frameHeight="36"/>
|
||||
<SubTexture name="playerGrey_roll.png" x="890" y="102" width="36" height="36" frameX="-0" frameY="-0" frameWidth="36" frameHeight="36"/>
|
||||
<SubTexture name="playerGrey_stand.png" x="890" y="799" width="36" height="45" frameX="-0" frameY="-0" frameWidth="36" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_swim1.png" x="805" y="823" width="43" height="41" frameX="-0" frameY="-0" frameWidth="43" frameHeight="41"/>
|
||||
<SubTexture name="playerGrey_swim2.png" x="805" y="656" width="44" height="42" frameX="-0" frameY="-0" frameWidth="44" frameHeight="42"/>
|
||||
<SubTexture name="playerGrey_switch1.png" x="707" y="705" width="50" height="45" frameX="-0" frameY="-0" frameWidth="50" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_switch2.png" x="707" y="608" width="50" height="45" frameX="-0" frameY="-0" frameWidth="50" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_up1.png" x="927" y="578" width="36" height="45" frameX="-0" frameY="-0" frameWidth="36" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_up2.png" x="890" y="537" width="37" height="40" frameX="-0" frameY="-0" frameWidth="37" frameHeight="40"/>
|
||||
<SubTexture name="playerGrey_up3.png" x="764" y="55" width="44" height="36" frameX="-0" frameY="-0" frameWidth="44" frameHeight="36"/>
|
||||
<SubTexture name="playerGrey_walk1.png" x="927" y="791" width="36" height="45" frameX="-0" frameY="-0" frameWidth="36" frameHeight="45"/>
|
||||
<SubTexture name="playerGrey_walk2.png" x="890" y="417" width="37" height="43" frameX="-0" frameY="-0" frameWidth="37" frameHeight="43"/>
|
||||
<SubTexture name="playerGrey_walk3.png" x="890" y="494" width="37" height="42" frameX="-0" frameY="-0" frameWidth="37" frameHeight="42"/>
|
||||
<SubTexture name="playerGrey_walk4.png" x="713" y="343" width="48" height="36" frameX="-0" frameY="-0" frameWidth="48" frameHeight="36"/>
|
||||
<SubTexture name="playerGrey_walk5.png" x="455" y="682" width="64" height="36" frameX="-0" frameY="-0" frameWidth="64" frameHeight="36"/>
|
||||
<SubTexture name="playerRed_dead.png" x="850" y="297" width="39" height="46" frameX="-0" frameY="-0" frameWidth="39" frameHeight="46"/>
|
||||
<SubTexture name="playerRed_duck.png" x="650" y="773" width="56" height="34" frameX="-0" frameY="-0" frameWidth="56" frameHeight="34"/>
|
||||
<SubTexture name="playerRed_fall.png" x="850" y="699" width="39" height="50" frameX="-0" frameY="-0" frameWidth="39" frameHeight="50"/>
|
||||
<SubTexture name="playerRed_hit.png" x="650" y="646" width="56" height="38" frameX="-0" frameY="-0" frameWidth="56" frameHeight="38"/>
|
||||
<SubTexture name="playerRed_roll.png" x="808" y="251" width="40" height="40" frameX="-0" frameY="-0" frameWidth="40" frameHeight="40"/>
|
||||
<SubTexture name="playerRed_stand.png" x="850" y="518" width="39" height="48" frameX="-0" frameY="-0" frameWidth="39" frameHeight="48"/>
|
||||
<SubTexture name="playerRed_swim1.png" x="757" y="925" width="47" height="50" frameX="-0" frameY="-0" frameWidth="47" frameHeight="50"/>
|
||||
<SubTexture name="playerRed_swim2.png" x="715" y="56" width="48" height="51" frameX="-0" frameY="-0" frameWidth="48" frameHeight="51"/>
|
||||
<SubTexture name="playerRed_switch1.png" x="704" y="950" width="52" height="48" frameX="-0" frameY="-0" frameWidth="52" frameHeight="48"/>
|
||||
<SubTexture name="playerRed_switch2.png" x="707" y="559" width="51" height="48" frameX="-0" frameY="-0" frameWidth="51" frameHeight="48"/>
|
||||
<SubTexture name="playerRed_up1.png" x="850" y="469" width="39" height="48" frameX="-0" frameY="-0" frameWidth="39" frameHeight="48"/>
|
||||
<SubTexture name="playerRed_up2.png" x="850" y="0" width="39" height="46" frameX="-0" frameY="-0" frameWidth="39" frameHeight="46"/>
|
||||
<SubTexture name="playerRed_up3.png" x="650" y="685" width="56" height="38" frameX="-0" frameY="-0" frameWidth="56" frameHeight="38"/>
|
||||
<SubTexture name="playerRed_walk1.png" x="850" y="47" width="39" height="48" frameX="-0" frameY="-0" frameWidth="39" frameHeight="48"/>
|
||||
<SubTexture name="playerRed_walk2.png" x="850" y="96" width="39" height="45" frameX="-0" frameY="-0" frameWidth="39" frameHeight="45"/>
|
||||
<SubTexture name="playerRed_walk3.png" x="849" y="251" width="39" height="45" frameX="-0" frameY="-0" frameWidth="39" frameHeight="45"/>
|
||||
<SubTexture name="playerRed_walk4.png" x="710" y="384" width="49" height="42" frameX="-0" frameY="-0" frameWidth="49" frameHeight="42"/>
|
||||
<SubTexture name="playerRed_walk5.png" x="130" y="975" width="64" height="38" frameX="-0" frameY="-0" frameWidth="64" frameHeight="38"/>
|
||||
<SubTexture name="puzzleGreen.png" x="928" y="914" width="34" height="34" frameX="-0" frameY="-0" frameWidth="34" frameHeight="34"/>
|
||||
<SubTexture name="puzzleRed.png" x="928" y="879" width="34" height="34" frameX="-0" frameY="-0" frameWidth="34" frameHeight="34"/>
|
||||
<SubTexture name="redCrystal.png" x="890" y="845" width="32" height="30" frameX="-0" frameY="-0" frameWidth="32" frameHeight="30"/>
|
||||
<SubTexture name="redGem.png" x="964" y="820" width="22" height="22" frameX="-0" frameY="-0" frameWidth="22" frameHeight="22"/>
|
||||
<SubTexture name="redJewel.png" x="964" y="728" width="24" height="22" frameX="-0" frameY="-0" frameWidth="24" frameHeight="22"/>
|
||||
<SubTexture name="signArrow.png" x="713" y="303" width="48" height="39" frameX="-0" frameY="-0" frameWidth="48" frameHeight="39"/>
|
||||
<SubTexture name="signArrow_BL.png" x="806" y="396" width="42" height="55" frameX="-0" frameY="-0" frameWidth="42" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_BR.png" x="808" y="195" width="41" height="55" frameX="-0" frameY="-0" frameWidth="41" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_TL.png" x="806" y="865" width="42" height="55" frameX="-0" frameY="-0" frameWidth="42" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_TR.png" x="805" y="965" width="42" height="55" frameX="-0" frameY="-0" frameWidth="42" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_down.png" x="850" y="750" width="39" height="58" frameX="-0" frameY="-0" frameWidth="39" frameHeight="58"/>
|
||||
<SubTexture name="signArrow_left.png" x="715" y="0" width="48" height="55" frameX="-0" frameY="-0" frameWidth="48" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_right.png" x="713" y="203" width="48" height="55" frameX="-0" frameY="-0" frameWidth="48" frameHeight="55"/>
|
||||
<SubTexture name="signArrow_up.png" x="850" y="640" width="39" height="58" frameX="-0" frameY="-0" frameWidth="39" frameHeight="58"/>
|
||||
<SubTexture name="signLarge.png" x="585" y="325" width="64" height="55" frameX="-0" frameY="-0" frameWidth="64" frameHeight="55"/>
|
||||
<SubTexture name="signSmall.png" x="805" y="699" width="44" height="55" frameX="-0" frameY="-0" frameWidth="44" frameHeight="55"/>
|
||||
<SubTexture name="signpost.png" x="990" y="875" width="12" height="55" frameX="-0" frameY="-0" frameWidth="12" frameHeight="55"/>
|
||||
<SubTexture name="spikesHigh.png" x="520" y="764" width="64" height="30" frameX="-0" frameY="-0" frameWidth="64" frameHeight="30"/>
|
||||
<SubTexture name="spikesLow.png" x="260" y="996" width="64" height="26" frameX="-0" frameY="-0" frameWidth="64" frameHeight="26"/>
|
||||
<SubTexture name="switchGreen_left.png" x="757" y="976" width="47" height="47" frameX="-0" frameY="-0" frameWidth="47" frameHeight="47"/>
|
||||
<SubTexture name="switchGreen_mid.png" x="961" y="407" width="30" height="58" frameX="-0" frameY="-0" frameWidth="30" frameHeight="58"/>
|
||||
<SubTexture name="switchGreen_off.png" x="964" y="577" width="26" height="40" frameX="-0" frameY="-0" frameWidth="26" frameHeight="40"/>
|
||||
<SubTexture name="switchGreen_on.png" x="963" y="104" width="26" height="40" frameX="-0" frameY="-0" frameWidth="26" frameHeight="40"/>
|
||||
<SubTexture name="switchGreen_right.png" x="758" y="608" width="47" height="47" frameX="-0" frameY="-0" frameWidth="47" frameHeight="47"/>
|
||||
<SubTexture name="switchRed_left.png" x="758" y="876" width="47" height="47" frameX="-0" frameY="-0" frameWidth="47" frameHeight="47"/>
|
||||
<SubTexture name="switchRed_mid.png" x="961" y="348" width="30" height="58" frameX="-0" frameY="-0" frameWidth="30" frameHeight="58"/>
|
||||
<SubTexture name="switchRed_off.png" x="963" y="879" width="26" height="40" frameX="-0" frameY="-0" frameWidth="26" frameHeight="40"/>
|
||||
<SubTexture name="switchRed_on.png" x="964" y="618" width="26" height="40" frameX="-0" frameY="-0" frameWidth="26" frameHeight="40"/>
|
||||
<SubTexture name="switchRed_right.png" x="715" y="108" width="47" height="47" frameX="-0" frameY="-0" frameWidth="47" frameHeight="47"/>
|
||||
<SubTexture name="tileBlue_01.png" x="390" y="636" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileBlue_02.png" x="390" y="585" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileBlue_03.png" x="390" y="520" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_04.png" x="390" y="455" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_05.png" x="390" y="390" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_06.png" x="390" y="325" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_07.png" x="390" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_08.png" x="390" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_09.png" x="390" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_10.png" x="390" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_11.png" x="390" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_12.png" x="325" y="947" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_13.png" x="325" y="882" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_14.png" x="325" y="817" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_15.png" x="325" y="752" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_16.png" x="325" y="687" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_17.png" x="325" y="622" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_18.png" x="325" y="557" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_19.png" x="325" y="492" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_20.png" x="390" y="882" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_21.png" x="325" y="362" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_22.png" x="325" y="297" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_23.png" x="325" y="232" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_24.png" x="325" y="167" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_25.png" x="325" y="102" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBlue_26.png" x="325" y="51" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileBlue_27.png" x="325" y="0" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileBrown_01.png" x="260" y="931" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_02.png" x="260" y="866" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_03.png" x="260" y="801" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_04.png" x="260" y="736" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_05.png" x="260" y="682" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileBrown_06.png" x="260" y="628" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileBrown_07.png" x="260" y="574" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileBrown_08.png" x="260" y="520" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileBrown_09.png" x="260" y="455" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_10.png" x="260" y="390" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_11.png" x="260" y="325" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_12.png" x="260" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_13.png" x="260" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_14.png" x="260" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_15.png" x="260" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_16.png" x="260" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_17.png" x="195" y="947" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_18.png" x="195" y="882" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_19.png" x="195" y="817" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_20.png" x="195" y="752" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_21.png" x="195" y="687" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_22.png" x="195" y="622" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_23.png" x="195" y="557" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_24.png" x="195" y="492" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_25.png" x="195" y="427" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_26.png" x="195" y="362" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileBrown_27.png" x="585" y="557" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_01.png" x="195" y="311" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileGreen_02.png" x="195" y="260" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileGreen_03.png" x="195" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_04.png" x="195" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_05.png" x="195" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_06.png" x="195" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_07.png" x="130" y="910" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_08.png" x="130" y="845" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_09.png" x="130" y="780" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_10.png" x="130" y="715" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_11.png" x="130" y="650" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_12.png" x="130" y="585" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_13.png" x="130" y="520" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_14.png" x="130" y="455" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_15.png" x="130" y="390" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_16.png" x="130" y="325" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_17.png" x="130" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_18.png" x="130" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_19.png" x="130" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_20.png" x="130" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_21.png" x="130" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_22.png" x="65" y="925" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_23.png" x="65" y="860" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_24.png" x="65" y="795" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_25.png" x="65" y="730" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileGreen_26.png" x="65" y="679" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileGreen_27.png" x="65" y="628" width="64" height="50" frameX="-0" frameY="-0" frameWidth="64" frameHeight="50"/>
|
||||
<SubTexture name="tileYellow_01.png" x="65" y="574" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileYellow_02.png" x="65" y="520" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileYellow_03.png" x="0" y="964" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="tileYellow_04.png" x="585" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_05.png" x="65" y="455" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_06.png" x="65" y="390" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_07.png" x="65" y="325" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_08.png" x="65" y="260" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_09.png" x="65" y="195" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_10.png" x="65" y="130" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_11.png" x="65" y="65" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_12.png" x="65" y="0" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_13.png" x="0" y="899" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_14.png" x="0" y="834" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_15.png" x="0" y="769" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_16.png" x="0" y="704" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_17.png" x="0" y="639" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_18.png" x="0" y="574" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_19.png" x="0" y="509" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_20.png" x="0" y="444" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_21.png" x="0" y="379" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_22.png" x="0" y="314" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_23.png" x="0" y="249" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_24.png" x="0" y="184" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_25.png" x="0" y="119" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_26.png" x="0" y="54" width="64" height="64" frameX="-0" frameY="-0" frameWidth="64" frameHeight="64"/>
|
||||
<SubTexture name="tileYellow_27.png" x="0" y="0" width="64" height="53" frameX="-0" frameY="-0" frameWidth="64" frameHeight="53"/>
|
||||
<SubTexture name="vine.png" x="990" y="65" width="10" height="64" frameX="-0" frameY="-0" frameWidth="10" frameHeight="64"/>
|
||||
<SubTexture name="vine_bottom.png" x="989" y="705" width="10" height="38" frameX="-0" frameY="-0" frameWidth="10" frameHeight="38"/>
|
||||
<SubTexture name="vine_bottomAlt.png" x="964" y="659" width="25" height="45" frameX="-0" frameY="-0" frameWidth="25" frameHeight="45"/>
|
||||
<SubTexture name="yellowCrystal.png" x="928" y="491" width="32" height="30" frameX="-0" frameY="-0" frameWidth="32" frameHeight="30"/>
|
||||
<SubTexture name="yellowGem.png" x="964" y="751" width="22" height="22" frameX="-0" frameY="-0" frameWidth="22" frameHeight="22"/>
|
||||
<SubTexture name="yellowJewel.png" x="963" y="920" width="24" height="22" frameX="-0" frameY="-0" frameWidth="24" frameHeight="22"/>
|
||||
</TextureAtlas>
|
@ -0,0 +1,160 @@
|
||||
// Copyright (c) 2017 The vulkano developers
|
||||
// Licensed under the Apache License, Version 2.0
|
||||
// <LICENSE-APACHE or
|
||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT
|
||||
// license <LICENSE-MIT or http://opensource.org/licenses/MIT>,
|
||||
// at your option. All files in the project carrying such
|
||||
// notice may not be copied, modified, or distributed except
|
||||
// according to those terms.
|
||||
|
||||
// This example demonstrates how to use the compute capabilities of Vulkan.
|
||||
//
|
||||
// While graphics cards have traditionally been used for graphical operations, over time they have
|
||||
// been more or more used for general-purpose operations as well. This is called "General-Purpose
|
||||
// GPU", or *GPGPU*. This is what this example demonstrates.
|
||||
|
||||
use vulkano::buffer::{BufferUsage, CpuAccessibleBuffer};
|
||||
use vulkano::command_buffer::AutoCommandBufferBuilder;
|
||||
use vulkano::descriptor::descriptor_set::PersistentDescriptorSet;
|
||||
use vulkano::device::{Device, DeviceExtensions};
|
||||
use vulkano::instance::{Instance, InstanceExtensions, PhysicalDevice};
|
||||
use vulkano::pipeline::ComputePipeline;
|
||||
use vulkano::sync::GpuFuture;
|
||||
use vulkano::sync;
|
||||
|
||||
use std::sync::Arc;
|
||||
|
||||
fn main() {
|
||||
// As with other examples, the first step is to create an instance.
|
||||
let instance = Instance::new(None, &InstanceExtensions::none(), None).unwrap();
|
||||
|
||||
// Choose which physical device to use.
|
||||
let physical = PhysicalDevice::enumerate(&instance).next().unwrap();
|
||||
|
||||
// Choose the queue of the physical device which is going to run our compute operation.
|
||||
//
|
||||
// The Vulkan specs guarantee that a compliant implementation must provide at least one queue
|
||||
// that supports compute operations.
|
||||
let queue_family = physical.queue_families().find(|&q| q.supports_compute()).unwrap();
|
||||
|
||||
// Now initializing the device.
|
||||
let (device, mut queues) = Device::new(physical,
|
||||
physical.supported_features(),
|
||||
&DeviceExtensions::none(),
|
||||
[(queue_family, 0.5)].iter().cloned()).unwrap();
|
||||
|
||||
// Since we can request multiple queues, the `queues` variable is in fact an iterator. In this
|
||||
// example we use only one queue, so we just retrieve the first and only element of the
|
||||
// iterator and throw it away.
|
||||
let queue = queues.next().unwrap();
|
||||
|
||||
println!("Device initialized");
|
||||
|
||||
// Now let's get to the actual example.
|
||||
//
|
||||
// What we are going to do is very basic: we are going to fill a buffer with 64k integers
|
||||
// and ask the GPU to multiply each of them by 12.
|
||||
//
|
||||
// GPUs are very good at parallel computations (SIMD-like operations), and thus will do this
|
||||
// much more quickly than a CPU would do. While a CPU would typically multiply them one by one
|
||||
// or four by four, a GPU will do it by groups of 32 or 64.
|
||||
//
|
||||
// Note however that in a real-life situation for such a simple operation the cost of
|
||||
// accessing memory usually outweighs the benefits of a faster calculation. Since both the CPU
|
||||
// and the GPU will need to access data, there is no other choice but to transfer the data
|
||||
// through the slow PCI express bus.
|
||||
|
||||
// We need to create the compute pipeline that describes our operation.
|
||||
//
|
||||
// If you are familiar with graphics pipeline, the principle is the same except that compute
|
||||
// pipelines are much simpler to create.
|
||||
let pipeline = Arc::new({
|
||||
mod cs {
|
||||
vulkano_shaders::shader!{
|
||||
ty: "compute",
|
||||
src: "
|
||||
#version 450
|
||||
|
||||
layout(local_size_x = 64, local_size_y = 1, local_size_z = 1) in;
|
||||
|
||||
layout(set = 0, binding = 0) buffer Data {
|
||||
uint data[];
|
||||
} data;
|
||||
|
||||
void main() {
|
||||
uint idx = gl_GlobalInvocationID.x;
|
||||
data.data[idx] *= 12;
|
||||
}"
|
||||
}
|
||||
}
|
||||
let shader = cs::Shader::load(device.clone()).unwrap();
|
||||
ComputePipeline::new(device.clone(), &shader.main_entry_point(), &()).unwrap()
|
||||
});
|
||||
|
||||
// We start by creating the buffer that will store the data.
|
||||
let data_buffer = {
|
||||
// Iterator that produces the data.
|
||||
let data_iter = (0 .. 65536u32).map(|n| n);
|
||||
// Builds the buffer and fills it with this iterator.
|
||||
CpuAccessibleBuffer::from_iter(device.clone(), BufferUsage::all(), data_iter).unwrap()
|
||||
};
|
||||
|
||||
// In order to let the shader access the buffer, we need to build a *descriptor set* that
|
||||
// contains the buffer.
|
||||
//
|
||||
// The resources that we bind to the descriptor set must match the resources expected by the
|
||||
// pipeline which we pass as the first parameter.
|
||||
//
|
||||
// If you want to run the pipeline on multiple different buffers, you need to create multiple
|
||||
// descriptor sets that each contain the buffer you want to run the shader on.
|
||||
let set = Arc::new(PersistentDescriptorSet::start(pipeline.clone(), 0)
|
||||
.add_buffer(data_buffer.clone()).unwrap()
|
||||
.build().unwrap()
|
||||
);
|
||||
|
||||
// In order to execute our operation, we have to build a command buffer.
|
||||
let command_buffer = AutoCommandBufferBuilder::primary_one_time_submit(device.clone(), queue.family()).unwrap()
|
||||
// The command buffer only does one thing: execute the compute pipeline.
|
||||
// This is called a *dispatch* operation.
|
||||
//
|
||||
// Note that we clone the pipeline and the set. Since they are both wrapped around an
|
||||
// `Arc`, this only clones the `Arc` and not the whole pipeline or set (which aren't
|
||||
// cloneable anyway). In this example we would avoid cloning them since this is the last
|
||||
// time we use them, but in a real code you would probably need to clone them.
|
||||
.dispatch([1024, 1, 1], pipeline.clone(), set.clone(), ()).unwrap()
|
||||
// Finish building the command buffer by calling `build`.
|
||||
.build().unwrap();
|
||||
|
||||
// Let's execute this command buffer now.
|
||||
// To do so, we TODO: this is a bit clumsy, probably needs a shortcut
|
||||
let future = sync::now(device.clone())
|
||||
.then_execute(queue.clone(), command_buffer).unwrap()
|
||||
|
||||
// This line instructs the GPU to signal a *fence* once the command buffer has finished
|
||||
// execution. A fence is a Vulkan object that allows the CPU to know when the GPU has
|
||||
// reached a certain point.
|
||||
// We need to signal a fence here because below we want to block the CPU until the GPU has
|
||||
// reached that point in the execution.
|
||||
.then_signal_fence_and_flush().unwrap();
|
||||
|
||||
// Blocks execution until the GPU has finished the operation. This method only exists on the
|
||||
// future that corresponds to a signalled fence. In other words, this method wouldn't be
|
||||
// available if we didn't call `.then_signal_fence_and_flush()` earlier.
|
||||
// The `None` parameter is an optional timeout.
|
||||
//
|
||||
// Note however that dropping the `future` variable (with `drop(future)` for example) would
|
||||
// block execution as well, and this would be the case even if we didn't call
|
||||
// `.then_signal_fence_and_flush()`.
|
||||
// Therefore the actual point of calling `.then_signal_fence_and_flush()` and `.wait()` is to
|
||||
// make things more explicit. In the future, if the Rust language gets linear types vulkano may
|
||||
// get modified so that only fence-signalled futures can get destroyed like this.
|
||||
future.wait(None).unwrap();
|
||||
|
||||
// Now that the GPU is done, the content of the buffer should have been modified. Let's
|
||||
// check it out.
|
||||
// The call to `read()` would return an error if the buffer was still in use by the GPU.
|
||||
let data_buffer_content = data_buffer.read().unwrap();
|
||||
for n in 0 .. 65536u32 {
|
||||
assert_eq!(data_buffer_content[n as usize], n * 12);
|
||||
}
|
||||
}
|
@ -1,9 +0,0 @@
|
||||
64 64
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
0 0 0 0 0 0 0 0
|
||||
1 1 1 0 0 0 0 0
|
||||
0 0 1 0 0 0 0 0
|
||||
0 0 1 0 0 0 0 0
|
||||
0 0 1 1 1 1 1 1
|
||||
0 0 0 0 0 0 0 0
|