From 566ac8e48ff7aca583d613e9eaa25554f756ce84 Mon Sep 17 00:00:00 2001 From: Ritchie Cunningham Date: Mon, 7 Mar 2022 15:19:47 +0000 Subject: [PATCH] [Add] UI. --- bin/tfg/Game.class | Bin 6856 -> 5978 bytes bin/tfg/InterfacePosition.class | Bin 0 -> 1282 bytes bin/tfg/UITextElement.class | Bin 0 -> 2773 bytes src/tfg/Game.java | 49 ++++++++++------------------ src/tfg/InterfacePosition.java | 15 +++++++++ src/tfg/UITextElement.java | 55 ++++++++++++++++++++++++++++++++ 6 files changed, 86 insertions(+), 33 deletions(-) create mode 100644 bin/tfg/InterfacePosition.class create mode 100644 bin/tfg/UITextElement.class create mode 100644 src/tfg/InterfacePosition.java create mode 100644 src/tfg/UITextElement.java diff --git a/bin/tfg/Game.class b/bin/tfg/Game.class index 65bf4a607e9d776d93767d587dac730e5915416d..ab17ed38597dbe3d0df53ac62a4ffc70bbc77cb7 100644 GIT binary patch literal 5978 zcma)A33yc175;Cwmzmr^2qY{bf+m;*BqB^y`u8)> z0=P_#8YogIPY(?@Z#73P10@PoBj$dyIcCO(n}dTRRwS*UlU6)xCHw4nG;zJcia;Vc z+&q#R8jUp%C(W_Fb|lr@Q^3-yFt2b+*iOeRh3Y_FbSRy) zF&nqO*h$c$Lsi4?s^#5MZC5-$%2 zy9WZkPRdy51acN*s|Q!(S_9W8EXsR3lbZHKERob0z;*PZ-xml3sd7ny6Q^>vdJ)2) zR6;~yeZzlI`QNwaO2^Vzh(!{@VU4}88G@9R?o6@_k_==(T9KJ;V5J$@$12IUycZ*G zAu$GXFxSACf+6Ic=9mXbqz$kdocR~FV^lPb{S*~y>*~l=o8ak50tdvCgKRq1wBw6I zkxCoEi#1+?8x=eemd~(7=^Q<-$NX-U=B*5+&B#7NPE$%{-mKxn(vr6O!LE84D>)zX zY)iGr5|Mpg9F|HxjF)S?0=LnDq{V@mq|b{R8Vkag-4y1Oq``-AyT%>DKWEtDFfzwD z>xAaTEAeUruVS^#QYdtd*Wk6>Wu|u8v6!8*B8hmEQQ{2RE@r=8<1T5aid?6Rji*KC z8#LZHvoVrPWH-u|qZ;=XYzZWW?TFytr156KSGuA)k|x_=ScJV*<9@u20X0*h0s}f_ zfIO(N05t|4W*wh?pllhpV?3$KF~Q-(`Mhzt7Z2f`lDbFeaKo9pN;uxF@hINIvNp%Y zc#tV9WjW1a&Pr!=AHw4rPhe7tC*huDoE=QZ=>|DXa7<%L^y~4lC@a?Gmx4a7@f4n> zT00e_UMI-x)QTY~?v%uXIIp{_#~B)`lZa9Cz%EA;)1tPM-{o-1g{?cgCL9W9rq>ai z<@3gQO1W}aRIUgL%&L=8pk%ACaO&}KjZff{WExAvV$O-h9kr+U?dSB7!>6?ZpT=hm ze1->qJ}Nn?#^>;PM$Z;*9@_;{#?yAJ+2JFeQoe{U8~9RA$|+Qh=kOIatax&I{N2k- ztAVdFoB2x54qE5TZFW46O8mOUVthlUNaG&A2hZbM8sEluh)6pJ@_7X@oh_kGPHkrT zB))Ipd%Ph1FLe&H#t-mAMm>>?+HsTj4tAGcD&of)KarLwjl|eN;{4Avel9g)>@`ze z^wWc1;@1X#rEvBvH9M?>g9$Skt>cHrZ}3~z2WRv-v#l@Wq~*WI9}WEBlw&>XW{y$g zPxv!S*iI4C%@O2Woz6YO8J622Mzl8W_TaDhyMe#4&1Ld-*h${goKxu^_$M9h3igDz z$zA3YDs39Uzcr@m0gw8`eimc3J5gsOaIP{Ksz|G1$I}p1sZy=V9J!(3uJAUYmuuy5 z=xsu;&`Jxvq|X-$3we%Ka~*PrkmqSt?T~$KE_s1gH9{`)h1%P?eKgo99ff7HgIZ8j zV!v9f)e=c&ncG~T2W(Q3I`K_-rA=isPdJ7v!(N~u@pX;r7{X>pYE zKw)`d$Y)MmnH5gg$$?a_&ey6z)EH4aC3j)YP1PhdzJyh(R%>;ET0@ol<<89xUdgim zpYFI7?&01GwOT8UQPv&^hJ1|KNwrR^iv^{(w)wk!9Rr=g_Fc@yNwr?979lL$9_$Z= z{p~vjw(JUrgIxpNJ-$$O^QBsC6rM$=^Yr)v%z>+6lUA1r)BG8x_Fz|+uiY1R>6dGD zh0tqe=pFu$%aY~TqE)+a%$ecX8SHg8`?Ts5QpFBmf1zdDwDJpH3%<~r9a;s1;AI5D zd2hS43JQ9`&fu<)?+mV9sa20K)SSXlC^@XvF5#$jIecAVUyo~KpH^2nI$erf<0Qhn zwb~=-3Ku=&(=}RMEBJXXzHgh)7Z{kKUZ<5QRD)^o?{*bLw2BH&hkaLt2eO(CHN+cU zetLH$LgSIWowgN=`jW{+(!dgiA(R+TMyyU=lz3pv?R<^wpeTPlZYA4eCT9hUteEqF zRV=d-E7;Y=e1dvWB##SzRm;^irB57!cy?D7)n#4UXwbAxsS5Nr5W7XC%;EBxU6+*4~DsT(9qZAGnN9jUwfKFqE4TaTwLalC`T0~x$4gU2#>vUrnhyR}c^mqF&<=|lMdjX0IN zft7M8J=(}RXl2MYu|_Uq6>r9QxEvSI?+cmQbxdvx6Whk5cJPh44O`L8?_v0{k5AD! z!+3y?(3{YOBM9O_QXl3E^j+LBg|HLcA$AX=mJMzh9>+7RPU*o%aRTpU8C8(~eR!4$ zT!07getdx8KO0B!L4K9dmLvEOsRpe%fDiM_L+K;<2)`n14%ve_?(}Nk#47=#7$h1%KJE>K^Kr`S6?@rjI?1Pbuu2K-cQ0@dZWY&j+5u z*H#_FH#7L|nn%b9_L4L(7(L*eEWDO$qbuV_6R2{UbOPl~#cWoJ`l-Ub(~pt9?kM(6 z;ulZhcSp&^GM>a=GWgd7D_^MstSWJ^mrp9A5bJfYjgzXf5L@M7=TEBn4%VBsBcJac zMiuB|)~{j?cVh?kFk9E~*?cXZ^w$yULli^I=P=TI`W}Lf+Zo@xh`ApzJc3bXFV1iz z@EMHZ%SaUrfakJ#U4k}Ms}?dgl84RkPV+xtilzMxUN14tGznzjc?b3w(+puDox{@^ z7Bw|BbGeI8IsVF2UC&h_UM>;Ks72yg5i{-1bzna=Twl<}0l$PM+{k%yh%@A-0`==$^;P9^*LT$y zt!9}~y{ep4jr|`($>V)bsa4Ou*Sn)>QZ=)-N`e!-DiXMefRO_(Ay73Z2W=2&ZVqY{ zXkHH5EKqe0Y7?j`2XzQkmV>qmG^1fVp&8OnA$f9)-2!=YP)H!1gL(z3%t8GERpg+n z1uD-$1B6O*z#xGvrT_E;~uU@If35Jb%M|4V_c^=O+Li+!}u&a+F~Vslh+Rm-^I^( zDYx(|{F!eC3x8L|s*J09gt!N`duGb1C>3p^ew(3&r+F<@ z6?JtL1YfJ}im;2~D&5^aG?D?ub+_7XxAwK$cI{)^u5ImO+q!*kt8JJ4&i~J3CXjYZ z$bbKH?z!ild(L;xz4y<1KY8KzTg(y5K!HN}KJ$Rt7%`(mjoo|q zS)rtYj$6^N74NsB;n+ci>-@3!P~*PD;7Fu#C~l4p+o42bZ;nWl!pz(uK|2|-6e|2# z)q!N(jt)_h!suPlvlVW$A-k=MA8~* z?4zx*_>DG|7L7*C!&aP@`( zIA>lsolLW%uG1WCx>Za+=s2W378*-fVFk5Ip>WhbWJMHea_pP*QF|;Z)8r3|5vqeL zjo2f0vb`su&{!Mj?+CVT-4krt?Dy5u!?liwYu!m|tpipxS?hD2!Na4pFmJbLXbwf} zsGYo(YU}FzxWv|2*z$l;(wK`Xg)+Y#wYtVe_FD0vxz~+DEM!Ld%(yLdnpxEBsPQ5n zOEqe-z(AeCwLc@$UM#~>nQgg7A&TVfdJO}`1{&#v?C2|EicBq zO&S`d2G%N6I#8J!AurarlijRQj+ru|Nn;kO3_=;Rvy)A6xEIats7)Hxm`x8Qhi&@b z>%>xE<^scx5^i<7uf}M7pO-T&mB$v1tyn-;$HypLV8(~2sB)Sy4DS%pH)JJyO(x9< zA)`=IS3ij#FS>D?fgXY}yVBNJBtj4i!Zmt9R2YfjvB5zJT4h}hARWAlU2CvIqYwQw ziE~j|T}OS+3fu&4GB7|@k_nC-vxaF?#OfeyY%^ltZOV+rxLsjJ+)6a=cObknnH)55 z=ahQjCao8r!d?SrCP+~`);MTKti~QQIZVU*5Mp4`<~nsGo$S;2DQ)Z&6-^Q`OJfk? z!br>vx5r~6?VN!@POF_dKs;e%zkz)jn`lx;x9?EM8kMzaL?miuqpUf}K++8D55~<9 z%N>I_Hwzm#(;EBiuodfcvS=knHSR(U!+FR<$Z~Z_hdS)V2v!OD4{993VV0aw+%l6i zaaCPT>R+j{DJM8-uZZ!>aF52PaWCs;!b-Ns3CcK?`K3A#XAEkef%}NrY&G-Zhzsk_ zXv{#F2M^(41D{P-^B}#Y@d%D`bfBfHEdzJq)4x0Ms3hNU`h>~nfYRx4A@!KX<9LFQ zGQ+HDRk@K&1FC+P%=eVW=VXS${+6JxS2)jTJnL|_^tJ>7k}+S<@S{_VJ*n|LPO->_ z2)`lAL87jkObDr6dDfxH;yg8iQf-~UahOxEME46CyRe|3<=%cgvs>atueg;#^7vaufg{9AnU%)RJ z_(hsJ?O2Uh@ft^&iB3Bbu@hD(77epbus&}SvtQRZFK{f$q~YjTQgo&?E=&###bfD# zGUN@7H*<#gV?%aG_-|=^UHGN0s~+ws+Q}F(5AASxT$S2Jc~`>mw!)mN zUF!5OhF(W;TFx7_4kcYZjESp)3e(exr>WV>_4_h>Pvd?30fk0cDxJ-cBdQt2?8%}d z$=u<-)>MK&!uJjQF%KSB_iFqJ{*=jLi!_f7Ia-`e$I(JQwfq2oZs3EAmMOg&e}TVb zipfe8W=*kUviAO!!n`a{(iOqk&KsQ-NFe`4;~M;}qfbWZ)mU_5WYfIl>zMjDMlmWAU&ZHF;iP;5!5n|EBTpf~dk!gaDMq z|A)qZ3Py}!GttF$dhiMU+rWP*%)e@y?bhMFF*6>n<%`Du;3vcf_oi#Fwmw&~$xE?3 zL#ZhzhV(Ksf?DM(o=&x$Ag6~J>>RlkO;c<$BgBX%Rw`AbiVbBjOQd?X*>QJ^)yktd zabZ_?Z*Z#|lcx02n@5z^s#MKj5JqAL2*wJxT1{$bl2gkks$8p?&PoF^Ri#$59KC_= z9l@>AU#-<_r@uw|YqXjx{RRELKv25pX*J*JZjkw39853v(c*u;6Ov=YY>y=k;2x6ct5o5*q4;>5o%E zhTl*;vdzvWl)H;<9n^8x#vekvYox z!`)`y)C0^E?Zn9{b&FQFs*SSE#oW#-^DeF5s~S~{%)goE%G@n1-Jj!?$>XAP6>$#f zav)W0s@+gN7PKtRb3`MtxK>*fp;I*A^ZUDr^SRS2r6f&nRNJ)LuKYBeapF-=iq8C8 z{7zL)bjhGDt-9r4AcF$Q!x2lEw`tX@0xXYY_QVoA$2k$NYj1Z>6KaQ6ed#Q=%($Rr zr&a^#q^;b`xQ8;;)o!hBS9cJJVb*zGc&0T)_5i1vx{CK`^(j$ogzbdfv1k`BGp(_) zsO+ZGEnhIx#9c>)rNqr+ky3-2hvQ+|azL(pEZ|F7^>W7kZw1c7vHP^zFLkk~)!!ZP zwFzrPtEjN_mX?k#U)!Gc?$#Xv=@`}OF6o%Pt$QF4>}cJ-XY-C=u)AwdPp>bK9-PoB zDKc}elPnS$;N2edjULY0$3t=(N+zE)q*?LVy5-O^t*+27U?a7EG*pVsPLk(e}MXkOhJRS7y4DLzKY^WEQRM}e76$^}ohTCl` z686R8vABVGbVDFE77tnO{lFvlxs@`4syd=kE8ZG0xm6Hk`P>c&cG)U%9k<+kegW|! zPp++etB^}8xgNgfkzXMLWdnILf?{waIr*v8#sn~ku(hZbv6Ra=aEk z+>9PH@s8Y#yKxJi#73OLrW{9~PWxjPqkI})`R{QKJlvR6f_nPZG*FAIU@&^>T^pH|DMUJYs*O$&N)s(4fxaQ&6 zrP1RPcqhMEI$su-QutS%zf3(b~DLEwpcQ{wt%Nhz;P6o45+)~2c zcU|=RZ{QCVI?rLviZ}3QikH6+{TK1q%g^J7DSWi@tCR%olG@__N{Z37|9TGj9Pwj? z=P!SotPLme@Hjrch|4EYPWpjyRhUwY>yB|%mdmYhxEse+RW5gq!>u1z*W_{+INZu{ zb)CcYrl%fPwGLe+^Q6==X=sw06`5%F(yu_670SYT#%&{pSvJCqb(C?9F?OTuxr;w> z+=B$ac_bN;F(Uo|Z~F)FI=%cRd*0>umG^KjzK8pBvgG}AWasi@XMI-TOHNKNl>r<+kZyU?!Tu__*%g0q~ zN_8wRNU6@{B_%1$UYjB|d2uspYLhl$0(xbSE z3DSfUOt{CGOph~ZoY$$zK7HHFT!SJs=ZL<#d5QCSCY4akfk?N>9`6Fdi$}-fLP%|^sA)zWV)ICC#XQ(4W z6=kRggqob;AySiFk4Tp%BlxIL-VF7aP&z|BDO72OdRnNG3`G=wR9>8+PLe9j5T{9` zdj?)tp;vjRC}$;@r_L}#m!h6+16{q2?RsL}$F^On7TX}Jh{<*@zi7tTjM4SizGmky}YT0A38o%uWYLMDc&-sbN~PV diff --git a/bin/tfg/InterfacePosition.class b/bin/tfg/InterfacePosition.class new file mode 100644 index 0000000000000000000000000000000000000000..f9b3efed933e3704ba9137a52cc983f8e1aff199 GIT binary patch literal 1282 zcmZ{jZBr6a6vzKp9(I9Mi4+yJOig(($x?d&O=Pf`5F8hoc50?sX{B`#nq_guZ_!67 ze4$g5)9a?s)O7B3Rb~oaaPIHk^L)re z4GC_BfkXXRPuBHDEtzYyj~L`~Y3F?*w^e2sDg4(i#o*&gyZM)|NGq^eDwj*!j*a4w z^XTV_*<7)l+hyo?-mX~5y~$+D*Uy1mac_IJk}2%vREE*FJ)_I%YTay@_Bw+r8mln4 zv&|2N438fSLkflwX7HvRm2k9hQ=@8IW}}wM$0|P39aZ3gSBAu4T!F+v=5R-W%)!Uu zo&p~SKZjWbehvW+^9lkS6b^9(3cUQZpr9WE41)!;VHDd(`-WB4_v;2jsL-tH^@?tp zoW-RdE(}o(_D8ctX&>wLwn2wTG}fyFek@~E!U{vMtFn`pZ5%0hf~Pbe-LmwPYV*?x zrPW=3Y5&lu+Npe3ORlb{Ck&DZUpin&belPCi}e@@FCneq8P*t9y6v)cz12!}1-o{1 zlQ>^HS}DKUY+F@h%j9he|Ff)%+<*#G&00gZ+ZHLsy8Ln{=^ojwr#6;oC@%USt zaeyQZTS%I-kThZ;X}UtvV1=Za0>KEMD0y(xUJN2g{%#TdCg#7--@&v{$aRL>rx+11 z<`xhUFyRp}Dd4VGz?6V#Nx+PN`?7#J0ny;4UMwj6An&dYMpVt+K}6L&9Zag4w}UBF zlRB7DHMxU1RSVKpOg%;7E9KOO2lPKp`BL4Ky$=!E+<98qW!lpW-4v;!chrYPq0KGm z%W*1OqJHs?N%6$Q8Im^+y`(_b!bow>4|$6yz!Dxg=Bw0ZZXWI+p}ls+FSIl-V%s%- uj>ijM=;boKOK8InfVK8hXiN< literal 0 HcmV?d00001 diff --git a/bin/tfg/UITextElement.class b/bin/tfg/UITextElement.class new file mode 100644 index 0000000000000000000000000000000000000000..ce9f62e6bb130702c676498c49fb615fc6f37f3b GIT binary patch literal 2773 zcmbVNTU!%X6kR7IOcF-Gct@!>E+Hsst+$HW0wxlTKuH8Cr8p!542DcP85HgPezCWI z;rI1PZ3VwxeC$JiRP8!vLJ$poD14bSXP)Ol%PY0hM5Bmv;nABayg~rG+q(_b6H@AC+tQYSe#oF{VPUERkDVwbgkKQ8pZ{7*QmA%J$L<84d`gveygTa;zDPV3l$>#X=_*CeYwiy0j`nN%I0=Upa{sHyR&Sww6_pOzU{?69xUS7e;dkCKi>N$ULiIOz@+mp;zjD z4HKRy=%ZXx-jJk00&hL9dlz+&si1aNlwH?-iU}pCyy+@%1(KF<9gp!2(Ttv-IpJR` ze=xb{bKhD{0&Z?95InmZuK9YXb*{7TZ*OtEE#J@KAnv;MxnfL{z`|P1+RWWy& z;Z7#vF1lGYr#PNQKN1|16n~UshSf98@j4|baP)+g*#;ttwoHr^?--f}HGKb6b_PfJ VxQolxN4om9ZX?PM-08!Q{{q^gY9{~y literal 0 HcmV?d00001 diff --git a/src/tfg/Game.java b/src/tfg/Game.java index 277f8c2..aba84fa 100644 --- a/src/tfg/Game.java +++ b/src/tfg/Game.java @@ -3,7 +3,7 @@ package tfg; import org.jsfml.graphics.Color; import org.jsfml.graphics.Font; import org.jsfml.graphics.RenderWindow; -import org.jsfml.graphics.Text; +import org.jsfml.graphics.TextStyle; import org.jsfml.system.Clock; import org.jsfml.system.Vector2i; import org.jsfml.window.Keyboard; @@ -11,9 +11,6 @@ import org.jsfml.window.Keyboard.Key; import org.jsfml.window.VideoMode; import org.jsfml.window.event.Event; -import java.io.IOException; -import java.nio.file.Paths; -import java.util.ArrayList; import java.util.Collections; /** @@ -25,30 +22,23 @@ public class Game { private final String renderWindowTitle = "TFG Game"; private final Vector2i renderWindowDimensions = new Vector2i(640, 480); private Player player; - private ArrayList maps = new ArrayList(); - private boolean windowFocused = true; + private boolean renderWindowFocused = true; private Font pixel = new Font(); private int fps; private static boolean limitFPS = false; + private UITextElement fpsCounter; public static void main(String[] args) { Game g = new Game(); /* Create temp object of self. */ g.run(); /* Invoke run. */ } - public Map getRandomMap() { - Collections.shuffle(maps); - return maps.get(0); - } - - public void handleInitialization() { - try { - pixel.loadFromFile(Paths.get("res/kpixel.ttf")); - } catch(IOException ex) { - ex.printStackTrace(); - } + public void handleInitialization() { renderWindow.create(new VideoMode(renderWindowDimensions.x, renderWindowDimensions.y), renderWindowTitle); + + fpsCounter = new UITextElement(InterfacePosition.TOP_LEFT, + Color.YELLOW,24,TextStyle.BOLD); if(limitFPS) { renderWindow.setFramerateLimit(60); @@ -56,11 +46,7 @@ public class Game { player = new Player(); - maps.add(new Map(10, 10, Tile.SAND)); - maps.add(new Map( 5, 4, Tile.WATER)); - maps.add(new Map(15, 20, Tile.GRASS)); - - player.changeMap(getRandomMap()); + player.changeMap(new Map(10, 10, Tile.SAND)); } /** @@ -90,6 +76,7 @@ public class Game { float elapsedTime = frameClock.getElapsedTime().asSeconds(); if(elapsedTime >= 1.0f) { fps = (int)(framesDrawn/elapsedTime); + fpsCounter.updateString("FPS: " + fps); framesDrawn = 0; frameClock.restart(); } @@ -102,12 +89,17 @@ public class Game { case CLOSED: renderWindow.close(); break; + case GAINED_FOCUS: + renderWindowFocused = true; + break; + case LOST_FOCUS: + renderWindowFocused = false; default: break; } } - if(windowFocused) { + if(renderWindowFocused) { if(Keyboard.isKeyPressed(Key.W)) { player.move(Direction.NORTH); } else if(Keyboard.isKeyPressed(Key.S)) { @@ -119,11 +111,6 @@ public class Game { } else if(Keyboard.isKeyPressed(Key.ESCAPE)) { renderWindow.close(); } - - if(Keyboard.isKeyPressed(Key.N)) { - player.resetLocation(); - player.changeMap(getRandomMap()); - } } } @@ -132,14 +119,10 @@ public class Game { } public void handleDrawing() { - Text fpsCount = new Text("FPS: " + fps, pixel, 24); - fpsCount.setColor(Color.YELLOW); - fpsCount.setStyle(Text.BOLD); - fpsCount.setPosition(0,0); renderWindow.clear(); renderWindow.draw(player.getMap()); renderWindow.draw(player); - renderWindow.draw(fpsCount); + renderWindow.draw(fpsCounter); renderWindow.display(); } diff --git a/src/tfg/InterfacePosition.java b/src/tfg/InterfacePosition.java new file mode 100644 index 0000000..a8c65e7 --- /dev/null +++ b/src/tfg/InterfacePosition.java @@ -0,0 +1,15 @@ +package tfg; + +/** + * Positions for UI elements. + * @author Ritchie Cunningham + */ +public enum InterfacePosition { + TOP_LEFT, + TOP_RIGHT, + BOTTOM_LEFT, + BOTTOM_RIGHT, + TOP_CENTER, + BOTTOM_CENTER, + EXACT_CENTER +} diff --git a/src/tfg/UITextElement.java b/src/tfg/UITextElement.java new file mode 100644 index 0000000..509ee00 --- /dev/null +++ b/src/tfg/UITextElement.java @@ -0,0 +1,55 @@ +package tfg; + +import org.jsfml.graphics.Color; +import org.jsfml.graphics.Drawable; +import org.jsfml.graphics.Font; +import org.jsfml.graphics.RenderStates; +import org.jsfml.graphics.RenderTarget; +import org.jsfml.graphics.Text; +import org.jsfml.graphics.TextStyle; + +import java.io.IOException; +import java.nio.file.Paths; + +/** + * GUI Elements + * @author Ritchie Cunningham + */ +public class UITextElement implements Drawable { + private Font font = new Font(); + private Text text = new Text(); + private String value; + + public UITextElement(InterfacePosition p, Color c, int size) { + this(p, c, size, TextStyle.REGULAR); + } + + public UITextElement(InterfacePosition p, Color c, int size, int style) { + try { + font.loadFromFile(Paths.get("res/kpixel.ttf")); + } catch (IOException ex) { + ex.printStackTrace(); + } + + text = new Text("", font, size); + text.setColor(c); + text.setStyle(style); + setPosition(p); + } + + public void updateString(String s) { + text.setString(s); + } + + public void setPosition(InterfacePosition p) { + switch(p) { + case TOP_LEFT: + text.setPosition(0,0); + break; + } + } + + public void draw(RenderTarget target, RenderStates states) { + text.draw(target, states); + } +}