From d0fbfb812f75aeef440cf8937509e234be0ab558 Mon Sep 17 00:00:00 2001 From: "sigonasr2, Sig, Sigo" Date: Thu, 16 Sep 2021 22:28:50 +0000 Subject: [PATCH] basic drawing engine --- Meteo_Engine.jar | Bin 3877 -> 6755 bytes src/sig/Board.java | 14 ++++++--- src/sig/Meteo.java | 72 ++++++++++++++++++++++++++++++++++++++++++++- src/sig/Panel.java | 16 ++++++++++ 4 files changed, 97 insertions(+), 5 deletions(-) create mode 100644 src/sig/Panel.java diff --git a/Meteo_Engine.jar b/Meteo_Engine.jar index 8ff283592acfd44343e3fc0866eb6e5d949668fa..feff0c0b65d19d53d23175db846c94bd9bd8c3d7 100644 GIT binary patch delta 4220 zcmZ{n2T)U6*M>t2hye*TbVBb02pU18gA|o6T|lZdkx(Q`6as`IBy=#8&^ywbN^eqx zC?z5a2+}SBf}$w!!@b`(pWc~&pE+lr_sm(dX7-wAuXh*meT0LI4XLPE0d#b9fQR*X zkP79=Q$Lf^q#C~@aPnTCMcqPqI$Kk!ozBVDl-%`xw8ekFbI=Q-Q-)1hG+3jKMbqV- z==ARhfSD-zU=E9HsRH!ctPCMB;j4m^`u#A(P@yPGYNQnTJGE@%yOybPylMG;!1U$t z>l)VUYeRXOsrE|8Yp>@@uJ2FJ?S5TZkpql5UW}(6!;DANYxZLZEO#9SX`ml96*NUL zcB~2#OG%hvCu9S^jA8b zSwT{pjU;Ba2ZqR(b>Fi(C52)hXdj)k!!H)c+qR4{kz?$T zb9h|3KgYhX^h>Mm!%eGNU1jqNkzHP?d!vixmV%P_?3KZJ!!v>u&cc<6=@QrUmxJ`& zbopV(lAsUFnv&f|`YAWPW^7X36rRA_N%Z5RdopOl8uGnaQixLh^B>ux$Q$e3inoug zy99x2L1L@5gL_~J*q&(>!-GN$Pd+Flt+PF7u)Zfpb=6v#dYbQBf5|14b?eDSGiIr_@inxHqNKmS^X2Uuwv<%t6w`RqgaLr5BH8#Cm6+ zHt@M`g*~{Lh!309p1!NV6{CIrY4D|Q6b1_4z;j#nk^}nuc~9VsYE>$j=U8>3&4q~# zsOgz}T;btn0l$vi7}y zHj}%v+PE&SQzsISC^*tkwRm)aJDKj~>(3~~jvu2>_TS(C74ZE)=HZ4%DP#ai4Sh$? z4ERtV{EF?J<+hpl&*`%ga$39oA^B)QET?|9#dZKBKoW?zfYk^lc+v!$3qKV|trjS8 zhP*aiOG-<>ZBi~$md3^kX$beExApTM05b-9g(~IB9k-bbPNs80;LEG46!>|5IZ|gjSDF{dRhDSp zMz_XInOcv*d$;vly4wU-JkVEe8T9DbIb(Tf-}|B9Lsk>ps-~crWB03(Up-cKKQZda zkt+_@yxy_Oyj+->EULKMQcA>>UElWNdRgjW)nm_K@do~;c8p1FsJ!lnv3IL^zIj(N z&(I;k=q}>x@=`(BqCXQKQ(;xpP-L#3S$OiH=dao)6IFAn!>q+BiaTf#oQ6NfRx!u4 zPQ&J=GB;FMjBh(=c+xgaND|fksoH5Gh}x7-OGLNlPJBVO!Q2y%d2Z!*ACc6WkUnby zRnNV9Vs!j{k=GBvtwL`S=56njb@ASJ>dpqKGepHV z6KIo?`4h@2Fb9JPhYaZ4mp8l8F>0u992PD@9mkKxbGMFFx6^RDEDazgtqj@xC@8&P zOa(@K`;b;95C75Yd+k<>A+>&UxL-=KnvD-If71C}*C(bYC33PNJc**j-Xv_VY_R+` zz0J9ZQSF8}tFq{j-Oqz&k8jpKzAMrcpL(~unzF+BkfK=UVfFtd|y{|xlWbnfI1@N}0m zcJg)gmc8Ze6cFHw8@@&?-qw$!fVYXSnu7teGcYC{1HHGM;-YV$EIM@7R2Pl7GP)ZQ zIC<+qLMkNuk!%FoZCQ@9+jUK)2I^m z%IE#=CRJjy-*R9{p>%xP?AK}?9mx^Ia)O6%xe*JnACk{Yewv7pvttR!xB%9A*GtJB zD4l85ADdvo;$_8O3y z=tYF+6GCa$1{|XMp!qY(G?KF-tLE@MdRQcCsUsS{^LPNI<~VkcSax8Qzm=f*m`Ns7 z4q_DR?ZHa1(+#M^fmA2{(n5*GI1#=|t=7UU^257MB|bjs@tIbx|WadOya&f12; z2jj*A$*}NqRG^wmm_c`(W8x4_#59 zcmz0(IPMYK^IpXk#AgnX>sP*PlD7y;v!7RL0R6S)1!`1hS3rA?oev{4sI(wcc{y{9 z3!u!g4TwChOP#CWwv2>7^s#)S1N_dJkEos2mkr&mmAAUpDO`DPAdM6}uD4Eez+BP= zgX~+pjFgL77(5O89!Bc1sukJr~b&+)0H6;fz%S z&)S}kM5Mj4+UIt%7-=7Jv+nKYf6$$Kw>vZ0;#HzutNxTshub1owW7-#qCO#}0O7WX zh*kE@$mqVx`&!hO=#d}J8O29q{-x!ebkzWq!h);%1`D(&^#^V`QkDCQJKCk`)`t&G zsyBUO#}k@c8U{p@N~DFpkS#u2aPuWbZf0ck5tw()eHI_LUYPM(JpXys3Ra747fpLQ zawqh7kA^c2=1pB&I;vU|D-iU+)0sv`aDPAWpdT_qBcX%%xFgOC)(Ycyz9q%_Ojmfi z)zHOeETX8xFCD&+nDUjwL>j#g@*FDaSeViwMf9;p>VJUj8B=2*$%zIotM4NM4@q23 z{TS&G`^IeAM>z9NY(Qt%afXeN*`mJt4*E0ludPf7{aD8%R{y1k;iaF|H!tPq|I7== zo{{;2$=jJE^wBiFqCx$DhjBw|=x6q5zK;K@zwdCB+0$o_Z{UpaWFb16_`D9H)x$r2 zeh<9qX92&4|0|EJ(Bz4UcOP1;Lf>oeOxYT7-@{8&sF7sL>N-lIUky0~9&X`|!bc7h zVQqC+Gt#DdiPhIgS%XUW4_ycvn=J8-G>6WG(2KVk;i2|BcLlv%+v;=gxX|_&h8g+g zqgGa=Bo{>adWyE1WzZ6Ln6rg_3diH5?M0&Nmo|iMs_7`hYa*6QYbOT(C@P2?)IJV;OBwrAz=MJqu1@@AMNbpwc;#&dq&h0d)Uv65 zG{|d@;Xa`H`Lc~1{X{SAHp6|En(=xW3ZY*8Zv@2;KhzZK)nq%uXkm#QlDhC-`SJy5 zKO7b>wLP`mWsb|!ljQTFbA&%cV+O=7DR6eC4CH!b^c&4yCX9yoCrReqUhS)ly~wr; z%C0De&jkW+Ixi|kpkK?LjoQwU=&R8EdIg~q<^o;};7TG^%zq&bU9Pbw+I0CML~4DS z&j0LY`!-^GlwgJ-NLvTZrLbuxZq_BxNGnipxQUSKUQa}au}Sb6T20~6x*Z8@l?r?J zD3aLIQ(d|O#nqdfY+M&$(pv#$Tq@5b<5g#?IjengA!#yF-SY2l$v!6cO&JU+uf;Pr z8!*JRcVAhx>S@!_Zi*FdijmL zi7VX|+0A@wwyJt^5dlf~{7o>NvC*E3a%)+IFDEsSm+m26S zhx}o+Kh**|8)uoc;Qq5X>Ci24tVY#6l{j6d_6mWlho;S#yca3xUf=h#(Oy32Hb0%{ zbZSuVDkZ8S;&R)iJqYkhs5$|BL-f_eP9}8}N?XNto^s;nbg|l*$(UJ=ZCBZOu{2&z zb_tPcZ6YD8`#VSJ2d0pK1jocFZSiV2aUY3)qaDn$pg5B3WCxZ|s@4UU6^HLg#auSK zZwKm&s2!&X9m_)(O;R+*tdh6P3_8Mv=t4tys}@PCqHWY_X+)B&_5qz`*`QLA0+RQ_ zHnTO4bKI|>LB(kLCMRg3#+P{9iU=vJLmU*TIl}q6`FodcU}G=%-HbH z{J%StKZAupNsPSc(*(cw#6SP3JCXk~F8@yO`*v{JHvcyqPvmLvA5HXM;kstOFW#T= c1lHf<|FeS_8`1zzQ=C1yicZ$Nl;c$WA0~cS_AzxB{hNI|K0zX`{!|K{bQ(~^21ETs{Q-D zbLYrV( z>G|`Z8%v%`@qA66$adF8FKv>=9f7Gm2k)xcsTJGlN=nu3zpw05_14fYVDWhmjRd3q ztjT`IuSk~u&Efs#$b6VDbg@$CrW*xjm-OzgxZ?jc-#F-P;*y((KX7|JxfXM~+2mEl zg}LXXo+Zpq4(FTuhiz?w(CaYmH~*LeyxBQeva=_NF)}cu0x@z>PG)42-h7)`g$WXf zVw+_c7lGKD8QBiP#3tY3;HjT{*H1W5;Q0UL@;b5Gq8Es*bafEO6<=DXpyfItNN~fC ziBdd8j()ed>g1Hqek=CmnD(Og2Yav23R$FL*YJH`qrYR1#c~l*A^%JN-^?jaD|=>s zJAePa8difYSIP7O)dqugT#|y5M2dV*lq#CH+?isarCd<*by|y|Bv;;c#YXFTp?9Y^ z5^Wkp)KcyoUecn;`CXE!^0Hn|%8t{Lw>H17nXI0@E>Uf>+g0C-h37OP@2s`7I(%T| zW;0Ms=d;a>qEYzYk6r8hUbH$+VxZLyxa`wfd^p#+UmZEvtM|Ci14f=$_rK-Ltl@jhcFJvr}Z08qethb;(s(w=!ls5$?bUeMZwYZ71fXFuKZ&gOaLEdQ$l}jIbOH430tML5Itl$gj zyoIiQx9@27b?AxmD6LiKD&|UZsw#+cTtC51@voC!LWANT@l#tKf5>%ob7YBSdCxCD zG0)ABt)5@v%H%6YF0N^5=Xz$KpXhi{Ii)|@)z)PCF>Rl`sgwLay{>BPSf%cM@Ii0) zyT3=ABJ}lxVpQhY%FguKlk%c#zMRQJ;l%%YG`7cn{CJ1wtY zth6k>^XFu)RJm)#vaj>Grg6l~u*+O9wa$f$C;jEg=DeVKC%%nIzTOX{w{6e-J!{+k z%uJ3YUs45+cQ0{%qVYwa%XLFl*(?uy4G8@&b<4Vrs)SSbNs1v7+r%wFS>&U*1F+DUY%F2G zH_^%<7?G_e7fMJ>ZkH5S00|eLvH1NTnA2*R8Gt4r17D`e2PBkYL5luOx-3x(v`htP z89%ZbhCZN3ab~){Q%-(zwq9~hVsSC5YYc+VU5t9t2-KVjRElbY2m53}HnGVPl05Dp iTadkkY6~|P)Rz3jq7;}dtZX2cZ~);ep!-#MK|BBoj5=Ka diff --git a/src/sig/Board.java b/src/sig/Board.java index d99627c..5efff10 100644 --- a/src/sig/Board.java +++ b/src/sig/Board.java @@ -12,10 +12,16 @@ public class Board { double max_rise_spd; double max_fall_spd; double[] combo_power_bonus; - public Board(int width, int height, double gravity, double launch_power, double max_rise_spd, double max_fall_spd, + int x,y; + int block_width,block_height; + public Board(int centerX,int centerY,int block_width,int block_height,int boardWidth, int boardHeight, double gravity, double launch_power, double max_rise_spd, double max_fall_spd, double[] combo_power_bonus) { - this.width = width; - this.height = height; + this.x=centerX; + this.y=centerY; + this.block_width=block_width; + this.block_height=block_height; + this.width = boardWidth; + this.height = boardHeight; this.gravity = gravity; this.launch_power = launch_power; this.max_rise_spd = max_rise_spd; @@ -24,7 +30,7 @@ public class Board { this.blockData = new ArrayList(); List initialBlocks = new ArrayList(); - for (int x=0;xTIMEPERTICK) { //Took longer than 1/60th of a second. No sleep. + System.err.println("Frame Drawing took longer than "+TIMEPERTICK+"ns to calculate ("+diff+"ns total)!"); + } else { + try { + long sleepTime = TIMEPERTICK - diff; + long millis = (sleepTime)/1000000; + int nanos = (int)(sleepTime-(((sleepTime)/1000000)*1000000)); + //System.out.println("FRAME DRAWING: Sleeping for ("+millis+"ms,"+nanos+"ns) - "+(diff)+"ns"); + Thread.sleep(millis,nanos); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + }.start(); + + new Thread() { + public void run(){ + while (true) { + long startTime = System.nanoTime(); + runGameLoop(); + long endTime = System.nanoTime(); + long diff = endTime-startTime; + if (diff>TIMEPERTICK) { //Took longer than 1/60th of a second. No sleep. + System.err.println("Main Game Loop took longer than "+TIMEPERTICK+"ns to calculate ("+diff+"ns total)!"); + } else { + try { + long sleepTime = TIMEPERTICK - diff; + long millis = (sleepTime)/1000000; + int nanos = (int)(sleepTime-(((sleepTime)/1000000)*1000000)); + //System.out.println("Sleeping for ("+millis+"ms,"+nanos+"ns) - "+(diff)+"ns"); + Thread.sleep(millis,nanos); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + } + }.start(); + + f.add(p); + f.setSize(SCREEN_WIDTH,SCREEN_HEIGHT); + f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + f.setVisible(true); } } \ No newline at end of file diff --git a/src/sig/Panel.java b/src/sig/Panel.java new file mode 100644 index 0000000..6337878 --- /dev/null +++ b/src/sig/Panel.java @@ -0,0 +1,16 @@ +package sig; + +import javax.swing.JPanel; +import java.awt.Graphics; + +public class Panel extends JPanel{ + + Panel() { + this.setSize(Meteo.SCREEN_WIDTH,Meteo.SCREEN_HEIGHT); + } + + public void paintComponent(Graphics g) { + super.paintComponent(g); + g.drawString(Long.toString(Meteo.FRAMECOUNT),0,16); + } +}