From ba9aa340be51a6f3c4484e7ee99fc4dc50fae40b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Thu, 2 Jun 2022 12:38:42 +0200 Subject: [PATCH 1/4] 01/06 --- .vscode/settings.json | 3 +- app/bin/main/PokeMudry.class | Bin 777 -> 659 bytes app/bin/main/Screen/Hero$Direction.class | Bin 0 -> 1195 bytes app/bin/main/Screen/Hero.class | Bin 0 -> 4049 bytes app/bin/main/Screen/ScreenMap.class | Bin 266 -> 9329 bytes app/bin/main/lumberjack_sheet32.png | Bin 0 -> 1236 bytes app/bin/main/map/test_couloir.tmx | 26 +- app/bin/main/testHER.class | Bin 0 -> 1472 bytes app/src/main/java/PokeMudry.java | 2 + app/src/main/java/Screen/Hero.java | 189 +++++++++++++++ app/src/main/java/Screen/ScreenMap.java | 229 +++++++++++++++++- app/src/main/java/testHER.java | 55 +++++ app/src/main/resources/lumberjack_sheet32.png | Bin 0 -> 1236 bytes app/src/main/resources/map/test_couloir.tmx | 26 +- 14 files changed, 502 insertions(+), 28 deletions(-) create mode 100644 app/bin/main/Screen/Hero$Direction.class create mode 100644 app/bin/main/Screen/Hero.class create mode 100644 app/bin/main/lumberjack_sheet32.png create mode 100644 app/bin/main/testHER.class create mode 100644 app/src/main/java/Screen/Hero.java create mode 100644 app/src/main/java/testHER.java create mode 100644 app/src/main/resources/lumberjack_sheet32.png diff --git a/.vscode/settings.json b/.vscode/settings.json index b2d444a..1ad73b8 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,5 +1,6 @@ { "cSpell.words": [ - "pokemudry" + "pokemudry", + "Spritesheet" ] } \ No newline at end of file diff --git a/app/bin/main/PokeMudry.class b/app/bin/main/PokeMudry.class index a53aaff82118b77a64476875026de8e38d7b8094..4e0a6c64965b307817c0ea77df6fded59c6fe36c 100644 GIT binary patch delta 135 zcmeBVo6O2}>ff$?3=9nB3`!HZK25e{+{?&3`8#6>Dq29bnn1Q{X6AP*!N85F?k6#>h; B4jKRe delta 203 zcmbQt+R4Us>ff$?3=9nB3~Cd(K3TEkCT8X_GKgtJ`(!1SCFKPeSfO1R> FssQd&BIW=9 diff --git a/app/bin/main/Screen/Hero$Direction.class b/app/bin/main/Screen/Hero$Direction.class new file mode 100644 index 0000000000000000000000000000000000000000..4bbc909a5b2727c53e0ecea6f5bc610cea8bde1d GIT binary patch literal 1195 zcmZ`&T~pIQ6g^AYrY(_=0tE`92ufR!it?eh@-a}PVm^a{QCXv3cwmRRP->67&VV`C%4BvcXr42c+Iz6 zM@5LC@7OxEat+I==Za42grTSMnqgG`FC)(o+BtYzW(dD2z1%w_s26udC|7iyp|@DB z?9W!W^h(iS7<<=MC0eL8Y{&N38I*LUN&?&NdmcqN4u*t=Aq+D_3Z0T7a8E-V5s}Sm=!M46uiFkUw@!|@ zcW50oIC;?Bn$@UUo-MFEj6*?!ocbT_CYd|68ZAyqDxK-pXB-PyRPm5uAmIP3>GKl} zIXq&BS)ON|)!a{K4B23p2S>*=qAADe#57Ii1lj-vCqJ?D*OITr8 z3G%iZR)ALqyyemQJ^&nEFbA!FDyf}%$xq6+w?b=XnYE-cw}>2Yyd!!hA$({T}B$Yj5KXv zASGr^j1cX`E%Xt;pU`K*;#dC;W+n!d3k;rPM1s+f1Y;7U!V*kKa62NwlmvHG38tez zNI_}S$7Y7w7&FXp8xw{ZX=BPT)i$P$bIg3Dt9o#s{!_vf5@cnF@?p$j1j|Tb3xjwd zt3)Mz2pywK)UIe)&CX9=VD3gJLIvoMG?}YNOYs;o$ad(f^h$!BY-7fJrDU(ng7CYq zOk84q;fuUb*!ru+t}Vo9TOM~bvSdiy6;H72C7%2Q>&^>dRcfx`sf^F?Tri2xkjD#} J*19~;{{c*A?|lFO literal 0 HcmV?d00001 diff --git a/app/bin/main/Screen/Hero.class b/app/bin/main/Screen/Hero.class new file mode 100644 index 0000000000000000000000000000000000000000..7016af7eb2b08f9540d1df73af189e294d231a47 GIT binary patch literal 4049 zcmb7HYkL#d5q{T}EXi8HF$4&gV2n*<84xugTnrRrTb4jJ7YiH5X`QvSme!G1>aJ{@ zrfC||I&BgX(%jR8-V)qUNC?4po+eK|^g};u<_G$ahu8>5-rL~{kbLQ;MoSAoK z-n07azy9L2$w3Kc~dMxd%HlEX61qJ@1K3kl&^fL;Sctsph;I#|7p5}5? zK~1`-Kut|smTnfKmNum;@R`oU=7Yf#r{c-pvEg`6GNxczciyy%npqsua?^S(BWU7c z>77__yf2niP#-MBX-vM&4AgDM5|MxR%c4Ge$}vh)ik4Y-EV&J{&oC_IQ3YFC28ZLx?$}te>qw%v#l^ivaBt}`EShrmsu?9~N!8)_R; z;OWk%bsx4U*mze*>d}l=6`Qb?K!>8ywxN0`2+2yDg67aY!jP?2Bn(p@n4TKft)ygB zL1QAH(sDzZWr$o_^c1rOfnAoUsvg4N4aMVPMVaOGWIbxpA)7Y^=*Gh;eDKTc5fuS< zwpT?xg0i+>h3d`@s95GcJ)~l}J3FjmrTg@ViuKqafrdn_SH&8vm06#P2i#d)#X79@ z;h2JL|4-ii=vS~^D-e%g`>&pD7xYN;p2oFduPv7=yS>TwjuCBhR5 z)`Sw3&KWFPhMDOUG{m`6D(=T>qAO`Nv|OcBf*HN4&^CwK?vW#wnqAQl9L}g10n4kF z>nt)!`#o*=G}B-OGrOKpk6R_*S22di*{g=#pP!-gPVqe&z&O%Aq-go}r56_#DCBdR zl&=aM6D;2xi%7E+wBEs!Ta-E_imVC)lZ?(`6~`XEo48lWM*pV`?hQy#&yfZ6bkYzK zQhF2wCWMe&*{kIWSxxAs$O7os3Z*Xa6Y@cq&paV^8|fyKSFkQr-4>PR?sSo!RnUwXFB(h6B4Wix~TYyJflFXAP-WxKSg zATm1o?Nnq+T9FKojHG)coYFHal+FOXe_2IDy1E$`RP02s9>2uvKD;J0cQ+?gJdZaN zblj#m?y{rMAydn`CY|5SJbhE}jwIT99d56%nGm@m8kreHWBxq+OJ#$<~9Y1v&IIqEdlpAl68-%>e z&sXs+lA)td?si5pw=h0`|#TXV|xZ zgW<+i3;3?cU5-obOXyxePt`nHHIH$AbfhuS(A3bhgnt| zt_FgC9hZR*qGiEn;|>^JvvPc5_~dtC10bKB)9!Er!s7 zGgT>RE&JPAPDyJyC8K!E^<3G{67tf{rN&j(Kg6JkNMJ&%iSK@v{s zU2Lr+TkKTjyDY{e`dSCtBTkErvBWff_KY*9DXyn+7!%B1hPY(;E${@NgPiJxJPo(kYTc(*O%A4MMJr64~p0T#bCKIW@@nE03VX>j z^H}fj%{*3y>l`^KHOKYZN(^CQ3Vc9HxI{{rXUlwq-MCCsSIBu+xy2`p=NjX=QRREQ z?0fuH-$OqB(d*~&^OEn65q?QfOFOYVc>}-Tu)Bk|PPxTy;JiD$vWQpzyA-~_7JON? zZA*FE7Q*@#lmVcfb0w{#f`rF0v}T$LHZ0rtn(| zzMH}a6#O@Zc?xwmh07E?t}yZ$-oC~>H}IFn2BNYNThYcb%+ux(j(dnxH^(0IlmD)k zn%3pR6;1#Gf#f%YV9bY4{!LC+ILhrRj@{-)8!oecitE&qpL4UkK0EvXGa)ri`9JV~ BR#5-| literal 0 HcmV?d00001 diff --git a/app/bin/main/Screen/ScreenMap.class b/app/bin/main/Screen/ScreenMap.class index e4d88c611fd51c9b5359cfa8229d94dd63be7b7f..a1bae3042f87f9fbfe92b6847fa97c6f2bbc84ae 100644 GIT binary patch literal 9329 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 delta 121 zcmez9(Z$4d>ff$?3=9nB3<49m^d{FbNw9J9Ft9SPO^#xAo$Mnf6U?Bo;fiy3W$H>43B$*ia0h*@_ Ae*gdg diff --git a/app/bin/main/lumberjack_sheet32.png b/app/bin/main/lumberjack_sheet32.png new file mode 100644 index 0000000000000000000000000000000000000000..84f3de8fbab0152498b444a56b7da5eaa085185d GIT binary patch literal 1236 zcmV;_1S|WAP)C0000WV@Og>004R= z004l4008;_004mL004C`008P>0026e000+nl3&F}00009a7bBm000XT000XT0n*)m z`~Uy|PEbr#MF0Q*000078!!weK@~k^CRT?i76m;c3rPe7P&Wu$Cn01G4rD(YaZe74 zUp2Rx4!(vN$pZt}w;tY~CF8b=>i_`n#dPzlqxH(g`PQ@y0k6aW0004WQchCSOh22NThfZep zT5n#~@w)p3pwY~~9vBa~eHhI=G2l?pXy%ClMVWab;OF7ooWCWO z2#9|ZO{(<--@r2ic7tfTUawzY*J(ZPyqTv4>{f}tYSJIPnI{6tpC{D}-^7yxG@#nS zH}PB`lbvS*+wHOK+GCU+w_7XE1j2E9Y5VpPrN`|tSa~84F5%*Omux-CTV|dZ5X3*h zm!rI8=3fu^vupRKeH*1mclLJvc>sRj?|V@v-+C0^%o77{;`i`H?&i%r6L6i%iIUIp z-;}6RB_0=aDg^Wb$R%wyO*}Ll4+=Lu%DW^4l*a|Ls*zI?$AiL6VBZ^2kL&{rGVYHFDMEk2E4<5Ks&c+nCE#I)<3Vd?15X4*^WBdH*qeDK;OAsR-pq4>Om?0Ngtl|i zytk{4N7vbTDxkL1PO(G*0g?~O69eG8c!7ND3w(kH4n7}H4un1Y5IlT}_aVS94^R~X zr&zwj8j)XkzIFe=dm&ddc;!n2B%{~2zXNXHt8~2l#`BKny>R*w?s*y9xH+K-X-)!IbZh!bw5z|19d-8_XBl5@NWBod+Q#~ zsfl|#PXxRg>fcn8$jVa#Qt6f#)pV6cJ{fr?ApWf7KPeV+GtUf2tvhL+M0TDT@F)#? zJ5L2N*?BI|xqJ7P>e~i8PX*LYD|3H7Dd5`4+cm&Yxivt|Wy=w1R{&Beg9szXw@&J_kD97@T%LVZH z0>KvtG_#9t7bW$N<(nRnQhjvj_N(0Q3+DT3K%{k_hlF}_$toxaHYQQd&H}lkhUH0Y8 zJT<_dvoABx1u{M3>+=Qg_IyFv2haNferZ7de1KHTHcF2!gy%f`oX6kN@__Px&xgb( y_;b$R;1>hr2cZ4@`2xuDd_iBIFR0HKu>2pMXy>%}a3RP50000 - + - + - + @@ -6683,19 +6683,19 @@ - + - + - + @@ -6887,19 +6887,19 @@ - + - + - + @@ -8967,7 +8967,7 @@ - + 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, @@ -8981,7 +8981,7 @@ 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21 - + 956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956, 956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956, @@ -8995,7 +8995,7 @@ 921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921 - + @@ -9021,7 +9021,7 @@ - + 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 40,40,40,8,9,40,40,40,40,40,40,40,40,40,40,8,9,40,40,40, diff --git a/app/bin/main/testHER.class b/app/bin/main/testHER.class new file mode 100644 index 0000000000000000000000000000000000000000..fb1fa77eabab042002148759733d4e4aafe44aa1 GIT binary patch literal 1472 zcmah|+inwA6kR8FGI%_WiIdQfKm&nNJAq8OgqtZ1IWe4ONe#Ghr|ISERD}TXZBue?RECN|M=hk0M6jLfi3|fmd*Ie z+)V>%fs(swugZ<4UGpBD@N7>u*W$2Y{~kuMvr?Cr8jZT|I?U8lb6M84YV z!*smrHw7|Pt&qs+b;l?5p5ndg182jr>rPO!m*U6|YUR?hfqsGAUkWl&KsEzbS?ETO z$tX)CC#n&={~JJTAPg$(KvnLuuwQ9TtClD|3>G4%vFf`wW#Gw3V60f(X~ zik-N{zVdBhM>m5#tn2 z8<^UGaXAd@(g_sC8C7|=vr@k-XK@Z?1LxU(!v0y7g$wwVW725R+Ox$D&c&4n(v8bs zpLD|OBuZ!JE{9A&ROmxu)@=ANP(EF@Fx~cP*1{a-Y2lMFX)8=3XVmN z?zwBUOAnyA6t*H)&iiUaEj@*ksskKkdWw|-rWz_nJ&ZZs{LgS_a}`{>$2VcVWY7gm zCxK}>##TE4y~uNy!EW^F;u&VE;=Xq%+}XsyYYe`F*u)RpK)nfjj_kcG%y$6xVF-I! zEHJ#KW{NunXuQJU8;oqjm}CO_DSn^>!qA!oe#9sXRYTLvRJpqdG4TcmzQh<}S9=qT zJ?%V=!3rG0;Y0xERiiCazCs%wAKApug!~(&k+(ROdW)0);%o}HxAEJp?x)S8WH`{l zF}%ewjEnd!;ox0sjt@vD9G>F1H1ZeeP~mf0KZS&L=2`yv3*;E*{=v+jIHXSpu)y

