diff --git a/.gitignore b/.gitignore index 6d842f2..ecc1c89 100644 --- a/.gitignore +++ b/.gitignore @@ -118,6 +118,8 @@ Thumbs.db !/ios/xcode/*.xcodeproj/xcshareddata !/ios/xcode/*.xcodeproj/project.pbxproj /ios/xcode/native/ +/ios/IOSLauncher.app +/ios/IOSLauncher.app.dSYM /ios-moe/xcode/*.xcodeproj/* !/ios-moe/xcode/*.xcodeproj/xcshareddata diff --git a/android/AndroidManifest.xml b/android/AndroidManifest.xml index ad3f607..186b7ee 100644 --- a/android/AndroidManifest.xml +++ b/android/AndroidManifest.xml @@ -1,16 +1,16 @@ + package="rocks.poopjournal.halma" > diff --git a/android/assets/Field.png b/android/assets/Field.png new file mode 100644 index 0000000..a07d17c Binary files /dev/null and b/android/assets/Field.png differ diff --git a/android/assets/META-INF/MANIFEST.MF b/android/assets/META-INF/MANIFEST.MF new file mode 100644 index 0000000..7c0aec4 --- /dev/null +++ b/android/assets/META-INF/MANIFEST.MF @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +Main-Class: rocks.poopjournal.halma.desktop.DesktopLauncher + diff --git a/android/assets/Roboto-Thin.fnt b/android/assets/Roboto-Thin.fnt new file mode 100644 index 0000000..2008c23 --- /dev/null +++ b/android/assets/Roboto-Thin.fnt @@ -0,0 +1,199 @@ +info face="Roboto-Thin" size=12 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=1,1,1,1 spacing=0,0 +common lineHeight=19 base=14 scaleW=506 scaleH=61 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="Roboto-Thin.png" +chars count=194 +char id=0 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=14 xadvance=0 page=0 chnl=0 +char id=32 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=-1 xadvance=4 page=0 chnl=0 +char id=33 x=226 y=37 width=2 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=34 x=119 y=51 width=3 height=4 xoffset=0 yoffset=2 xadvance=5 page=0 chnl=0 +char id=35 x=0 y=37 width=10 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=36 x=40 y=2 width=7 height=16 xoffset=0 yoffset=0 xadvance=9 page=0 chnl=0 +char id=37 x=24 y=37 width=11 height=12 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=0 +char id=38 x=472 y=22 width=10 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=39 x=504 y=37 width=1 height=4 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=40 x=4 y=2 width=4 height=18 xoffset=0 yoffset=0 xadvance=5 page=0 chnl=0 +char id=41 x=10 y=2 width=4 height=18 xoffset=-1 yoffset=0 xadvance=5 page=0 chnl=0 +char id=42 x=65 y=51 width=7 height=7 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=43 x=427 y=37 width=9 height=9 xoffset=-1 yoffset=4 xadvance=9 page=0 chnl=0 +char id=44 x=124 y=51 width=2 height=4 xoffset=-1 yoffset=13 xadvance=3 page=0 chnl=0 +char id=45 x=211 y=51 width=5 height=1 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0 +char id=46 x=225 y=51 width=2 height=1 xoffset=0 yoffset=13 xadvance=3 page=0 chnl=0 +char id=47 x=409 y=2 width=6 height=13 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0 +char id=48 x=240 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=49 x=328 y=37 width=4 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0 +char id=50 x=318 y=37 width=8 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=51 x=308 y=37 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=52 x=297 y=37 width=9 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=53 x=288 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0 +char id=54 x=279 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=55 x=269 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=56 x=259 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=57 x=249 y=37 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=58 x=0 y=51 width=2 height=9 xoffset=-1 yoffset=5 xadvance=3 page=0 chnl=0 +char id=59 x=354 y=37 width=2 height=11 xoffset=-1 yoffset=5 xadvance=3 page=0 chnl=0 +char id=60 x=31 y=51 width=7 height=7 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=61 x=128 y=51 width=7 height=4 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0 +char id=62 x=40 y=51 width=7 height=7 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=63 x=211 y=37 width=6 height=12 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0 +char id=64 x=159 y=2 width=13 height=15 xoffset=0 yoffset=2 xadvance=15 page=0 chnl=0 +char id=65 x=13 y=22 width=10 height=12 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0 +char id=66 x=34 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=67 x=166 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=68 x=177 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=69 x=187 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=70 x=197 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=71 x=207 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=72 x=235 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=73 x=246 y=22 width=1 height=12 xoffset=1 yoffset=2 xadvance=5 page=0 chnl=0 +char id=74 x=249 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=75 x=258 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=76 x=269 y=22 width=7 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0 +char id=77 x=278 y=22 width=11 height=12 xoffset=0 yoffset=2 xadvance=13 page=0 chnl=0 +char id=78 x=303 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=79 x=314 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=80 x=325 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=81 x=375 y=2 width=9 height=14 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=82 x=354 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=83 x=374 y=22 width=9 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=84 x=419 y=22 width=9 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=85 x=433 y=22 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=86 x=443 y=22 width=10 height=12 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0 +char id=87 x=455 y=22 width=15 height=12 xoffset=-1 yoffset=2 xadvance=15 page=0 chnl=0 +char id=88 x=484 y=22 width=10 height=12 xoffset=-1 yoffset=2 xadvance=10 page=0 chnl=0 +char id=89 x=12 y=37 width=10 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=90 x=496 y=22 width=9 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=91 x=16 y=2 width=3 height=17 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=0 +char id=92 x=417 y=2 width=6 height=13 xoffset=-1 yoffset=2 xadvance=6 page=0 chnl=0 +char id=93 x=21 y=2 width=3 height=17 xoffset=-2 yoffset=0 xadvance=3 page=0 chnl=0 +char id=94 x=81 y=51 width=6 height=6 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=95 x=190 y=51 width=8 height=1 xoffset=-2 yoffset=14 xadvance=7 page=0 chnl=0 +char id=96 x=178 y=51 width=3 height=2 xoffset=0 yoffset=2 xadvance=4 page=0 chnl=0 +char id=97 x=472 y=37 width=7 height=9 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=98 x=37 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=99 x=481 y=37 width=7 height=9 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=100 x=66 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=101 x=4 y=51 width=7 height=9 xoffset=-1 yoffset=5 xadvance=7 page=0 chnl=0 +char id=102 x=392 y=2 width=6 height=13 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=0 +char id=103 x=112 y=37 width=7 height=12 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=104 x=121 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=105 x=167 y=37 width=2 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=106 x=123 y=2 width=5 height=15 xoffset=-3 yoffset=2 xadvance=3 page=0 chnl=0 +char id=107 x=181 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=8 page=0 chnl=0 +char id=108 x=190 y=37 width=1 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=109 x=457 y=37 width=13 height=9 xoffset=0 yoffset=5 xadvance=15 page=0 chnl=0 +char id=110 x=448 y=37 width=7 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=111 x=438 y=37 width=8 height=9 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=112 x=193 y=37 width=7 height=12 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=113 x=202 y=37 width=7 height=12 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=114 x=410 y=37 width=5 height=9 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0 +char id=115 x=401 y=37 width=7 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=116 x=219 y=37 width=5 height=12 xoffset=-1 yoffset=2 xadvance=5 page=0 chnl=0 +char id=117 x=383 y=37 width=7 height=9 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=118 x=373 y=37 width=8 height=9 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=119 x=490 y=37 width=12 height=9 xoffset=-1 yoffset=5 xadvance=12 page=0 chnl=0 +char id=120 x=417 y=37 width=8 height=9 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=121 x=230 y=37 width=8 height=12 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=122 x=392 y=37 width=7 height=9 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 +char id=123 x=26 y=2 width=5 height=17 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=0 +char id=124 x=386 y=2 width=1 height=14 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=125 x=33 y=2 width=5 height=17 xoffset=-1 yoffset=1 xadvance=5 page=0 chnl=0 +char id=126 x=162 y=51 width=9 height=3 xoffset=0 yoffset=8 xadvance=11 page=0 chnl=0 +char id=160 x=0 y=0 width=0 height=0 xoffset=-1 yoffset=14 xadvance=4 page=0 chnl=0 +char id=161 x=430 y=22 width=1 height=12 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0 +char id=162 x=425 y=2 width=7 height=13 xoffset=0 yoffset=3 xadvance=9 page=0 chnl=0 +char id=163 x=409 y=22 width=8 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=164 x=396 y=22 width=11 height=12 xoffset=0 yoffset=3 xadvance=12 page=0 chnl=0 +char id=165 x=385 y=22 width=9 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +char id=166 x=389 y=2 width=1 height=14 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=167 x=49 y=2 width=8 height=16 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=168 x=183 y=51 width=5 height=1 xoffset=0 yoffset=2 xadvance=7 page=0 chnl=0 +char id=169 x=445 y=2 width=12 height=13 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0 +char id=170 x=112 y=51 width=5 height=6 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=0 +char id=171 x=104 y=51 width=6 height=6 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0 +char id=172 x=148 y=51 width=7 height=4 xoffset=-1 yoffset=8 xadvance=8 page=0 chnl=0 +char id=173 x=200 y=51 width=5 height=1 xoffset=-1 yoffset=8 xadvance=5 page=0 chnl=0 +char id=174 x=459 y=2 width=12 height=13 xoffset=0 yoffset=1 xadvance=14 page=0 chnl=0 +char id=175 x=218 y=51 width=5 height=1 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0 +char id=176 x=142 y=51 width=4 height=4 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0 +char id=177 x=334 y=37 width=8 height=11 xoffset=-1 yoffset=3 xadvance=9 page=0 chnl=0 +char id=178 x=96 y=51 width=6 height=6 xoffset=-1 yoffset=3 xadvance=6 page=0 chnl=0 +char id=179 x=89 y=51 width=5 height=6 xoffset=-1 yoffset=3 xadvance=5 page=0 chnl=0 +char id=180 x=173 y=51 width=3 height=2 xoffset=-1 yoffset=2 xadvance=4 page=0 chnl=0 +char id=181 x=226 y=22 width=7 height=12 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 +char id=182 x=218 y=22 width=6 height=12 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=183 x=207 y=51 width=2 height=1 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0 +char id=184 x=137 y=51 width=3 height=4 xoffset=-1 yoffset=14 xadvance=4 page=0 chnl=0 +char id=185 x=49 y=51 width=3 height=7 xoffset=0 yoffset=2 xadvance=6 page=0 chnl=0 +char id=186 x=74 y=51 width=5 height=6 xoffset=0 yoffset=3 xadvance=7 page=0 chnl=0 +char id=187 x=23 y=51 width=6 height=7 xoffset=0 yoffset=6 xadvance=7 page=0 chnl=0 +char id=188 x=473 y=2 width=10 height=13 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0 +char id=189 x=485 y=2 width=11 height=13 xoffset=0 yoffset=1 xadvance=12 page=0 chnl=0 +char id=190 x=0 y=22 width=11 height=13 xoffset=0 yoffset=2 xadvance=12 page=0 chnl=0 +char id=191 x=131 y=22 width=6 height=12 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0 +char id=192 x=174 y=2 width=10 height=15 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=193 x=186 y=2 width=10 height=15 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=194 x=198 y=2 width=10 height=15 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=195 x=210 y=2 width=10 height=15 xoffset=-2 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=196 x=222 y=2 width=10 height=15 xoffset=-1 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=197 x=59 y=2 width=9 height=16 xoffset=-1 yoffset=-2 xadvance=9 page=0 chnl=0 +char id=198 x=71 y=22 width=14 height=12 xoffset=-1 yoffset=2 xadvance=14 page=0 chnl=0 +char id=199 x=234 y=2 width=9 height=15 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=200 x=245 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=201 x=255 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=202 x=265 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=203 x=275 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=204 x=285 y=2 width=3 height=15 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=0 +char id=205 x=290 y=2 width=3 height=15 xoffset=1 yoffset=-1 xadvance=5 page=0 chnl=0 +char id=206 x=295 y=2 width=5 height=15 xoffset=-1 yoffset=-1 xadvance=5 page=0 chnl=0 +char id=207 x=302 y=2 width=6 height=15 xoffset=-2 yoffset=-1 xadvance=5 page=0 chnl=0 +char id=208 x=291 y=22 width=10 height=12 xoffset=-2 yoffset=2 xadvance=10 page=0 chnl=0 +char id=209 x=310 y=2 width=9 height=15 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=0 +char id=210 x=70 y=2 width=9 height=16 xoffset=0 yoffset=-2 xadvance=11 page=0 chnl=0 +char id=211 x=81 y=2 width=9 height=16 xoffset=0 yoffset=-2 xadvance=11 page=0 chnl=0 +char id=212 x=92 y=2 width=9 height=16 xoffset=0 yoffset=-2 xadvance=11 page=0 chnl=0 +char id=213 x=321 y=2 width=9 height=15 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=0 +char id=214 x=332 y=2 width=9 height=15 xoffset=0 yoffset=-1 xadvance=11 page=0 chnl=0 +char id=215 x=13 y=51 width=8 height=8 xoffset=-1 yoffset=7 xadvance=8 page=0 chnl=0 +char id=216 x=434 y=2 width=9 height=13 xoffset=0 yoffset=2 xadvance=11 page=0 chnl=0 +char id=217 x=103 y=2 width=8 height=16 xoffset=0 yoffset=-2 xadvance=10 page=0 chnl=0 +char id=218 x=113 y=2 width=8 height=16 xoffset=0 yoffset=-2 xadvance=10 page=0 chnl=0 +char id=219 x=343 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=220 x=365 y=2 width=8 height=15 xoffset=0 yoffset=-1 xadvance=10 page=0 chnl=0 +char id=221 x=353 y=2 width=10 height=15 xoffset=-1 yoffset=-1 xadvance=9 page=0 chnl=0 +char id=222 x=139 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=223 x=92 y=37 width=8 height=12 xoffset=0 yoffset=2 xadvance=10 page=0 chnl=0 +char id=224 x=345 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=225 x=157 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=226 x=148 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=227 x=139 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=228 x=498 y=2 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=229 x=25 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=230 x=358 y=37 width=13 height=9 xoffset=-1 yoffset=5 xadvance=13 page=0 chnl=0 +char id=231 x=44 y=22 width=7 height=12 xoffset=-1 yoffset=5 xadvance=8 page=0 chnl=0 +char id=232 x=53 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=233 x=62 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=234 x=96 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=235 x=105 y=22 width=7 height=12 xoffset=-1 yoffset=2 xadvance=7 page=0 chnl=0 +char id=236 x=114 y=22 width=3 height=12 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0 +char id=237 x=119 y=22 width=3 height=12 xoffset=0 yoffset=2 xadvance=3 page=0 chnl=0 +char id=238 x=124 y=22 width=5 height=12 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0 +char id=239 x=85 y=37 width=5 height=12 xoffset=-2 yoffset=2 xadvance=3 page=0 chnl=0 +char id=240 x=400 y=2 width=7 height=13 xoffset=0 yoffset=1 xadvance=9 page=0 chnl=0 +char id=241 x=148 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=242 x=157 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=243 x=171 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=244 x=335 y=22 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=245 x=102 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=246 x=75 y=37 width=8 height=12 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=247 x=54 y=51 width=9 height=7 xoffset=-1 yoffset=5 xadvance=9 page=0 chnl=0 +char id=248 x=344 y=37 width=8 height=11 xoffset=-1 yoffset=4 xadvance=8 page=0 chnl=0 +char id=249 x=87 y=22 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=250 x=365 y=22 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=251 x=57 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=252 x=130 y=37 width=7 height=12 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=253 x=149 y=2 width=8 height=15 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=254 x=140 y=2 width=7 height=15 xoffset=0 yoffset=2 xadvance=9 page=0 chnl=0 +char id=255 x=130 y=2 width=8 height=15 xoffset=-1 yoffset=2 xadvance=8 page=0 chnl=0 +char id=8226 x=157 y=51 width=3 height=3 xoffset=0 yoffset=7 xadvance=5 page=0 chnl=0 +char id=8364 x=46 y=37 width=9 height=12 xoffset=-1 yoffset=2 xadvance=9 page=0 chnl=0 +kernings count=0 diff --git a/android/assets/Skin.atlas b/android/assets/Skin.atlas new file mode 100644 index 0000000..1d46a69 --- /dev/null +++ b/android/assets/Skin.atlas @@ -0,0 +1,31 @@ + +Skin.png +size: 512,512 +format: RGBA8888 +filter: Linear,Linear +repeat: none +Roboto-Thin + rotate: false + xy: 1, 444 + size: 506, 61 + orig: 506, 61 + offset: 0, 0 + index: -1 +BlueButtonDown + rotate: false + xy: 1, 402 + size: 40, 40 + split: 7, 32, 6, 33 + pad: 0, 0, 0, 0 + orig: 40, 40 + offset: 0, 0 + index: -1 +BlueButtonUp + rotate: false + xy: 1, 360 + size: 40, 40 + split: 21, 18, 6, 33 + pad: 0, 0, 0, 0 + orig: 40, 40 + offset: 0, 0 + index: -1 diff --git a/android/assets/Skin.json b/android/assets/Skin.json new file mode 100644 index 0000000..bb6f8ad --- /dev/null +++ b/android/assets/Skin.json @@ -0,0 +1,50 @@ +{ +com.badlogic.gdx.graphics.g2d.BitmapFont: { + Standart: { + file: Roboto-Thin.fnt + } +} +com.badlogic.gdx.graphics.Color: { + white: { + r: 1 + g: 1 + b: 1 + a: 1 + } +} +com.badlogic.gdx.scenes.scene2d.ui.Button$ButtonStyle: { + default: { + up: BlueButtonUp + down: BlueButtonDown + checked: BlueButtonDown + } +} +com.badlogic.gdx.scenes.scene2d.ui.ImageButton$ImageButtonStyle: { + default: { + parent: default + } +} +com.badlogic.gdx.scenes.scene2d.ui.ImageTextButton$ImageTextButtonStyle: { + default: { + parent: default + font: Standart + } +} +com.badlogic.gdx.scenes.scene2d.ui.Label$LabelStyle: { + default: { + font: Standart + } +} +com.badlogic.gdx.scenes.scene2d.ui.TextButton$TextButtonStyle: { + default: { + parent: default + font: Standart + fontColor: white + } +} +com.badlogic.gdx.scenes.scene2d.ui.TextTooltip$TextTooltipStyle: { + default: { + label: default + } +} +} \ No newline at end of file diff --git a/android/assets/Skin.png b/android/assets/Skin.png new file mode 100644 index 0000000..d7d5d55 Binary files /dev/null and b/android/assets/Skin.png differ diff --git a/android/build.gradle b/android/build.gradle index e16fb42..4f0ad0d 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -1,6 +1,6 @@ android { - buildToolsVersion "28.0.3" - compileSdkVersion 28 + buildToolsVersion "29.0.2" + compileSdkVersion 29 sourceSets { main { manifest.srcFile 'AndroidManifest.xml' @@ -17,9 +17,9 @@ android { exclude 'META-INF/robovm/ios/robovm.xml' } defaultConfig { - applicationId "com.halma.game" - minSdkVersion 9 - targetSdkVersion 28 + applicationId "rocks.poopjournal.halma" + minSdkVersion 14 + targetSdkVersion 29 versionCode 1 versionName "1.0" } @@ -86,59 +86,7 @@ task run(type: Exec) { } def adb = path + "/platform-tools/adb" - commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.halma.game/com.halma.game.AndroidLauncher' + commandLine "$adb", 'shell', 'am', 'start', '-n', 'com.martinzky.halma/com.martinzky.halma.AndroidLauncher' } -// sets up the Android Eclipse project, using the old Ant based build. -eclipse { - // need to specify Java source sets explicitly, SpringSource Gradle Eclipse plugin - // ignores any nodes added in classpath.file.withXml - sourceSets { - main { - java.srcDirs "src", 'gen' - } - } - - jdt { - sourceCompatibility = 1.6 - targetCompatibility = 1.6 - } - - classpath { - plusConfigurations += [ project.configurations.compile ] - containers 'com.android.ide.eclipse.adt.ANDROID_FRAMEWORK', 'com.android.ide.eclipse.adt.LIBRARIES' - } - - project { - name = appName + "-android" - natures 'com.android.ide.eclipse.adt.AndroidNature' - buildCommands.clear(); - buildCommand "com.android.ide.eclipse.adt.ResourceManagerBuilder" - buildCommand "com.android.ide.eclipse.adt.PreCompilerBuilder" - buildCommand "org.eclipse.jdt.core.javabuilder" - buildCommand "com.android.ide.eclipse.adt.ApkBuilder" - } -} - -// sets up the Android Idea project, using the old Ant based build. -idea { - module { - sourceDirs += file("src"); - scopes = [ COMPILE: [plus:[project.configurations.compile]]] - - iml { - withXml { - def node = it.asNode() - def builder = NodeBuilder.newInstance(); - builder.current = node; - builder.component(name: "FacetManager") { - facet(type: "android", name: "Android") { - configuration { - option(name: "UPDATE_PROPERTY_FILES", value:"true") - } - } - } - } - } - } -} +eclipse.project.name = appName + "-android" \ No newline at end of file diff --git a/android/gradle/wrapper/gradle-wrapper.jar b/android/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000..f6b961f Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..7b47795 --- /dev/null +++ b/android/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,6 @@ +#Mon Mar 08 15:15:16 CET 2021 +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip diff --git a/android/gradlew b/android/gradlew new file mode 100644 index 0000000..cccdd3d --- /dev/null +++ b/android/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/android/gradlew.bat b/android/gradlew.bat new file mode 100644 index 0000000..f955316 --- /dev/null +++ b/android/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/android/ic_launcher-web.png b/android/ic_launcher-web.png index 8f0110d..affcb55 100644 Binary files a/android/ic_launcher-web.png and b/android/ic_launcher-web.png differ diff --git a/android/icon_launcher-playstore.png b/android/icon_launcher-playstore.png new file mode 100644 index 0000000..82fe2c6 Binary files /dev/null and b/android/icon_launcher-playstore.png differ diff --git a/android/local.properties b/android/local.properties new file mode 100644 index 0000000..a0622b5 --- /dev/null +++ b/android/local.properties @@ -0,0 +1,8 @@ +## This file must *NOT* be checked into Version Control Systems, +# as it contains information specific to your local configuration. +# +# Location of the SDK. This is only used by Gradle. +# For customization when using a Version Control System, please read the +# header note. +#Mon Mar 08 15:15:11 CET 2021 +sdk.dir=D\:\\dev\\Android diff --git a/android/release/android-release.apk b/android/release/android-release.apk new file mode 100644 index 0000000..2110266 Binary files /dev/null and b/android/release/android-release.apk differ diff --git a/android/release/output.json b/android/release/output.json new file mode 100644 index 0000000..76182a3 --- /dev/null +++ b/android/release/output.json @@ -0,0 +1 @@ +[{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":1,"versionName":"1.0","enabled":true,"outputFile":"android-release.apk","fullName":"release","baseName":"release"},"path":"android-release.apk","properties":{}}] \ No newline at end of file diff --git a/android/res/drawable-anydpi-v26/ic_launcher.xml b/android/res/drawable-anydpi-v26/ic_launcher.xml index 6c7313a..5206e63 100644 --- a/android/res/drawable-anydpi-v26/ic_launcher.xml +++ b/android/res/drawable-anydpi-v26/ic_launcher.xml @@ -1,6 +1,4 @@ - - diff --git a/android/res/drawable-hdpi/ic_launcher.png b/android/res/drawable-hdpi/ic_launcher.png index 91f696b..affcb55 100644 Binary files a/android/res/drawable-hdpi/ic_launcher.png and b/android/res/drawable-hdpi/ic_launcher.png differ diff --git a/android/res/drawable-mdpi/ic_launcher.png b/android/res/drawable-mdpi/ic_launcher.png index c1ab239..affcb55 100644 Binary files a/android/res/drawable-mdpi/ic_launcher.png and b/android/res/drawable-mdpi/ic_launcher.png differ diff --git a/android/res/drawable-xhdpi/ic_launcher.png b/android/res/drawable-xhdpi/ic_launcher.png index 2011cc0..affcb55 100644 Binary files a/android/res/drawable-xhdpi/ic_launcher.png and b/android/res/drawable-xhdpi/ic_launcher.png differ diff --git a/android/res/drawable-xxhdpi/ic_launcher.png b/android/res/drawable-xxhdpi/ic_launcher.png index 25fcef0..affcb55 100644 Binary files a/android/res/drawable-xxhdpi/ic_launcher.png and b/android/res/drawable-xxhdpi/ic_launcher.png differ diff --git a/android/res/drawable-xxxhdpi/ic_launcher.png b/android/res/drawable-xxxhdpi/ic_launcher.png index d109946..affcb55 100644 Binary files a/android/res/drawable-xxxhdpi/ic_launcher.png and b/android/res/drawable-xxxhdpi/ic_launcher.png differ diff --git a/android/res/drawable/icon_launcher_background.xml b/android/res/drawable/icon_launcher_background.xml new file mode 100644 index 0000000..ca3826a --- /dev/null +++ b/android/res/drawable/icon_launcher_background.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/android/res/ic_launcher.png b/android/res/ic_launcher.png new file mode 100644 index 0000000..affcb55 Binary files /dev/null and b/android/res/ic_launcher.png differ diff --git a/android/res/mipmap-anydpi-v26/icon_launcher.xml b/android/res/mipmap-anydpi-v26/icon_launcher.xml new file mode 100644 index 0000000..e28f836 --- /dev/null +++ b/android/res/mipmap-anydpi-v26/icon_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/res/mipmap-anydpi-v26/icon_launcher_round.xml b/android/res/mipmap-anydpi-v26/icon_launcher_round.xml new file mode 100644 index 0000000..e28f836 --- /dev/null +++ b/android/res/mipmap-anydpi-v26/icon_launcher_round.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/android/res/mipmap-hdpi/icon_launcher.png b/android/res/mipmap-hdpi/icon_launcher.png new file mode 100644 index 0000000..14b41d3 Binary files /dev/null and b/android/res/mipmap-hdpi/icon_launcher.png differ diff --git a/android/res/mipmap-hdpi/icon_launcher_foreground.png b/android/res/mipmap-hdpi/icon_launcher_foreground.png new file mode 100644 index 0000000..2efdbb0 Binary files /dev/null and b/android/res/mipmap-hdpi/icon_launcher_foreground.png differ diff --git a/android/res/mipmap-hdpi/icon_launcher_round.png b/android/res/mipmap-hdpi/icon_launcher_round.png new file mode 100644 index 0000000..112a218 Binary files /dev/null and b/android/res/mipmap-hdpi/icon_launcher_round.png differ diff --git a/android/res/mipmap-mdpi/icon_launcher.png b/android/res/mipmap-mdpi/icon_launcher.png new file mode 100644 index 0000000..3d727e6 Binary files /dev/null and b/android/res/mipmap-mdpi/icon_launcher.png differ diff --git a/android/res/mipmap-mdpi/icon_launcher_foreground.png b/android/res/mipmap-mdpi/icon_launcher_foreground.png new file mode 100644 index 0000000..fd9a071 Binary files /dev/null and b/android/res/mipmap-mdpi/icon_launcher_foreground.png differ diff --git a/android/res/mipmap-mdpi/icon_launcher_round.png b/android/res/mipmap-mdpi/icon_launcher_round.png new file mode 100644 index 0000000..f7ea234 Binary files /dev/null and b/android/res/mipmap-mdpi/icon_launcher_round.png differ diff --git a/android/res/mipmap-xhdpi/icon_launcher.png b/android/res/mipmap-xhdpi/icon_launcher.png new file mode 100644 index 0000000..591d973 Binary files /dev/null and b/android/res/mipmap-xhdpi/icon_launcher.png differ diff --git a/android/res/mipmap-xhdpi/icon_launcher_foreground.png b/android/res/mipmap-xhdpi/icon_launcher_foreground.png new file mode 100644 index 0000000..828c053 Binary files /dev/null and b/android/res/mipmap-xhdpi/icon_launcher_foreground.png differ diff --git a/android/res/mipmap-xhdpi/icon_launcher_round.png b/android/res/mipmap-xhdpi/icon_launcher_round.png new file mode 100644 index 0000000..b53b492 Binary files /dev/null and b/android/res/mipmap-xhdpi/icon_launcher_round.png differ diff --git a/android/res/mipmap-xxhdpi/icon_launcher.png b/android/res/mipmap-xxhdpi/icon_launcher.png new file mode 100644 index 0000000..1a313a8 Binary files /dev/null and b/android/res/mipmap-xxhdpi/icon_launcher.png differ diff --git a/android/res/mipmap-xxhdpi/icon_launcher_foreground.png b/android/res/mipmap-xxhdpi/icon_launcher_foreground.png new file mode 100644 index 0000000..881a045 Binary files /dev/null and b/android/res/mipmap-xxhdpi/icon_launcher_foreground.png differ diff --git a/android/res/mipmap-xxhdpi/icon_launcher_round.png b/android/res/mipmap-xxhdpi/icon_launcher_round.png new file mode 100644 index 0000000..b510dff Binary files /dev/null and b/android/res/mipmap-xxhdpi/icon_launcher_round.png differ diff --git a/android/res/mipmap-xxxhdpi/icon_launcher.png b/android/res/mipmap-xxxhdpi/icon_launcher.png new file mode 100644 index 0000000..60ce87e Binary files /dev/null and b/android/res/mipmap-xxxhdpi/icon_launcher.png differ diff --git a/android/res/mipmap-xxxhdpi/icon_launcher_foreground.png b/android/res/mipmap-xxxhdpi/icon_launcher_foreground.png new file mode 100644 index 0000000..e8bdba5 Binary files /dev/null and b/android/res/mipmap-xxxhdpi/icon_launcher_foreground.png differ diff --git a/android/res/mipmap-xxxhdpi/icon_launcher_round.png b/android/res/mipmap-xxxhdpi/icon_launcher_round.png new file mode 100644 index 0000000..08dd1a8 Binary files /dev/null and b/android/res/mipmap-xxxhdpi/icon_launcher_round.png differ diff --git a/android/res/values/strings.xml b/android/res/values/strings.xml index 8e1c483..65f3f0e 100644 --- a/android/res/values/strings.xml +++ b/android/res/values/strings.xml @@ -1,6 +1,6 @@ - HalmaGame + Halma diff --git a/android/src/rocks/poopjournal/halma/AndroidLauncher.java b/android/src/rocks/poopjournal/halma/AndroidLauncher.java new file mode 100644 index 0000000..67ed5a6 --- /dev/null +++ b/android/src/rocks/poopjournal/halma/AndroidLauncher.java @@ -0,0 +1,15 @@ +package rocks.poopjournal.halma; + +import android.os.Bundle; + +import com.badlogic.gdx.backends.android.AndroidApplication; +import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; + +public class AndroidLauncher extends AndroidApplication { + @Override + protected void onCreate (Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + AndroidApplicationConfiguration config = new AndroidApplicationConfiguration(); + initialize(new Halma(), config); + } +} diff --git a/build.gradle b/build.gradle index b0d4f6b..d2b230c 100644 --- a/build.gradle +++ b/build.gradle @@ -10,9 +10,9 @@ buildscript { google() } dependencies { - classpath 'org.wisepersist:gwt-gradle-plugin:1.0.6' - classpath 'com.android.tools.build:gradle:3.2.1' - classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.5' + classpath 'org.wisepersist:gwt-gradle-plugin:1.0.9' + classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.mobidevelop.robovm:robovm-gradle-plugin:2.3.8' } @@ -20,13 +20,12 @@ buildscript { allprojects { apply plugin: "eclipse" - apply plugin: "idea" version = '1.0' ext { - appName = "HalmaGame" - gdxVersion = '1.9.9' - roboVMVersion = '2.3.5' + appName = "Halma" + gdxVersion = '1.9.10' + roboVMVersion = '2.3.8' box2DLightsVersion = '1.4' ashleyVersion = '1.7.0' aiVersion = '1.8.0' @@ -35,6 +34,7 @@ allprojects { repositories { mavenLocal() mavenCentral() + jcenter() google() maven { url "https://oss.sonatype.org/content/repositories/snapshots/" } maven { url "https://oss.sonatype.org/content/repositories/releases/" } @@ -42,15 +42,14 @@ allprojects { } project(":desktop") { - apply plugin: "java" + apply plugin: "java-library" dependencies { - compile project(":core") - compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" - compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" - compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" - compile "com.badlogicgames.gdx:gdx-tools:$gdxVersion" + implementation project(":core") + api "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion" + api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop" + api "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop" } } @@ -61,69 +60,63 @@ project(":android") { configurations { natives } dependencies { - compile project(":core") - compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" + implementation project(":core") + api "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86_64" - compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" + api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-arm64-v8a" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86" natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86_64" - compile "com.badlogicgames.gdx:gdx-ai:$aiVersion" } } project(":ios") { - apply plugin: "java" + apply plugin: "java-library" apply plugin: "robovm" dependencies { - compile project(":core") - compile "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" - compile "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" - compile "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" - compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" - compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios" + implementation project(":core") + api "com.mobidevelop.robovm:robovm-rt:$roboVMVersion" + api "com.mobidevelop.robovm:robovm-cocoatouch:$roboVMVersion" + api "com.badlogicgames.gdx:gdx-backend-robovm:$gdxVersion" + api "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-ios" + api "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-ios" } } project(":html") { + apply plugin: "java-library" apply plugin: "gwt" apply plugin: "war" dependencies { - compile project(":core") - compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" - compile "com.badlogicgames.gdx:gdx:$gdxVersion:sources" - compile "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" - compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources" - compile "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources" - compile "com.badlogicgames.gdx:gdx-ai:$aiVersion:sources" + implementation project(":core") + api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion" + api "com.badlogicgames.gdx:gdx:$gdxVersion:sources" + api "com.badlogicgames.gdx:gdx-backend-gwt:$gdxVersion:sources" + api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion:sources" + api "com.badlogicgames.gdx:gdx-box2d-gwt:$gdxVersion:sources" } } project(":core") { - apply plugin: "java" + apply plugin: "java-library" dependencies { - compile "com.badlogicgames.gdx:gdx:$gdxVersion" - compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" - compile "com.badlogicgames.gdx:gdx-ai:$aiVersion" + api "com.badlogicgames.gdx:gdx:$gdxVersion" + api "com.badlogicgames.gdx:gdx-box2d:$gdxVersion" } } - -tasks.eclipse.doLast { - delete ".project" -} \ No newline at end of file diff --git a/core/build.gradle b/core/build.gradle index 03cd1be..2abc640 100644 --- a/core/build.gradle +++ b/core/build.gradle @@ -1,11 +1,8 @@ apply plugin: "java" -sourceCompatibility = 1.6 +sourceCompatibility = 1.7 [compileJava, compileTestJava]*.options*.encoding = 'UTF-8' sourceSets.main.java.srcDirs = [ "src/" ] - -eclipse.project { - name = appName + "-core" -} +eclipse.project.name = appName + "-core" diff --git a/core/src/Halma.gwt.xml b/core/src/Halma.gwt.xml new file mode 100644 index 0000000..1ffe182 --- /dev/null +++ b/core/src/Halma.gwt.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/core/src/rocks/poopjournal/halma/BaseScreen.java b/core/src/rocks/poopjournal/halma/BaseScreen.java new file mode 100644 index 0000000..59fdd9b --- /dev/null +++ b/core/src/rocks/poopjournal/halma/BaseScreen.java @@ -0,0 +1,72 @@ +package rocks.poopjournal.halma; + +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.ScreenAdapter; +import com.badlogic.gdx.graphics.Color; +import com.badlogic.gdx.graphics.GL20; +import com.badlogic.gdx.scenes.scene2d.*; +import com.badlogic.gdx.scenes.scene2d.ui.*; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; +import com.badlogic.gdx.utils.viewport.ScreenViewport; + +import java.util.List; + +public abstract class BaseScreen extends ScreenAdapter { + protected Color bgColor; + protected Skin skin; + protected Stage stage; + protected Table layout; + protected Halma halma; + protected Listener listener; + + public BaseScreen(Halma halma) { + this.halma = halma; + create(); + } + + private void create(){ + bgColor = Color.OLIVE; + skin = new Skin(Gdx.files.internal("Skin.json")); + stage = new Stage(new ScreenViewport()); + layout = new Table(skin); + listener = new Listener(); + + Gdx.input.setInputProcessor(stage); + stage.addActor(layout); + layout.setFillParent(true); + } + + @Override + public void render(float delta) { + Gdx.gl.glClearColor(bgColor.r, bgColor.g, bgColor.b, bgColor.a); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + + stage.act(); + stage.draw(); + + super.render(delta); + } + + @Override + public void resize(int width, int height) { + stage.getViewport().update(width, height, true); + } + + public void clicked(Actor a){ + System.out.println("clicked"); + } + public class Listener extends ClickListener { + @Override + public void clicked(InputEvent event, float x, float y) { + BaseScreen.this.clicked(event.getListenerActor()); + } + } + protected void addButtonsToListener(Actor ... actors){ + for(Actor a : actors) + a.addListener(listener); + } + protected void addButtonsToListener(List list){ + for(Actor a : list) + a.addListener(listener); + } +} diff --git a/core/src/rocks/poopjournal/halma/ErgebnisScreen.java b/core/src/rocks/poopjournal/halma/ErgebnisScreen.java new file mode 100644 index 0000000..882e490 --- /dev/null +++ b/core/src/rocks/poopjournal/halma/ErgebnisScreen.java @@ -0,0 +1,22 @@ +package rocks.poopjournal.halma; + +import com.badlogic.gdx.scenes.scene2d.Actor; +import rocks.poopjournal.halma.play.Player; + +public class ErgebnisScreen extends BaseScreen{ + private Player player; + public ErgebnisScreen(Halma halma, Player player) { + super(halma); + this.player = player; + create(); + } + public void create(){ + layout.add(player.getName() + " hat gewonnen! \n GLÜCKWUNSCH \n drücke um zurück zu kommen"); + stage.addListener(listener); + } + + @Override + public void clicked(Actor a) { + halma.setScreen(new Menu(halma)); + } +} diff --git a/core/src/rocks/poopjournal/halma/Halma.java b/core/src/rocks/poopjournal/halma/Halma.java new file mode 100644 index 0000000..56248a8 --- /dev/null +++ b/core/src/rocks/poopjournal/halma/Halma.java @@ -0,0 +1,31 @@ +package rocks.poopjournal.halma; + +import com.badlogic.gdx.Game; + +public class Halma extends Game { + /*SpriteBatch batch; + Texture img;*/ + + @Override + public void create () { + /*batch = new SpriteBatch(); + img = new Texture("badlogic.jpg");*/ + setScreen(new Menu(this)); + } + + @Override + public void render () { + /*Gdx.gl.glClearColor(1, 0, 0, 1); + Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT); + batch.begin(); + batch.draw(img, 0, 0); + batch.end();*/ + super.render(); + } + + @Override + public void dispose () { + /*batch.dispose(); + img.dispose();*/ + } +} diff --git a/core/src/rocks/poopjournal/halma/Menu.java b/core/src/rocks/poopjournal/halma/Menu.java new file mode 100644 index 0000000..10bce92 --- /dev/null +++ b/core/src/rocks/poopjournal/halma/Menu.java @@ -0,0 +1,94 @@ +package rocks.poopjournal.halma; + +import com.badlogic.gdx.scenes.scene2d.Actor; +import com.badlogic.gdx.scenes.scene2d.ui.*; +import rocks.poopjournal.halma.play.Play; + +public class Menu extends BaseScreen { + //variables + private int playerCount; + private int computerCount; + private Label titleLabel, playerCountLabel, comCountLabel; + private TextButton player2, player3, player4, player5, player6; + private TextButton com0, com1, com2, com3, com4, com5; + private TextButton squareBoardButton; + private TextButton startButton; + private boolean squareBoard; + + public Menu(Halma halma) { + super(halma); + create(); + } + + public void create(){ + playerCount = 0; + computerCount = 0; + squareBoard = false; + + titleLabel = new Label("Halma!", skin); + playerCountLabel = new Label("How many players?", skin); + comCountLabel = new Label("How many computers?", skin); + + int playerSlot = OneChecker.get().generateSlot(); + + player2 = new TextButton("2 player", skin); OneChecker.get().addButton(player2, playerSlot); + player3 = new TextButton("3 player", skin); OneChecker.get().addButton(player3, playerSlot); + player4 = new TextButton("4 player", skin); OneChecker.get().addButton(player4, playerSlot); + player5 = new TextButton("5 player", skin); OneChecker.get().addButton(player5, playerSlot); + player6 = new TextButton("6 player", skin); OneChecker.get().addButton(player6, playerSlot); + + int comSlot = OneChecker.get().generateSlot(); + + com0 = new TextButton("0 com", skin); OneChecker.get().addButton(com0, comSlot); + com1 = new TextButton("1 com", skin); OneChecker.get().addButton(com1, comSlot); + com2 = new TextButton("2 com", skin); OneChecker.get().addButton(com2, comSlot); + com3 = new TextButton("3 com", skin); OneChecker.get().addButton(com3, comSlot); + com4 = new TextButton("4 com", skin); OneChecker.get().addButton(com4, comSlot); + com5 = new TextButton("5 com", skin); OneChecker.get().addButton(com5, comSlot); + + squareBoardButton = new TextButton("Square Board", skin); + + startButton = new TextButton("start!", skin); + + layout.defaults().expand(); + + layout.add(titleLabel); layout.row(); + layout.add(playerCountLabel); layout.row(); + layout.add(player2, player3, player4, player5, player6); layout.row(); + layout.add(comCountLabel); layout.row(); + layout.add(com0, com1, com2, com3, com4, com5); layout.row(); + layout.add(squareBoardButton); layout.row(); + layout.add(startButton); + + addButtonsToListener(com0, com1, com2, com3, com4, com5, player2, player3, player4, player5, player6, squareBoardButton, startButton); + } + + @Override + public void clicked(Actor a) { + super.clicked(a); + if(a == com0) computerCount = 0; + if(a == com1) computerCount = 1; + if(a == com2) computerCount = 2; + if(a == com3) computerCount = 3; + if(a == com4) computerCount = 4; + if(a == com5) computerCount = 5; + if(a == player2) playerCount = 2; + if(a == player3) playerCount = 3; + if(a == player4) playerCount = 4; + if(a == player5) playerCount = 5; + if(a == player6) playerCount = 6; + if(a == squareBoardButton) squareBoard = squareBoardButton.isChecked(); + if(a == startButton) halma.setScreen(Play.createInstance(halma, playerCount, computerCount, squareBoard)); + + if(squareBoard) + { + if(playerCount > 4) + playerCount = 4; + if(playerCount == 3) + playerCount = 4; + } + + if(computerCount >= playerCount) + computerCount = playerCount-1; + } +} \ No newline at end of file diff --git a/core/src/rocks/poopjournal/halma/OneChecker.java b/core/src/rocks/poopjournal/halma/OneChecker.java new file mode 100644 index 0000000..9b42be8 --- /dev/null +++ b/core/src/rocks/poopjournal/halma/OneChecker.java @@ -0,0 +1,49 @@ +package rocks.poopjournal.halma; + +import com.badlogic.gdx.scenes.scene2d.InputEvent; +import com.badlogic.gdx.scenes.scene2d.ui.Button; +import com.badlogic.gdx.scenes.scene2d.utils.ClickListener; + +import java.util.LinkedList; +import java.util.List; + +public class OneChecker extends ClickListener { + private static OneChecker INSTANCE; + private LinkedList> slots = new LinkedList<>(); + private OneChecker() {} + public static OneChecker get(){ + if(INSTANCE == null) INSTANCE = new OneChecker(); + return INSTANCE; + } + public int generateSlot(){ + LinkedList e = new LinkedList(); + slots.add(e); + return slots.indexOf(e); + } + public void addButton(Button a, int slot){ + slots.get(slot).add(a); + a.addListener(this); + } + public void addButtons(List a, int slot){ + for(Object b : a) { + if(b instanceof Button) + slots.get(slot).add((Button) b); + ((Button)b).addListener(this); + } + slots.get(slot).getFirst().setChecked(true); + } + + @Override + public void clicked(InputEvent event, float x, float y) { + Button b = (Button) event.getListenerActor(); + LinkedList