From 68040800202e59f4bdda525f75b36b9ec3a3ca93 Mon Sep 17 00:00:00 2001 From: JBM Date: Sat, 23 May 2020 00:23:53 +0200 Subject: [PATCH 1/1] Stone throw reminder for @dbdr's debugging. Also UI stuff. Namely: * pixel tweaks in frame backgrounds * "random" frame sprite orientation --- src/main/java/com/codingame/game/View.java | 41 +++++++++++++++++--- src/main/resources/view/assets/frame.png | Bin 6736 -> 6737 bytes src/main/resources/view/assets/frame_bg.png | Bin 817 -> 3148 bytes 3 files changed, 35 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/codingame/game/View.java b/src/main/java/com/codingame/game/View.java index 7f883aa..cd67f86 100644 --- a/src/main/java/com/codingame/game/View.java +++ b/src/main/java/com/codingame/game/View.java @@ -17,15 +17,19 @@ class View { class Player { Model.Player model; + int colorToken; String nicknameToken; String avatarToken; + double frameRot; + Group avatar; Text stoneCounter; Text message; Sprite castle; Text stone; + Text stoneReminder; void init(com.codingame.game.Player p) { model = p.model; @@ -37,16 +41,17 @@ class View { int x = p0 ? 280 : 1920 - 280; int y = 220; - Sprite border1 = graphicEntityModule.createSprite() + Sprite frame = graphicEntityModule.createSprite() .setImage("frame.png") .setAnchor(0.5) - .setScale(p0 ? -1 : 1) + .setRotation(frameRot) .setZIndex(22) .setTint(colorToken); - Sprite border2 = graphicEntityModule.createSprite() + Sprite frameBg = graphicEntityModule.createSprite() .setImage("frame_bg.png") .setAnchor(0.5) + .setRotation(frameRot) .setZIndex(20); Sprite avatarSprite = graphicEntityModule.createSprite() @@ -57,7 +62,7 @@ class View { .setBaseWidth(116); avatar = graphicEntityModule - .createGroup(border1, border2, avatarSprite) + .createGroup(frame, frameBg, avatarSprite) .setX(x).setY(y); Text text = graphicEntityModule.createText(nicknameToken) @@ -82,7 +87,6 @@ class View { .setY(680) .setZIndex(1) .setFontSize(40) - .setStrokeColor(0x000000) .setFillColor(0xffbf7f) .setAnchorX(p0 ? 0 : 1) .setAnchorY(1); @@ -103,6 +107,15 @@ class View { .setFillColor(0x12322a) .setAnchor(0.5) .setAlpha(0); + + stoneReminder = graphicEntityModule.createText() + .setX(p0 ? x + 100 : x - 100) + .setY(y) + .setZIndex(20) + .setFontSize(75) + .setFillColor(0x3f3f3f) + .setAnchorX(p0 ? 0 : 1) + .setAnchorY(0.5); } void updateStoneCounter() { @@ -121,9 +134,10 @@ class View { } void animateStones(int stones) { + String stonesString = new Integer(stones).toString(); stone.setX(castle.getX()); stone.setY(castle.getY() - 100); - stone.setText(new Integer(stones).toString()); + stone.setText(stonesString); stone.setAlpha(1); graphicEntityModule.commitEntityState(0, stone); @@ -139,6 +153,13 @@ class View { stone.setY(troll.getY() - 50, Curve.EASE_IN); stone.setAlpha(0, Curve.EASE_IN); graphicEntityModule.commitEntityState(0.5, stone); + + stoneReminder.setAlpha(0); + graphicEntityModule.commitEntityState(0, stoneReminder); + stoneReminder.setText(stonesString); + graphicEntityModule.commitEntityState(0.25, stoneReminder); + stoneReminder.setAlpha(1); + graphicEntityModule.commitEntityState(0.5, stoneReminder); } void displayMessage(String msg) { @@ -165,7 +186,15 @@ class View { model = m; drawBackground(); + /* + * Random π/2-grained rotation of the avatar frames. Avoid + * having them π/2 apart, though, as one of them is likely + * going to end upside-down and the trick would be revealed. + * And I'd have to "draw" a new frame. Ewww. + */ + p0.frameRot = random.nextInt(4) * Math.PI / 2; p0.init(gameManager.getPlayer(0)); + p1.frameRot = p1.frameRot + (random.nextInt(2) == 1 ? 1 : -1) * Math.PI / 2; p1.init(gameManager.getPlayer(1)); drawTroll(); diff --git a/src/main/resources/view/assets/frame.png b/src/main/resources/view/assets/frame.png index 5f815887a5ad1bce3a611aa5b97ac5a0115491c7..a90ea20120b07ae8cf0fadcd39b964e71760c7ac 100644 GIT binary patch delta 426 zcmV;b0agCcG|@DWB!7l!LqkwWLqi~Na&Km7Y-IodD3N`UJxIeq9K~N#iy{>VtB5#c zs19O5R77ymDionYs1;guFuC*#nlvOSE{=k0!NHHks)LKOt`4q(Aou~|}?mh0_0YbING^=e4&~)2O#G+yhVt)oBGP8_1Ns6Q8__~LW zuXhoi)%x6@qf5v&=AU;tk@dP21qSPaI--StULv9yRHL#E)E8JbvSxb6Mb- zAv2knCk_#dxh7VcnB`54c#=4*YC7c$DUVgoTb#9Gnbq&fUl`2jE6ZG`Ifxh*u>=Vs z6qHdw5jG;U>VKqINYH+?g@3^HOXO0>RRAN$0!q*zyMFLL_}#6Qof!9$f>9vw;y52e zK>IFGt2oa0vE$TE0RJ;^r8oSgDlq*?dZnR-kAUuN;NrTWDSN=>4$%K($foQ{ewsoy z3%sAvH>H7|TcC5z>#e?z(+40)UBz#JgF|3AN7?Hw-V)u>+}por>izuy-d1wbnIYi- Uld=Ib2NnPgnu*tVv+Mz67`i;rYXATM delta 425 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 X2^J8!RrjFrZ)NFd?`HSJ#y{nsUTd3x literal 817 zcmeAS@N?(olHy`uVBq!ia0vp^Js`}%1|-)VaI|A!U~J8Fb`J1#c2+1T%1_J8No8Qr zm{>c}*5j~)%+dH@Z&xiPG0jC27FtCLh!$Sa5?Sc9LNuz>VCNU-j7t-??6BZk$I5Om zwwh1x+%BsfTul$yJ0>rlyr_H1kNrz7C>?8lT(@WU_Z`*j9AAYlujw;%xU8L~B`9uu zQ`GQB7sIcM-HI+LX_A{KO=)@lV^@3s`f|g0Pixq4q4Pk1B;BS4&Qb z8|kf{v)v+lsaE#A$@>kaT%JCChhMP(r%r;Pkc-BOBxcnRfyJTfN1eL9J(l~&cwB#? zx8ij+3Cm}JZEQC`Hvd2PK5y-xBRgh`bTK!I-~K1T*0kGUaoX+s$G6?JVEl9bz|?!6 zroTS$Mg8U0X=1iaRofc7Ur$^1hH<*J!;_N}d~Z(tW71k9S7E<6{}fa0c8BY$Zbui( zFXwldwae=s1AF@ckH$^cZSLK@dGGfA^jUxZGQ=z^nz!Xr+Erk@uqAoBy8vk*`02d6 z9!PN(ctjR6Fz6|RFk{71`!b*)dx@v7EBg~xF+ojc8;fE=ppayVYeb22er|4RUI~M9 zQEFmIYKlU6W=V#EyQgnJcq5-UFuplFT^vIyZoR$a$jiXMam3)j{^y68IPZrY+T=H> zY4Jpc!wC{R&4~s)5^T6x2Ml1c_*l$s2chclvJ7}&>aejmVS)`nH$fC)VS!x?mc_?{ g`V6QpL84A<*>+ZuA7Ragz<^`$boFyt=akR{03ka#cK`qY -- 2.30.2