frameTime) { + dt -= frameTime; + currentFrame = (currentFrame + 1) % nFrames; + + if(currentFrame == 0){ + move = false; + lastPosition = new Vector2(newPosition); + position = new Vector2(newPosition); + } + } + } + + /** + * @return True if the hero is actually doing a step. + */ + public boolean isMoving(){ + return move; + } + + /** + * @param speed The new speed of the hero. + */ + public void setSpeed(float speed){ + this.speed = speed; + } + + /** + * Do a step on the given direction + * @param direction The direction to go. + */ + public void go(Direction direction){ + move = true; + switch(direction){ + case RIGHT: + newPosition.add(SPRITE_WIDTH, 0); + break; + case LEFT: + newPosition.add(-SPRITE_WIDTH, 0); + break; + case UP: + newPosition.add(0, SPRITE_HEIGHT); + break; + case DOWN: + newPosition.add(0, -SPRITE_HEIGHT); + break; + default: + break; + } + + turn(direction); + } + + /** + * Turn the hero on the given direction without do any step. + * @param direction The direction to turn. + */ + public void turn(Direction direction){ + switch(direction){ + case RIGHT: + textureY = 2; + break; + case LEFT: + textureY = 1; + break; + case UP: + textureY = 3; + break; + case DOWN: + textureY = 0; + break; + default: + break; + } + } + + /** + * Draw the character on the graphic object. + * @param g Graphic object. + */ + public void draw(GdxGraphics g) { + g.draw(ss.sprites[textureY][currentFrame], position.x, position.y); + } +} diff --git a/app/src/main/java/Screen/ScreenMap.java b/app/src/main/java/Screen/ScreenMap.java index 367e361..87d120f 100644 --- a/app/src/main/java/Screen/ScreenMap.java +++ b/app/src/main/java/Screen/ScreenMap.java @@ -1,5 +1,232 @@ package Screen; +import ch.hevs.gdx2d.lib.GdxGraphics; +import com.badlogic.gdx.Gdx; +import com.badlogic.gdx.Input; +import com.badlogic.gdx.maps.MapObject; +import com.badlogic.gdx.maps.MapObjects; +import com.badlogic.gdx.maps.MapProperties; +import com.badlogic.gdx.maps.tiled.*; +import com.badlogic.gdx.maps.tiled.renderers.OrthogonalTiledMapRenderer; +import com.badlogic.gdx.math.Vector2; +import java.util.Map; +import java.util.TreeMap; +import java.util.Vector; + public class ScreenMap { - + // key management + public Map keyStatus = new TreeMap(); + + // character + private Hero hero; + + // tiles management + private Vector tiledLayer = new Vector<>(); + private MapObjects doors; + Map tMap = new TreeMap(); + Map tMapRenderer = new TreeMap(); + private String map = "test_couloir"; + public float zoom; + private int width; + private int tileWidth; + private int height; + private int tileHeight; + + // position + Vector2 pannel = new Vector2(30, 30); + + private void createMap(String name){ + TiledMap tm =new TmxMapLoader().load("app/src/main/resources/map/"+ name + ".tmx"); + tMap.put(name,tm); + tMapRenderer.put(name,new OrthogonalTiledMapRenderer(tm)); + } + + public void init() { + + // Create hero + hero = new Hero(9, 4); + + // Set initial zoom + zoom = 1; + + // init keys status + keyStatus.put(Input.Keys.UP, false); + keyStatus.put(Input.Keys.DOWN, false); + keyStatus.put(Input.Keys.LEFT, false); + keyStatus.put(Input.Keys.RIGHT, false); + + // create map + createMap("test"); + createMap("test_couloir"); + } + + public void graphicRender(GdxGraphics g) { + g.clear(); + + for (int i = 0; i < 100; i++) { + try { tiledLayer.add((TiledMapTileLayer) tMap.get(map).getLayers().get(i)); } catch (Exception e) { } + } + TiledMapTileLayer tl = tiledLayer.get(0); + width = tl.getWidth(); + tileWidth = (int) tl.getTileWidth(); + height = tl.getHeight(); + tileHeight = (int) tl.getTileHeight(); + System.out.println(width + " x " + height + " - " + tileWidth + " x " + tileHeight); + try { + doors = tMap.get(map).getLayers().get("door").getObjects(); + } catch (Exception e) { } + + // Hero activity + manageHero(); + // System.out.println(hero.getPosition().x + " - " + hero.getPosition().y); + + // Camera follows the hero + g.zoom(zoom); + g.moveCamera(hero.getPosition().x, hero.getPosition().y, width * tileWidth, height * tileHeight); + + // Render the tileMap + tMapRenderer.get(map).setView(g.getCamera()); + tMapRenderer.get(map).render(); + + // Draw the hero + hero.animate(Gdx.graphics.getDeltaTime()); + hero.draw(g); + + g.drawFPS(); + } + + private Vector getTile(Vector2 position, int offsetX, int offsetY) { + Vector tiles = new Vector<>(); + for (TiledMapTileLayer tl : tiledLayer) { + int x = (int) (position.x / width) + offsetX; + int y = (int) (position.y / height) + offsetY; + System.out.println("tl: " + tl); + TiledMapTile cell = tl.getCell(x, y).getTile(); + try { + + System.out.println("cell: "+ cell); + tiles.add(cell); + } catch (Exception e) { System.out.println("shit");} + } + + return tiles; + } + + private boolean isWalkable(Vector tile) { + if (tile == null) return false; + boolean walkable = false; + System.out.println("tile: " + tile); + + for (TiledMapTile tiledMapTile : tile) { + System.out.println("tiledMapTile: " + tiledMapTile); + Object test = tiledMapTile.getProperties().get("walkable"); + walkable = Boolean.parseBoolean(test.toString()) ? true:walkable; + } + + //System.out.println(" walkable: " + walkable); + return walkable; + } + + private float getSpeed(Vector tile) { + float speed = 0; + for (TiledMapTile tiledMapTile : tile) { + Object test = tiledMapTile.getProperties().get("speed"); + float newSpeed = Float.parseFloat(test.toString()); + speed = newSpeed > speed ? newSpeed:speed; + } + return speed; + } + + private String getName(TiledMap tile) { + Object test = tile.getProperties().get("name"); + return test.toString(); + } + + private boolean isDoor(Vector2 position) { + boolean onDoor = false; + Integer x = null; + Integer y = null; + int ox = 0; + int oy = 0; + try { + x = (int) (position.x / 32); //tiledLayer.getTileWidth() + y = (int) (position.y / 32); //tiledLayer.getTileHeight() + } catch (Exception e) { } + + for (MapObject object : doors){ + MapProperties mapProperties = null; + try { mapProperties = object.getProperties(); } catch (Exception e) { } + try { ox = (int) ((float) mapProperties.get("x")); } catch (Exception e) { } + try { oy = (int) ((float) mapProperties.get("y")); } catch (Exception e) { } + + oy-=288; + oy/=-1; + + ox /= 32; + oy /= 32; + + String id = null; + try { id = mapProperties.get("id").toString(); } catch (Exception e) { } + //if(x != null && y != null) System.out.println(id + ": " + x + " x " + y + " - " + ox + " x " + oy); + + if (x != null || y != null) onDoor = (x == ox && y == oy) ? true:onDoor; + } + + return onDoor; + } + + private void manageHero() { + + // Do nothing if hero is already moving + if (!hero.isMoving()) { + + // Compute direction and next cell + Vector nextCell = new Vector<>(); + Hero.Direction goalDirection = Hero.Direction.NULL; + + if (keyStatus.get(Input.Keys.RIGHT)) { + goalDirection = Hero.Direction.RIGHT; + nextCell = getTile(hero.getPosition(), 1, 0); + } else if (keyStatus.get(Input.Keys.LEFT)) { + goalDirection = Hero.Direction.LEFT; + nextCell = getTile(hero.getPosition(), -1, 0); + } else if (keyStatus.get(Input.Keys.UP)) { + goalDirection = Hero.Direction.UP; + nextCell = getTile(hero.getPosition(), 0, 1); + } else if (keyStatus.get(Input.Keys.DOWN)) { + goalDirection = Hero.Direction.DOWN; + nextCell = getTile(hero.getPosition(), 0, -1); + } + + // Is the move valid ? + if (isWalkable(nextCell)) { + // Go + hero.setSpeed(getSpeed(nextCell)); + hero.go(goalDirection); + } else { + // Face the wall + hero.turn(goalDirection); + } + + + if(isDoor(hero.getPosition())){ + /* + switch(getName(tMap.get(map))){ + case "test": + if(hero.getPosition().x == 32 && hero.getPosition().y == 288){ + hero.setPosition(576, 256); + map = "desert"; + } + break; + default: + + break; + } + */ + + System.out.println("it's a door"); + } + } + } + } diff --git a/app/src/main/java/testHER.java b/app/src/main/java/testHER.java new file mode 100644 index 0000000..03b5f7f --- /dev/null +++ b/app/src/main/java/testHER.java @@ -0,0 +1,55 @@ +import com.badlogic.gdx.Input; + +import Screen.ScreenMap; +import ch.hevs.gdx2d.desktop.PortableApplication; +import ch.hevs.gdx2d.lib.GdxGraphics; + +public class testHER extends PortableApplication{ + + private static ScreenMap sm; + + + public static void main(String[] args) { + sm = new ScreenMap(); + new testHER(); + } + + @Override + public void onInit() { + sm.init(); + } + + @Override + public void onGraphicRender(GdxGraphics g) { + sm.graphicRender(g); + } + + @Override + public void onKeyUp(int keycode) { + super.onKeyUp(keycode); + + sm.keyStatus.put(keycode, false); + } + + @Override + public void onKeyDown(int keycode) { + super.onKeyDown(keycode); + + switch (keycode) { + case Input.Keys.Z: + if (sm.zoom == 1.0) { + sm.zoom = 2.0f; + } else if (sm.zoom == 2.0) { + sm.zoom = 4; + } else { + sm.zoom = 1; + } + return; + + default: + break; + } + sm.keyStatus.put(keycode, true); + } + +} diff --git a/app/src/main/resources/lumberjack_sheet32.png b/app/src/main/resources/lumberjack_sheet32.png new file mode 100644 index 0000000000000000000000000000000000000000..84f3de8fbab0152498b444a56b7da5eaa085185d GIT binary patch literal 1236 zcmV;_1S|WAP)C0000WV@Og>004R= z004l4008;_004mL004C`008P>0026e000+nl3&F}00009a7bBm000XT000XT0n*)m z`~Uy|PEbr#MF0Q*000078!!weK@~k^CRT?i76m;c3rPe7P&Wu$Cn01G4rD(YaZe74 zUp2Rx4!(vN$pZt}w;tY~CF8b=>i_`n#dPzlqxH(g`PQ@y0k6aW0004WQchCSOh22NThfZep zT5n#~@w)p3pwY~~9vBa~eHhI=G2l?pXy%ClMVWab;OF7ooWCWO z2#9|ZO{(<--@r2ic7tfTUawzY*J(ZPyqTv4>{f}tYSJIPnI{6tpC{D}-^7yxG@#nS zH}PB`lbvS*+wHOK+GCU+w_7XE1j2E9Y5VpPrN`|tSa~84F5%*Omux-CTV|dZ5X3*h zm!rI8=3fu^vupRKeH*1mclLJvc>sRj?|V@v-+C0^%o77{;`i`H?&i%r6L6i%iIUIp z-;}6RB_0=aDg^Wb$R%wyO*}Ll4+=Lu%DW^4l*a|Ls*zI?$AiL6VBZ^2kL&{rGVYHFDMEk2E4<5Ks&c+nCE#I)<3Vd?15X4*^WBdH*qeDK;OAsR-pq4>Om?0Ngtl|i zytk{4N7vbTDxkL1PO(G*0g?~O69eG8c!7ND3w(kH4n7}H4un1Y5IlT}_aVS94^R~X zr&zwj8j)XkzIFe=dm&ddc;!n2B%{~2zXNXHt8~2l#`BKny>R*w?s*y9xH+K-X-)!IbZh!bw5z|19d-8_XBl5@NWBod+Q#~ zsfl|#PXxRg>fcn8$jVa#Qt6f#)pV6cJ{fr?ApWf7KPeV+GtUf2tvhL+M0TDT@F)#? zJ5L2N*?BI|xqJ7P>e~i8PX*LYD|3H7Dd5`4+cm&Yxivt|Wy=w1R{&Beg9szXw@&J_kD97@T%LVZH z0>KvtG_#9t7bW$N<(nRnQhjvj_N(0Q3+DT3K%{k_hlF}_$toxaHYQQd&H}lkhUH0Y8 zJT<_dvoABx1u{M3>+=Qg_IyFv2haNferZ7de1KHTHcF2!gy%f`oX6kN@__Px&xgb( y_;b$R;1>hr2cZ4@`2xuDd_iBIFR0HKu>2pMXy>%}a3RP50000 - + - + - + @@ -6683,19 +6683,19 @@ - + - + - + @@ -6887,19 +6887,19 @@ - + - + - + @@ -8967,7 +8967,7 @@ - + 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, @@ -8981,7 +8981,7 @@ 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21 - + 956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956, 956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956,956, @@ -8995,7 +8995,7 @@ 921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921,921 - + @@ -9021,7 +9021,7 @@ - + 21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21, 40,40,40,8,9,40,40,40,40,40,40,40,40,40,40,8,9,40,40,40, From a4402cb4abfa721416955ed61d3f760140900cd8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Thu, 2 Jun 2022 13:26:43 +0200 Subject: [PATCH 2/4] a part --- app/bin/main/Screen/ScreenMap.class | Bin 9329 -> 9416 bytes app/src/main/java/Screen/ScreenMap.java | 14 ++++++++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/app/bin/main/Screen/ScreenMap.class b/app/bin/main/Screen/ScreenMap.class index a1bae3042f87f9fbfe92b6847fa97c6f2bbc84ae..629f376d6be4fe3b25814b859d59794b6eed5a4e 100644 GIT binary patch delta 3617 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 k;3FFUaUw0$rA39lfgX^F)AB@r?YgC?QX9iJ Date: Thu, 2 Jun 2022 13:28:58 +0200 Subject: [PATCH 3/4] add gitignore --- .gitignore | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 6305c5d..7ca6744 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,7 @@ build # Ignore bin -app\bin \ No newline at end of file +.\app\bin +./app/bin +\app\bin +/app/bin \ No newline at end of file From 342797043145a481461cd6c54ed2b85951d7340c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A9mi=20Heredero?= Date: Thu, 2 Jun 2022 13:30:19 +0200 Subject: [PATCH 4/4] test --- app/bin/main/PokeMudry.class | Bin 659 -> 0 bytes app/bin/main/testHER.class | Bin 1472 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 app/bin/main/PokeMudry.class delete mode 100644 app/bin/main/testHER.class diff --git a/app/bin/main/PokeMudry.class b/app/bin/main/PokeMudry.class deleted file mode 100644 index 4e0a6c64965b307817c0ea77df6fded59c6fe36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 659 zcmaiwT}$Io5Qg7rVry%(Yjt(~{vrXR;@$)g zJAoU>L^J?l(t3Kmln4Gmo&ZF zRlRk=B@L4zf_>RIt($X+kpHP7l^zhRjmn*0_7qbOgk7s-kfF}6b)1M zR3y*(cO4mDnvn<8QaC*+fStvFLS`-;z-vW5W7| z_i^=5b=;HSVOW;zn*r&Du<}J6p>(19u`iF68Ezu$zx_+x3#{=fW_t^hW;64TSmiLv zn)l1}80O%-)8kCA8_FENF;QoR_*<^NV6tjGW2$ODIWe4ONe#Ghr|ISERD}TXZBue?RECN|M=hk0M6jLfi3|fmd*Ie z+)V>%fs(swugZ<4UGpBD@N7>u*W$2Y{~kuMvr?Cr8jZT|I?U8lb6M84YV z!*smrHw7|Pt&qs+b;l?5p5ndg182jr>rPO!m*U6|YUR?hfqsGAUkWl&KsEzbS?ETO z$tX)CC#n&={~JJTAPg$(KvnLuuwQ9TtClD|3>G4%vFf`wW#Gw3V60f(X~ zik-N{zVdBhM>m5#tn2 z8<^UGaXAd@(g_sC8C7|=vr@k-XK@Z?1LxU(!v0y7g$wwVW725R+Ox$D&c&4n(v8bs zpLD|OBuZ!JE{9A&ROmxu)@=ANP(EF@Fx~cP*1{a-Y2lMFX)8=3XVmN z?zwBUOAnyA6t*H)&iiUaEj@*ksskKkdWw|-rWz_nJ&ZZs{LgS_a}`{>$2VcVWY7gm zCxK}>##TE4y~uNy!EW^F;u&VE;=Xq%+}XsyYYe`F*u)RpK)nfjj_kcG%y$6xVF-I! zEHJ#KW{NunXuQJU8;oqjm}CO_DSn^>!qA!oe#9sXRYTLvRJpqdG4TcmzQh<}S9=qT zJ?%V=!3rG0;Y0xERiiCazCs%wAKApug!~(&k+(ROdW)0);%o}HxAEJp?x)S8WH`{l zF}%ewjEnd!;ox0sjt@vD9G>F1H1ZeeP~mf0KZS&L=2`yv3*;E*{=v+jIHXSpu)y