From e698273bfaa963c7723ff873981a2b2dae494a30 Mon Sep 17 00:00:00 2001 From: Chara1236 Date: Sun, 12 Jun 2022 23:55:19 -0400 Subject: [PATCH] Working on moving block --- img/tiles/boxes/greenSteel.png | Bin 0 -> 1740 bytes img/tiles/boxes/redSteel.png | Bin 0 -> 1451 bytes saves/Level1.txt | 2 +- src/GamePanel.java | 29 ++++++++++++++++++++++++----- src/Player.java | 21 ++++++++++++--------- 5 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 img/tiles/boxes/greenSteel.png create mode 100644 img/tiles/boxes/redSteel.png diff --git a/img/tiles/boxes/greenSteel.png b/img/tiles/boxes/greenSteel.png new file mode 100644 index 0000000000000000000000000000000000000000..7eadf4862258f7ebb075f32d5c8878187be1c1c0 GIT binary patch literal 1740 zcmV;-1~d7IP)Px*hDk(0RCr$Pn^|%jHxPz@kQ60R@}g|EvXx)s!zJfP4&p2LD0xpgc2cQmDaVp1 zE=c{2t!D&~LyC*V5vuGOasW*Chu$zE%y0Is1snf2{=yo$=0|tax7eqCPu)=6Wqj?H zo6~<8?&&_csdPWiFLElOMBe;B<2#ESVQf|p3-%4NnP2T&tLJpjw1733!lGl?*(uYJ zflda>67=Kc)LIzBuiW&MUW3(;WL__@)-eiIUl7G&s;R2PPX`Lpp=u#>R z7{gxfsbPGON2vt!i+v+7U3U(457A9eAP*o2FNEuB<7aPd$x=iZZ#nE~92AZhbm4x@ z2pr_p_!LplKOk6Qgo7!J#~sJ{3(ggvSAm=sJ7NlB0+_6TfvS3dqn$*qyPKw7aYMC6 zaZJ&Lf>8&nt9Nwk%_S0r!)ip11V0r_?pdyxwz8 z=!3YUcd;%y7@+Tzk8VrJwF9{8TRXzgjPJxUu3gsv1MDYonK0y_S`0D4HHKn!GII$` z5Hy%O{UL;=6|u-p(?bVG=sTO#Zdmnhxkn&FjGa}~jEb>wVEYmysk{rMDaQm$3Oe0l zj2le6Otu8Z4ZFY@Qs61|#{nXM1>Io{C;<1k8Uid1Woe0-wwf7xpTpaCz81o@1cm`RV}mYzIfi zTT0E9!|Kv37)Y-%23NQq?YMxnj)8GdT%#`nf1693*{e#%qAsWQndn#tU38^)I7`-{ z%8noG39QdV_r($v>!FJy>AqHic3^N2K5JL4oo`8i3b0 zmEb(|u_~4z`50sH4*z=JOx8+1-{Xr+m9Zou3-nA!VnJN~dMt_Q)!-H*ai364)YCcL zr;F}gxE3H7#+i`8+yWT9#Ii$igrWZ}Bh*X|PnW7@W)VJtWgz54`XtIJ0# zm|%(z<^mrjB?HIU#|!%uebZCHcjD3;JuL?&TY#yGaTzeW@ax$w2FAyfB4(%N5TlBT z>$t>C8>~v3N6G3Er$OW}7_ShvoULQ(PA- z2Gx{YwC*NCsXn2KX2Iw|uiav(7pqGK$YdEA!M&0rfig-(q_+~%Wag^ueHPTe*j;Te zVhmfS#W?rj-e*5sxTQeqUPG{Wqo3zmu6SD&7Z>DRJlhBu+56~}JVO(=iQ5j8je>bd zP&NkUp+VUQn1={u?O+}%lrg4iU+6RTs8efOxvMk!8}6AymsK9 zJNe?eN!#{2S}kMleM%D@X7#DOcGyP`{5P-dI+Q!E)C5c$pezigEl?H$(J8o^^+2ibw(FF6 zI?M#~2hQY}E?XZxe1mj`aNfkT?r#eU&v^2e=WO(jFL7KHvk2xKSK#4F-A*vTOFX*| z6Ko60Ck*BAt8VFx=UtVGVA2`F>Y$%+x-^(=L7~8Z;yf$&cR0y@zcDb|gtAgF@1f2R zdZs)V@CsioY%$x0LV^FmM>#2{8;=Q<;!M$Es0`uIH`(ZqFY#1@@FMMVfI@khL>M=D zAf1g+p2$hhygqA9*PjcNMHVvjT^pE(425tiVEDId9_Cy{(}$u~G2f==SjkW3H!bug ip7#i*K=~0&0nGo-AWq3Y#vxSz0000_H literal 0 HcmV?d00001 diff --git a/img/tiles/boxes/redSteel.png b/img/tiles/boxes/redSteel.png new file mode 100644 index 0000000000000000000000000000000000000000..fddcc7121d61604b119517e516f102f663cac54d GIT binary patch literal 1451 zcmV;c1yuTpP)Px)Wl2OqRCr$Pn`>{|HWY?m`I5#qf+fw`1;{q^Yxm=p|It5~@5NdaD9|Jr+}Ls! z4KK+fk-E~BY}uv>7;q%<@SI2ICdG`BPoEN;hC_frA`K?Wok(&=csfD?eOyRJ<}W44 z98V?5ms0FnmX@mJiL6u+Ge4nr_M-Nhh2xZ!$>pV-FY7p8)NxA>bFE%0LX_OyCC=hG zgT!d9kI~X1k)9WejIxE}1+Nr~GqLKDjC%InhAsvedD%Mpwz;=hpl6Gh>6JgGJ?8Jb z{R$-utm{$6y#$EzbL&Rsz}vv`5h45?@6J)!FEA1sqcJd@q&}fM!3i771L7FbV&P&D zuNn-1=@b|alKO?H2Tq z$yDoVpa1qP19^4^ynhF9P3AB!kD;)C=fKmWi(obbE-$x(WjqF&JVkP|@sxa`RR#_Q zh-OnH(ZEf_g!1FTEuU|%fZuMkJ#uNrZYqmK9+LH{XL?xZ1C4dZO?M4yrwzFd?|uavu{!J}o)?8yRK*5i%%(tO5^WBEg7@_+@c86Z?qoJY^yeSC5AaI9RQkVHM1;e* zqvXjsl8XyOOj>P*gp0{3^|j8p(P{-e7fUkhEIlP+Nv5{kx>H2hSjY%FDn z#vWkWI7R7Pd2TUKYC}hiOvA_RV<}(d5*0ow>$X?dJNdR>Dw800*awQtVxpBWHpkM= z)g;4maheI7YHy^|8{j0Ahb)5^V>;V_BJ~2G6gLX$dEF`_UONJ#Wqfw3OXv{((^R zu%3Nds#ZRIryk=~eT<$Z4}_@&+lIo0b_V8kdZ7h0`X zXYYKE2#V^gI{|ZKP`UwggizXpIZ`O?z#K7@&A}Wwl+C~d0A+nJfk0UgOh8cl!2|}y z4@`hin!yALr5;ScP^!TM4y7E-35t66;67ashx%WaKBMnudSkUHlYd%Wb|dl;-y_A}KH^eqaKG(hMe0DD_|hhEfeC za46+qPEb_IDVFP|4GZhkyrye=>{FUl+w2WqlT@Gcdkm%dA@cL*tl?982;T#vk&oH+ z*YpMD@e$w_9}cFB>+4EAt3Br70pLDDdt6=VJw9zlUr^?AfMD!Vv&XX<%>8}2`5($Fm~O zRC^4KQF{pIT2yWip*NjmG_7`q&!+M|6%}?fgH=}z6PGBmSp1@Rq`5#s@lfz@aI}rc?002ovPDHLk FV1nkCs)Yam literal 0 HcmV?d00001 diff --git a/saves/Level1.txt b/saves/Level1.txt index aa82d53..91a9bb7 100644 --- a/saves/Level1.txt +++ b/saves/Level1.txt @@ -6,7 +6,7 @@ sssssssssssssssssd sssssssssssssssssd 1 1lllllllll1 1 1 sssssssssssssssssd 1 sssssssssssssssssd -sssssssssssssssssd b ! qe qe +sssssssssssssssssd ! b qe qe sssssssssssssssssd bbbbb ad ! ad sssssssssssssssssd qwe qwe atwwwrd qwwwwwwellllqwwwwwwwe sssssssssssssssssd asd asd zxxxxxc zxxxxxxxllllxxxxxxxxc diff --git a/src/GamePanel.java b/src/GamePanel.java index b7ab94e..e75b271 100644 --- a/src/GamePanel.java +++ b/src/GamePanel.java @@ -140,7 +140,9 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ public void mouseDragged(MouseEvent e) { player.mouseDragged(e); } - + public void mouseMoved(MouseEvent e) { + player.mouseMoved(e); + } }); this.setPreferredSize(new Dimension(GAME_WIDTH, GAME_HEIGHT)); @@ -156,13 +158,17 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ //we are using "double buffering here" - if we draw images directly onto the screen, it takes time and the human eye can actually notice flashes of lag as each pixel on the screen is drawn one at a time. Instead, we are going to draw images OFF the screen, then simply move the image on screen as needed. image = createImage(GAME_WIDTH, GAME_HEIGHT); //draw off screen graphics = image.getGraphics(); - draw(graphics, playerFrame, enemyFrame);//update the positions of everything on the screen + try { + draw(graphics, playerFrame, enemyFrame);//update the positions of everything on the screen + } catch (IOException e) { + throw new RuntimeException(e); + } g.drawImage(image, 0, 0, this); //move the image on the screen } //call the draw methods in each class to update positions as things move - public void draw(Graphics g, int playerFrame, int enemyFrame){ + public void draw(Graphics g, int playerFrame, int enemyFrame) throws IOException { background.draw(g); if (isPaused) { // set player frame to 0 to prevent frame from changing when player moves @@ -209,8 +215,21 @@ public class GamePanel extends JPanel implements Runnable, KeyListener{ (player.mouseX - GamePanel.player.x) / 20, (player.mouseY - GamePanel.player.y) / 10); bombDir.draw(g); } - g.drawString(camera.x+" "+((camera.x+GAME_WIDTH)/Tile.length)+" "+player.leftMouseDown,100,100); - g.drawString(camera.x+" "+((player.mouseX+camera.x+GAME_WIDTH/2)/Tile.length)+" "+player.leftMouseDown,100,200); + + if(player.holdingSteel){ + String filePath = ""; + if(player.canPlaceSteel){ + filePath = "img/tiles/boxes/greenSteel.png"; + } else { + filePath = "img/tiles/boxes/redSteel.png"; + } + double x = ((player.mouseX+camera.x) / Tile.length)*Tile.length; + double y = ((player.mouseY / Tile.length))*Tile.length; + g.drawImage(getImage(filePath),(int)x-camera.x+Tile.length/2+1,(int)y,Tile.length,Tile.length,null); + } + +// g.drawString(camera.x+" "+((camera.x+GAME_WIDTH)/Tile.length)+" "+player.leftMouseDown,100,100); +// g.drawString(camera.x+" "+((player.mouseX+camera.x+GAME_WIDTH/2)/Tile.length)+" "+player.leftMouseDown,100,200); g.drawImage(bomb,20,20,35,35,null); g.drawString("X"+LevelManager.bombs,60,40); if (isPaused) { diff --git a/src/Player.java b/src/Player.java index 1af1dfa..b4a3f6a 100644 --- a/src/Player.java +++ b/src/Player.java @@ -30,6 +30,7 @@ public class Player extends GenericSprite { public boolean rightMouseDown; boolean holdingSteel; + boolean canPlaceSteel; // sA[0] is -x, -y // sA[1] is x, -y @@ -48,6 +49,7 @@ public class Player extends GenericSprite { isPlayer = true; leftMouseDown = false; holdingSteel = false; + canPlaceSteel = false; } @@ -223,17 +225,16 @@ public class Player extends GenericSprite { if(e.getButton()==MouseEvent.BUTTON3) { int x = (mouseX + GamePanel.camera.x + GamePanel.GAME_WIDTH / 2) / Tile.length; int y = (mouseY / Tile.length); - - if (!holdingSteel&&GamePanel.map[x][y] != null) { - rightMouseDown = true; - if (GamePanel.map[x][y].movable) { + rightMouseDown = true; + if (!holdingSteel) { + if (GamePanel.map[x][y] != null&&GamePanel.map[x][y].movable) { holdingSteel = true; GamePanel.map[x][y] = null; } } else if(GamePanel.map[x][y] == null){ - holdingSteel = false; GamePanel.map[x][y] = new SingleTile(x*Tile.length - (GamePanel.GAME_WIDTH/2), y*Tile.length, GamePanel.getImage("img/tiles/boxes/steel.png")); GamePanel.map[x][y].movable = true; + holdingSteel = false; } } } @@ -244,6 +245,12 @@ public class Player extends GenericSprite { mouseX = e.getX(); mouseY = e.getY(); } + + public void mouseMoved(MouseEvent e) { + + mouseX = e.getX(); + mouseY = e.getY(); + } public void mouseReleased(MouseEvent e) { mouseX = e.getX(); mouseY = e.getY(); @@ -266,11 +273,7 @@ public class Player extends GenericSprite { } } public int draw(Graphics g, int frame) { - //g.drawString(mouseX+" "+mouseY, 300, 300); frame %= spriteArray[0][0].length; - if(rightMouseDown){ - g.drawRect(mouseX,mouseY,35,35); - } if (!upPressed && !downPressed && !leftPressed && !rightPressed) { g.drawImage(spriteArray[lastXDirection][lastYDirection][0], x-10, y, null); return 0;