From 9bfd2d577b873b87d3c0109687d251e4a12621c0 Mon Sep 17 00:00:00 2001 From: palinakarzhenka Date: Tue, 30 May 2023 11:16:51 -0700 Subject: [PATCH 1/5] trying to work through minor bugs with phineas and ferb --- Where's Perry3/src/Frame.java | 206 ++++++++++++++++++--------- Where's Perry3/src/Player.java | 19 ++- Where's Perry3/src/imgs/Buttons.java | 4 +- Where's Perry3/src/imgs/Level.java | 18 +-- Where's Perry3/src/imgs/level1.png | Bin 21246 -> 21270 bytes Where's Perry3/src/imgs/level2.png | Bin 26487 -> 25845 bytes 6 files changed, 151 insertions(+), 96 deletions(-) diff --git a/Where's Perry3/src/Frame.java b/Where's Perry3/src/Frame.java index 5e73722..405003e 100644 --- a/Where's Perry3/src/Frame.java +++ b/Where's Perry3/src/Frame.java @@ -28,8 +28,6 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyListener { - Player p = new Player("Phin.png"); - Player p2 = new Player("Ferb.png"); Background homepage = new Background(); boolean home = false; //setting up homepage buttons that let user access levels 1-3 @@ -39,11 +37,16 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL //pause button that appears in every level Buttons pause = new Buttons("pause.png", 730, 0); + //two player objects + Player p = new Player("Phin.png"); + Player p2 = new Player("Ferb.png"); + + //levers Levers lev1 = new Levers("LeverUnchanged.png", 670, 75); //setting up the visual backgrounds and maze contents of levels Background back = new Background("background.png"); - Level first = new Level("level2.png"); + Level first = new Level("level1.png"); boolean firstStart = false; Level second = new Level("level2.png"); boolean secondStart = false; @@ -53,7 +56,7 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL //attributes of the menu pop-up RestartMenu restartMenu = new RestartMenu(); boolean canRestart = false; - Buttons restart = new Buttons("restart.png",330 ,420); + Buttons restart = new Buttons("restart.png", 330, 420); boolean tryagain = false; Buttons menu = new Buttons("menu.png", 460, 420); @@ -70,13 +73,9 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL //setting up arrays that contain gem objects for each level ArrayList level1Gems = new ArrayList(); ArrayList level2Gems = new ArrayList(); - - //for loop to set up gems ArrayList level3Gems = new ArrayList(); - //for loop to set up games - private long starttime; - + //private long starttime; public void paint(Graphics g) { @@ -121,6 +120,8 @@ public void paint(Graphics g) { three.paint(g); if (firstStart) {//checking if button to play level 1 has been pressed/'hit' + //if button has been pressed, draw the corresponding level and its components + back.paint(g); first.paint(g); pause.paint(g); @@ -142,38 +143,63 @@ public void paint(Graphics g) { //set players at bottom left screen p.paint(g); p2.paint(g); - //if button has been pressed, draw the corresponding level and its components - if(first.getclr(p.getX() + 30,p.getY()+70) == true && first.getclr(p.getX() + 30,p.getY()+60) == false) { + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(first.getclr(p.getX() + 28,p.getY()+76)){ p.setFlor(p.getY()); } else { - p.setFlor(700); + p.setFlor(795); } - - if(first.getclr(p.getX() + 5,p.getY()+60) == true) { + if(first.getclr(p.getX() + 5,p.getY()+76)) { p.setLwall(p.getX()); - } else { + }else { p.setLwall(10); } - g.drawRect(p.getX(), p.getY()+60, 10, 10); - - if(first.getclr(p.getX()+ 45,p.getY()+60) == true) { + g.drawRect(p.getX(), p.getY()+76, 10, 10); + if(first.getclr(p.getX()+ 45,p.getY()+76)) { p.setRwall(p.getX()); - } else { - p.setRwall(700); + }else { + p.setRwall(695); } - g.drawRect(p.getX()+ 10, p.getY()+60, 10, 10); + g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(first.getclr(p2.getX()+28,p2.getY()+76)) { + p2.setFlor(p2.getY()); + } else { + p2.setFlor(795); + } + if(first.getclr(p2.getX() + 5,p2.getY()+76) == true) { + p2.setLwall(p2.getX()+5); + + }else { + p2.setLwall(10); + } + g.drawRect(p2.getX(), p2.getY()+76, 10, 10); + if(first.getclr(p2.getX()+ 45,p2.getY()+76) == true) { + p2.setRwall(p2.getX()+45); + }else { + p2.setRwall(795); + } + g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); //checking if phineas stepped into green if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ p.dissapear(null); p.stop(); + p2.dissapear(null); + p2.stop(); canRestart = true; } //checking if ferb stepped into orange - + if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ + p2.dissapear(null); + p2.stop(); + p.dissapear(null);; + p.stop(); + canRestart = true; + } //did corresponding player collect their gem if(p.grabbedGem(level1Gems.get(0))) { @@ -189,22 +215,22 @@ public void paint(Graphics g) { p2.paint(g); //if button has been pressed, draw the corresponding level and its components - if(second.getclr(p.getX() + 30,p.getY()+70) == true && second.getclr(p.getX() + 30,p.getY()+60) == false) { + if(second.getclr(p.getX() + 28,p.getY()+76) == true && second.getclr(p.getX() + 28,p.getY()+66) == false) { p.setFlor(p.getY()); } else { - p.setFlor(700); + p.setFlor(795); } - if(second.getclr(p.getX() + 10,p.getY()+60) == true) { + if(second.getclr(p.getX()+5,p.getY()+76) == true) { p.setLwall(p.getX()); } else { p.setLwall(10); } - if(second.getclr(p.getX()+ 50,p.getY()+60) == true) { + if(second.getclr(p.getX()+ 45,p.getY()+76) == true) { p.setRwall(p.getX()); } else { - p.setRwall(700); + p.setRwall(790); } } @@ -218,16 +244,17 @@ public void paint(Graphics g) { //if button has been pressed, draw the corresponding level and its components - if(third.getclr(p.getX() + 30,p.getY()+70) == true && third.returnClr(p.getX() + 30,p.getY()+60) == 0) { + /*if(third.getclr(p.getX() + 30,p.getY()+70) && third.returnClr(p.getX() + 30,p.getY()+60) == 0) { - } + }*/ + if(third.getclr(p.getX()+28,p.getY()+76) == true) { //phineas/ferb objects search for the specific color that they're allowed to step on p.setFlor(p.getY()); } else { - p.setFlor(700); + p.setFlor(695); } if(third.getclr(p.getX()+20,p.getY()+60) == true) { @@ -242,7 +269,7 @@ public void paint(Graphics g) { p.setRwall(p.getX()); } else { - p.setRwall(700); + p.setRwall(695); } g.drawRect(p.getX()+ 35, p.getY()+60, 10, 10); @@ -282,51 +309,110 @@ public void paint(Graphics g) { restartMenu.paint(g); menu.paint(g); restart.paint(g); - //pause menu components are drawn (menu button and restart the level button + //pause menu components are drawn (menu button and restart the level button) } if(home) {//player has hit the menu button on pause menu homepage.paint(g); one.paint(g); two.paint(g); three.paint(g); + /*p.restart("Phin.png"); + p2.restart("Ferb.png");*/ home = false; - p.restart("Phineas.png"); - //players are returned to homepage, i.e. homepage is redrawn + //user is returned to homepage, i.e. homepage is redrawn } - if(tryagain) { - canRestart = false; + if(tryagain) {//user chose to restart same level they were on before + + canRestart = false;//restart pop up disappears + if (firstStart) {//checking if button to play level 1 has been pressed/'hit' - back.paint(g); first.paint(g); pause.paint(g); - p.restart("Phineas.png"); + //p.restart("Phin.png"); + //p2.restart("Ferb.png"); + p.paint(g); + p2.paint(g); + //lavas + level1.get(0).paint(g);//orange + level1.get(1).paint(g);//orange + level1.get(2).paint(g);//green + level1.get(3).paint(g);//green + level1.get(4).paint(g);//orange + level1.get(5).paint(g);//orange + level1.get(6).paint(g);//orange + level1.get(7).paint(g);//green + level1.get(8).paint(g);//green + level1.get(9).paint(g);//green + //Gems reset level1Gems.get(0).restart("gearGEM2t.gif"); level1Gems.get(0).paint(g); //if button has been pressed, draw the corresponding level and its components - if(first.getclr(p.getX()+28,p.getY()+76) == true) { - //phineas/ferb objects search for the specific color that they're allowed to step on - - //System.out.println("yas"); + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(first.getclr(p.getX() + 28,p.getY()+76)) { p.setFlor(p.getY()); - //p.setFlor(p.getY()); } else { - p.setFlor(695); + p.setFlor(795); + } + if(first.getclr(p.getX() + 5,p.getY()+76)) { + p.setLwall(p.getX()); + + } + g.drawRect(p.getX(), p.getY()+76, 10, 10); + if(first.getclr(p.getX()+ 45,p.getY()+76)) { + p.setRwall(p.getX()); + } + g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); + + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(first.getclr(p2.getX()+28,p2.getY()+76)) { + p2.setFlor(p2.getY()); + } else { + p2.setFlor(695); + } + if(first.getclr(p2.getX() + 5,p2.getY()+76)) { + p2.setLwall(p2.getX()+5); + + } + g.drawRect(p2.getX(), p2.getY()+76, 10, 10); + if(first.getclr(p2.getX()+ 45,p2.getY()+76)) { + p2.setRwall(p2.getX()+45); + } + g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); + + //checking if phineas stepped into green + if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ + p.dissapear(null); + p.stop(); + p2.dissapear(null); + p2.stop(); + canRestart = true; + } + //checking if ferb stepped into orange + if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p.crossedLava(level1.get(6))){ + p2.dissapear(null); + p2.stop(); + p.dissapear(null); + p.stop(); + canRestart = true; + } + + //did corresponding player collect their gem + if(p.grabbedGem(level1Gems.get(0))) { + level1Gems.get(0).collected(null); } + }else if (secondStart) {//checking if button to play level 2 has been pressed/'hit' back.paint(g); second.paint(g); pause.paint(g); - p.restart("Phineas.png"); //if button has been pressed, draw the corresponding level and its components if(second.getclr(p.getX()+28,p.getY()+76) == true) { //phineas/ferb objects search for the specific color that they're allowed to step on - //System.out.println("yas"); p.setFlor(p.getY()); - //p.setFlor(p.getY()); } else { p.setFlor(695); } @@ -335,21 +421,17 @@ public void paint(Graphics g) { back.paint(g); third.paint(g); pause.paint(g); - p.restart("Phineas.png"); //if button has been pressed, draw the corresponding level and its components if(third.getclr(p.getX()+28,p.getY()+76) == true) { //phineas/ferb objects search for the specific color that they're allowed to step on - //System.out.println("yas"); p.setFlor(p.getY()); - //p.setFlor(p.getY()); } else { p.setFlor(695); } - tryagain = false; - } - + } + tryagain = false; } } @@ -437,12 +519,12 @@ public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub System.out.println(arg0.getKeyCode()); if (arg0.getKeyCode() == 39) { - p.moveLeft(); + p.moveRight(); p.changePicture("Phin.png"); } if (arg0.getKeyCode() == 37) { - p.moveRight(); - p.changePicture("Phineasflip.png");; + p.moveLeft(); + p.changePicture("Phinflip.png");; } if (arg0.getKeyCode() == 38) { p.jump(); @@ -464,6 +546,7 @@ public void keyPressed(KeyEvent arg0) { if(canRestart) { p.stop(); + p2.stop(); } } @@ -472,17 +555,8 @@ public void keyPressed(KeyEvent arg0) { public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub - p.stop(); p2.stop(); - /* - if (arg0.getKeyCode() == 39) { - p.stop(); - } - if (arg0.getKeyCode() == 37) { - p.stop(); - } - - */ + p.stop(); } diff --git a/Where's Perry3/src/Player.java b/Where's Perry3/src/Player.java index 728c488..6e1395a 100644 --- a/Where's Perry3/src/Player.java +++ b/Where's Perry3/src/Player.java @@ -19,7 +19,7 @@ public class Player{ private Image img; private AffineTransform tx; private int x,y; - private double vx, vy; + private double vx ,vy; private int floor= 700; private int Lwall= 0; private int Rwall= 700; @@ -29,7 +29,7 @@ public class Player{ public Player(String fileName) { img = getImage("/imgs/"+fileName); //load the image for Phineas - x = 0; + x = 30; y = 0; tx = AffineTransform.getTranslateInstance(x, y); @@ -56,15 +56,8 @@ private void init(double a, double b) { tx.scale(.05, .05); } - public void restart(String filename) { - dissapear(getImage("/imgs/"+filename)); - x = 0; - y = 0; - } - public void stop(){ - vx = 0; - + vx = 0; } public int getX() { @@ -142,7 +135,7 @@ public boolean touchLev() { //represent mouse as rectangle Rectangle p = new Rectangle(x,y,70,70); - // duck hit + //lever Rectangle l = new Rectangle (670,75,90,90); if(p.intersects(l)) { @@ -154,6 +147,10 @@ public boolean touchLev() { return false; //System.out.println("X location " + getX() + ", Y location " + getY()); + } + public void restart(String filename) { + dissapear(getImage("/imgs/"+filename)); + } //when steps in wrong lava public void dissapear(Image image) { diff --git a/Where's Perry3/src/imgs/Buttons.java b/Where's Perry3/src/imgs/Buttons.java index 37ddc6b..7857dab 100644 --- a/Where's Perry3/src/imgs/Buttons.java +++ b/Where's Perry3/src/imgs/Buttons.java @@ -74,10 +74,10 @@ private Image getImage(String path) { //helper method for pressing button on home page public boolean hit(MouseEvent mouse) { //represent the mouse as a rectangle object - Rectangle m = new Rectangle(mouse.getX(), mouse.getY(), 50, 50); + Rectangle m = new Rectangle(mouse.getX(), mouse.getY(), 30, 30); //level press box - Rectangle d = new Rectangle(x,y, 75, 75); + Rectangle d = new Rectangle(x+20,y+20, 50, 50); //check if the two boxes overlap if(m.intersects(d)) { diff --git a/Where's Perry3/src/imgs/Level.java b/Where's Perry3/src/imgs/Level.java index 3983d12..9fc33c9 100644 --- a/Where's Perry3/src/imgs/Level.java +++ b/Where's Perry3/src/imgs/Level.java @@ -56,7 +56,6 @@ public boolean getclr(int x, int y) { boolean check = false; Color c = new Color(color.getRGB(x, y)); - if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { //return true; check = true; @@ -68,24 +67,9 @@ public boolean getclr(int x, int y) { public int returnClr(int x, int y) { - boolean check = false; Color c = new Color(color.getRGB(x, y)); - - - if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { - //return true; - check = true; - //return true; - } - return (c.getRed() + c.getGreen() + c.getBlue()); - - /* - System.out.println("Red Color value = " + red); - System.out.println("Green Color value = " + green); - System.out.println("Blue Color value = " + blue); - */ - + return (c.getRed() + c.getGreen() + c.getBlue()); } diff --git a/Where's Perry3/src/imgs/level1.png b/Where's Perry3/src/imgs/level1.png index 47e5605229d581de1ed3eaf3734f9adf3fbb910c..e65309513fdf990ce36b755c97391d7c62ec6dcc 100644 GIT binary patch literal 21270 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 literal 21246 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 bBbH&ef*$aWY~6>0|2D3-TbH)R^Vt6a_RH!m diff --git a/Where's Perry3/src/imgs/level2.png b/Where's Perry3/src/imgs/level2.png index 0dd272e6f922b2dd383ab257946a27d9811025ae..e9971c623ecb3b011337635d99cf47494a931487 100644 GIT binary patch literal 25845 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 literal 26487 zcmeIb2Ut^Sw=cdELKi_1Q4xuXVg*zL8)RFFg5Us((k+7`QdAJ6CDC#05-WlQ6a)bw zj(~I$#{y$Rse(XIkPe{-5|aGa-T|ENeE)Lq|DJokbIx<;dFGjMXYaSHclGsqm*;m_ znX4$xP(lzyWh-@)4T8v!v40ih;K^5CxkKFH~IBOA|*=UZ(Ld3jW)Po1%! zy4~=N!VFu-Nf))$J#Car;%~>_E_0|#q%E;~pHzfsO@Eu?>=y8)s>)-|(_gD1+lA}+ zM|Jqa4T27KW#~PMS@Y3*mBXRDs^$XWe%GG&$>9^l{5!OPQu7EM)3Dz2FWU|Bd%wMG zca>;{HFf7)Bq^woQ942(k`y}T`s&d;(r&wNkp3Bda63UD92nGCZU#S(zNe+AK-O9s zpE&-R+HGePi3~k+DI6aKd(PQHBo=MC=&@-0E0VjW8tU#kyJ7C=WNPH6SLw*J&-sfW zmyS+VL!Vu>{<$`??>qvbaT_yg_V~OgSy_QxRirnzA(%Yt8XY+{kNV+n-!WxL%p;BJ zKR2M@v=v3NC&#(}?Ykmk0Gr1amA&K=hQq~mN9Tq|uMy8XA;Qo-h6&odP{eM@k+fZ6{VvQbSW49&1R6;x-2k z;Nfe-DMYp%i~K!SlHdu+?{xs;%~K(iQKbF*$^L^r9(>YJu8}!<<0z8O?B2a-*VJ*6w;`+K&Y7 zrqgXgi4~F^=v70l?8jp6#JQKoP;bBwDRQy;${LNPNC%lQ4jdRDsL#>ET4`n7fqf{W?-~wb`D;lw*$UTI@P83NsmnL zuR0uwFdoto8rv`dUBJ)}xAzo(lwBEHHB>YH5>U=}>Gb~am(5Pq3f z%x>TXTDzW+3v^(l6Xs1L%u~#^a&sjR_H#28Cd&oNJ`R>C8ifWU)Ssic>VVndWJX!gsNI{p;FJ={RWtr*3 zRP|MVz(|v~`=8#{nQKMoOiPeyt|w1g`SVkS^sFzSr2t{ z0h-liEL%?8O3s%g^8yIEDfD(ADbqM+lWlE`jWAW6Y{&u{@v5gyXXrBPB<1{E20y8-fs9jE$V89f+HE0Zs}+c+n&oM7PV+pP#9-qOXP0G@2chCD;_&K&LKvB7^{FS z%ly3f35}=>i&?ZiC5M6UeT*p>pMlaYp)_T3to?2YX)0{XF3Q1Q#sZ__IJ?EdspSjA zQ_(G~r((q=K%mD)8Eta6@bfSOt}5R3j<3L7`rKi@p#wReo6O@)Lkl{+d{!F`B}R+7zYWmZ(p*G0 z&2<7xP4b$}&F8j9BaB&$bjBl>WGyFr78h5PvqKw%i&@7l=cggZ>Z+F?Cw3A&WGrMJ zd;8*qRzu4`9q5d`@~}-o?T|WEYj;~#&I_D=pmk(O3JT=IbcAskmVJ3@shyQxJ>|uk z+G}?V8Q}_X{D1)+g;1G?U;gc<924v-0+;?6RJ`$IHPqO_(suPdx({lV**M=)`ZHqy zxO|}U(}bToAc$r!QI?e`-kLENjoD82a!YJzlZ(KQpc2f8ojgb}Hmhi+Op$$vxb&1HK@FU zghrb^{7Ga(C$g9COZh_xNg*$ljyznY&;jHqCKeTV`nZ#xYr+77$b72XUJ#;huUGgH z*OT+3W!2_wqH~@B(>k8mCudbp0x?vaS~bO5`l*M-%U6m|44B4Q0|yVukp@B83_3fm zn2U{jZpLiXZ4V>;#nQFQWb}NAV4z4Bk6cKQE-C%d-tVLeY*N7rBN?I)^p!9*C2|tB z-c6UmY(7D&>u=q=%}`&(00n+(v+?UvpvLiFWNUBh*$YQ@Z2bfbHfE&y;N<$AoVohb zvVCzuk*cus+nGPD^*UJlI?uhj<6pt1)zIgz`_y&Et)^i(Xoq5lX^L=^qt?0;4z4re z3rTT&@b_~;@YAMl`I`d~3`7&oGhRRT6{x=dv!wqLRAT&)p*lQhb`9*&4}J4DmLhq> zDc8K&WAKw*6xIdxQ;}cf{`RB>+?DL<8CS*_5q^@Yn(=o`)YVY$Eh%$E9<>gLWb?dQfh6=Af(njZ4=dMyP--~8F?Hs6o0_{os+pfJN8cdwUicsV``X%Ufl z4zWqp;ZK%&L-0!=la9=xuY2qka(jGebTf)fLKh7*xcpp?DyS?HQ(ohes`~i1kAZuM z)JI`87UN!L{d#PQ-k4K8dw+hbfsrpNkE^(K1K8HFU1i;)Ba@$qc6{r+@Qd~M8in9+ z5R1e+y?-BnREkYgWc2zFdHm78?^{Q7(2~i!XnMLCuK8WXh&{MZ*oM|B#mQLm@8(D6 zo(cY{<4nm3YC zKU~t$8J-$lCCY7IJFHATy*Mrxk+ZhulYYC{otsgw5B@_TX5F ziAD8Ff4op}L29ugTx8qn(UYI1 z%baLf`?5EzYigGl%}><-F|{rzAXJY=h%5O0(bOE}7^77t(uJrind&jkH1Bh)XC86geP47Wnd%2)ZyLPA|w|&L1eY7h2`f)PdI%NrjI$(WlIS2BJETS%lXG=MDqhCx8=K}u*;DMx|4HLw!~cL*Ll*-xYzI|$UvRZ?@&TW?kdV%)uZS4DI%7iSVqvMR9U=lWB(@s;4orGa{nI)u02q;3>YG+rab2Rq4 z5-@mI@#A4ENRj;OZxNOb5BG zXZRsoZIfp0uo0HG*Kv2g$lzHI)H<`%DqS-1H|!vb?X5%Dge022z9gy!dpuUjRtx^!k(HdvUo4qJCB13{7|K_CGqvXSA( zq1sx>s}UMsC(;hBPT_S`=C)IY70KTs3e?>O1T89yE_2y2y0fM4Z)SAKd}-n5^7$8b zp3GeqP)UnA4|;rN#W|HFrcy1-xj?LyHzWWbuApev4n#NU)3GB6+UBGO(#Pl|<*2#= z^_KT-EOnN6bix15p~oe>!mZmEs~90NAKqUV#qTSO`2ELf?z>Q@;)LwJ)9)9E=;LTN+2<76MOa$Ke&!>q+JHn(tk|FYu zGoY7^Y~d~i3T^bitX`HG#cj!zRU;fYq@qOLIP7nQG3RM8;4|_N zn?9}3OrZ3Hlowsda=&A1u)`n_S##?p2V54b5MWAS?ZTKigc2NT*Bnt%?D|4!1ChFD z^xVy1^5;ouI)V=iPlPSUR8dBOxkTBbz0n9KFewUrGeTTqdi@c6oc&Qhm@pG)XPpA#zk>W#$ zyJ_EmD~&`tynn=@8g^9TT1}*~|Coh)i<~1w@!Rqvi~0^2(N7Q-x-~r402JiZwl&ga;0>~@xW8@PPaVd=E3$-UN4}h_a43ryhc*6 zTu7!{W-lq7uni-{#h;{5yKMv6kz;$}r{92`&79iMf?PFz>TzFJW;FX~Hm7?;IgGkv zbzT7)fJD~T89X?vF&T9?*gKln>;n(BFXb=Gxs%ZlneST6$otg&(r>lEA=Fy3uVD&o zZWH1W!ZE_tKk4HFNQ)gU=TRU!gynQe@`iM=MXHf~Re?EXQT4=_l7oy^9b$P8U%wv= zrJW>9UkFc$MP|imk(k4PFcyNeF1)q3dObV_9ogC7;f9Tax@`xNfAG&Oe~imFvX$Mp zS0=Z7SBwrm5BM5hBpW30%0t0gt#WZLkF6zIJDn?hX;ABL^(;7yNNsNOz|9)Qh>+K_ zaa0G9=Tnh|#2o30z=GVyo*Tk*J^B<;jr0h>+t?22z?9pdLDbO;Vcya+BPl$Y4?1U; zC6WlXVlyQZKV;bSE{G@&FP;x-io|>v{T1g5*l{utHA6!kJq%0vT-=H83AS4f+pWH! zqDs#A#^-jjoCdVo8904lHP_LVF+V=FFX zcHnl6r-czlDXgAIO>B{6PL94awxtBvsnsmhhEBD9)n||w7-7}`NyV|936<`e#vG9x z43uRG&6Lc{F%^k(gfc9?s*qJj46@T97A-g_8jp$cZqYH8HJdJ0U!o;HHWX*2EY5D( zP3n)9jt{>P+t4KR$Y?Se2FF4``8c3rm(bw zTg^w;OCZ{-eKCz$B3TRUsFCFKGwF^+L8VJxd#Y|iB10Gx#tRHs#8q@U%UiOS&^Xu> zG@hk^tRX5m!YX-&9MjkWxf0yWfWXcHfqkaNGMPX)&?~!q-S|$hfKl~(j_9l`^Xr}V ztD|H>r76SwZSROhJEyH2Pi7dNhZIQQY|^C{$}z#?V#M+H8OaNluUSXa{QY|zD5vePlHjN!K=@vww zQ4to1hg`+F@k6nJ3}fFhMe+wu)R;i1?cRnW9xnQXxaqt5#>r{{+k5?Evf%~#nB-XL z848dnPBiV?>)ih7mCYK|fs7Fz=z+ee(PQO;w@h4uYcZEsBc&%Tq>~(T7&#W)OXGj~f`EK0?_~N9}r6pYvn~A%ums zru>cu`?cq%97;%iE}fpSLJ4~%aqJaEvS;Pl&!Y#ZH>JglJl_VQ63m;0RcExn#A5_d zAnMq6>WRp;-zo~~oLz}U)dPF`rNrkb%I2t^J8y?<-QelUOErMlLSPsqJ^%XOz(;+x zX%SubK?W@Hnh$R(khgd1c|6BJA^w(XUw>=( z)E3yyrq>X(#cU;e)o-u8AHRptXk_8_kTsh*s7csVWk93B<2Tu%xf&xrg=cVk5^7k^ zYh>7`@WB?7qqEL;0Yh3jImJV^p9OCP2Xoo}gaeY5#xE;1sltoM!=OdP+JSj=yIqC( zaEhzcs9LM?qQETm9p_gQJ!q5A3K#C@So}2mm9T8P7gQq(I$!x1Eh98;`IHlBL+&)d zT#)DQV=xlziJvmz24-jAt?CeWEf%u;>xF5>5QYI2YL2ZOY){5$E;{_?l7iapO+d}- z6OLEyRUp69zsGQ0j}NB7w658N?N3i%-&PNev4^+v^LgAHc%6aHc@8xI?uqXvQMZv}a}U*8F2s%w z+$u-+9T*9g*ec0w8?_okCmDX|%+5v~g)J;JMPlb#PG3wft0=4;RWpn`${@TSOCyF1BVF5O&jN2j*i4|al-OJX@8MRLEleES%{?0$;PTke0^7UQI?u*V&xz5&^ z(~*jHjvJU7JF+%CSAH%%q&nIB4UrlkdpLT`kk!W%iACG9De-BI2J}nLI{D*YIqiY3 zST(hUM$KAkT)JQ7?ZGi+Oqvfy=Z*fBUcO4vmx0e~$0)(M3HgJex3$A^jS-5vkY39r zW{g`eUt36-bj`XXA-$uWDtF#rJ#Lw9Q&D7k?zF$SCglB<=Dbm^0h>Ry#SCFXNqpN} z7m?Pr#yh@Yl`L9o_gwCPjLy0|Y0Xgb(Pswgz$w>U@Bu5EVcsYx-gdB1#|B*MONUo} za3ARN>fPR_iC$ykK`u^I3$Q28z@Plsc*o&C<1fcn(seJ@N-TYPMN7FMBa5|NhfT~v zs6&^zqO`M>qKVWbRGK%y4$^xOb7B#Z>b3eB>+hmN=j;Ppyo6ph)o57h?~MWn&_Ey4S9s0!4Qx6BZY|_8r7d9CU zs!7PXsB4lIcr!$+V8>();zn-D>|@7ZgOVmXDE5k<=cx&V1Aok*HtP}M0@lkiUATi4r7~q^i1w(! z5{ve&WPY?JQhBG8$oU1GDFGCe)}2`}>^qSwdTl+^g|>P`qrX_F<6@R4>Es0_*6zTk z1v6VbT&AbGHgu${N4fDHPyDGL-v@}pZ&d%W1ptZViXy8Otr$3ntnbSiiD1WXBBhv@dY{`;-J zmxqQ`-}?nwJ#29K1OtK&H=@9K65X#U2TMKSmUFVyY*2jDtnE zQ7{C3H=Ukp0l1u%SndEoJhSHG*c(nKIL2T1w72e;4Uw@)R>A@&S*EHu&02d`Jw^0u zxGIY>{HB2@ZVS+sXf#QL@>e8Ra=C;=FEwmd&J&_*_jI3CGpkG4J*_X>i`k-~0Afya z=Rsl)lruEJAEkXy<{taPxpPH_Yffv{ql5%XT!q1fY;``np#Ah&zEGQ4EqIfgtja_t zpAW@N;0#!koZa?1$C#k7oB;DXVLOl>EOBBSnzj8R5P28XqDhuS&) z7;fPvKujnX)80E5Joc1n|F;BEBHJfPU^5n(8bA5&W@{jarqdS*{gz(IfeV zwd@h~LR#~1JG=d_rb&l!r_z1OP>z9_c&(ViKUx?owxz8c`NXN;N}=`k{pBY95-PBM zx=-e{YTm$Kd=1BG!9o*}g^$@xPH|`paHEI&uX{k}{9?5*!;5&+y=-vK;Uwb-p=#5_70hqa;)S`^nvQwVrwj=@mH*GmEjgl0Df(6(g($G7ocmagJmz> zlSr3&DU^62KRk?1Vt$wACiI|iZfzbjKug{>dp#GvBnxmvMiIPSd}10XDLe z(Z#>WH}^kN!(I5vS#ocG^n=bR^&=CDCM4TUd)XrYN;&Rnpf`Z4IIoDcJWXEsc}?!8 zS^kxhu2;mOrp4<7gdSp59>+2qVtpk)wrd{6%F)5XGA~ygfi9R}gDk91@omS3IdEpt zvMsRabxx4X`!4F~UU{?-GTQBu6Dy{dUI#%Ix#wRAL-SDY=eT#l*)E&IHK@}uakjc= zx+5l6th4Iw4>NuGlFS3DTHV-)jeFaFlmel4Z^lRbW81vD$M4n-uyd1;XTwV2*jUB} zhNW}S`gG~iOK(+7R_CQk=BX*2o`Na`F0NUFEq~90ZI`gu!vVKwe8OvB zQq!*vJg(<(#C8;`2ByK#0klazQ84askbMC&*SP7TSJJ4z0OM@|8I83^B|o27=>mfu z`eXY|OyY10!#PC2+|ZVB?}^Si55lIt^m*cVnnZ2dQZhua1kt!7rM3!SjK?0nHr_cp z42%~Gocnok4DII=J#eY4(!a!yIn|(g(?RtH$@Y(XP-y)o*zNhLU+u;nF@;M2U)#c> zi+?`(KScU3K_tc$R9s#h-0FLd-L-=28z}0^KB&WXh-?gYIoZ@bh&f29B?VZ3JQf6C z$be&OJx#G{sFWpF0cP=-U@|iHXHa+;?6dR9z^2hR;0cDHY_&kfnHU+f0_tOI4O#`5 zKf!>2{A7ObQ490)380(^a|t6Rt^;qsnb!%L^d_>v6zX>TEvtALgaHG8N!>AQ`1kq% zWGUG2W<0@&y3GX{ihXUQ0l$v!Ee&Q*V=;SvZtM#Pdexz2+sAUMpcyeu-m&;V$oN;| zaIx9r+c(TbmB_S~%)F3QXL!Prgo!MPkhf-P_gZqA{kgvlpY;&vw%Ky~&k4!CfE|6T z_H#`nZ^+8kTyprCfgDA+{Uq8QP&6j76_duFfJ1X`#`xg?>D`H?@=R|3YHOW+BYaB# zP`3cf#0IR`uKo9!7chxMlA&A|(>zJIII5vRRI0P4fFg!8;looukH2Fs8Iaev+{bf` zsM|Qqb(|(b$c74^Jd$SX@pat>ELUXM`3Zl+a+v`o%{)EkkAFpq2SXe0I!9(aOG%%|4g2V#STgw&(UZM29I;%?QRuyx9+;U z#ieBLk5ZDM00c^G$>#r~WObwP62r~Rsy+g|-nOwqLAN11-s@tvy*?Il_p<9p1v3z; z8NG%E(ZFRG^br>YbUg~DJo_e~A2Gxw{;+;8#zQ`m>dcuRTTU0!<_~=i&*u-x(7I`1 zl9#VS1a?H;$sds=A+k5dlm84Au%E*!u6@1Vp0Fj?ul!Osl3?aL#2CV|=fCgF{B(oF zJTvv(4k>dn=E1tS^d-MMj+I+TzjUqAKsxo)WIA|d9S&dZBP0GHS#Acoas~3Nvodh7 zC&vyp6#%^oztwI$Zysc;ZYU_@? zCl-Bp>_4io?rw4mM24^V2wvHTKcT%mNb%2_VqK%nD%1K?zMxH8$LvVGkLcCei7a-* znTB>=2)}3GdRf);(kVNhJ3FY)Mac?rG9;9!L14%3{Cr1J*Cy^cA3a!FI9#7FvEg;> zTEYSGoMnGXA)?@5YCN7r{@CVT$A_vwS95w>LXz+-0!6i*o{~ikQ_<8vA5S8ZrcQyk zrrv!vo4W%5YqJOGsn}akt6uQ+WX=?{X^-;U*=YT9V!6yKFZ1L~tY}oet7C6NN|z4o zvG?hPuN|etB6sD(Ye)(;5F*gC0?f?bl|H`cGsid4I18lpOYw?B!AAf zAu$#=8Yl=vT zY`f(2dhmKsm};8g0cU;iW0s`v)|`-$L%ShU6cPGaOI5Oi7a_V{$d>8-!5(awm>{}W zJS%ymkm462%GX&XUi+t{P*q3rvG6Omr$qMM_gl^+(hcWbCF>OKT0@;Vu>Cr3txnW* zt|K{LN0u3E>plD;U1G>%o4;j;>#f{=b$dcZX^O3Q_AR3?MF()F4+&04O44$AG5ZNuF%t65}^XS3o zHpq(F*%ygyAw_MhQYUx!HvnzKSdg_58+N(OhQr(e$R7(o3w=5VQm&YFQpzFonV8BH zCIG_s$c#LdRe-*yqY>yDBrYsj{x^V7djd{7md~wjchnB8rX@j+*T#7^-+C$2_={1X zmha?afU(zyycJcnOH~2T(3Jq$Hs`T3Dl^vzupMg>;&L{0MLUqao_cf}*XuTdHFO4K z3{#LYOAQd{EI@CE*U>y#KK}h4lEf|pA{C+lN(Nf(R$A}H*;)iCs~pIFk_Q}3$#H|u zt{6r0C6GpLYbh1m*1C4x4<794QT6(5`bZ>AwDfHBP%OJCi(xQwHsGwz&@GDHJU_`* zG=qMkGGjfj;Lj#=Hy5Z6aPn4|JabeCWY=yuS!@m#vmlIm^SG2qpJk> zc}~H3)s7aBX7SATHm&XwnIqW)7py9xvEXmlwcj^FVpYLU2SKA9!OiCj5~>1t6u7Iv z_`m{8P*Kx7?;z4G4H##M^8R{zm@W0sEU&rvY+kK3KKroQ*xPy*LOyIMwzYwfev=4r zp(}&l8%K4C5@urHc#P$H^|Y^ty=&HXmGrC5lvov+jC4Yz|M-lxNX8)SwG*}u6*FGowYO)vrA)UO;`Xy<-SWW-?-((K5exxyRglkxBnL`f1x~+H8hf-s#4Ha zNioY4$3}OzeH&o+{8jkMRX8_*w^r~fVT7Scc@TWn-J7EEspSuQ<*eWl;}-9|o$6og zVcoSt*J}3QO_MZFg>{lYFBVc>ow#h3zAOdhi|5fTbNef&?_Lzs-hb@m;#!0HcjkkA z0r8qyDmjZf!T?4eC&~<#SO_Z%dfiW`5O|rM3sS#s!9INAsKuXga#2k1%95c6U7EiB zEv>TNr&E=3qd5g|)}3{d5^)AAFVcAG3 zX$J){zQ!c~*`@ass!Oz7K0BS(x!A|OQms2I_xJBPUVc2Nc;#dqWnE1m=Gf1@tkV`o zus?g>rQWzD>8Vf=t{e<<^uEMu>s#cQnxTz1aytQhDPyzGys_|@0q<5858_wpq za>^eh{HNO159HdRQn?|Ds4F*MRz^=P7CpKbSlVL@%nuZ9RD>UHS_79;(MSD ztF0*6pu3DMT8t@rPP<~9h?N5;ahSC;CYSCg&(mUhyL77GcEARGVeeX>NQ1I1yb8Y9 z8lqVJNrujqej*R3K9I*rhMQkcQ_*U6(u(#vNr!8>#xV+Zs{|Vo3LJSE{?{V|G=2HH zd7Ruc8P=e8LBh>lLKz9-PFGy93y00|| zH6|u}G2AzGTxG6Go4F}@I&m>w6}V|>!F_*1?Fioq2hr>wA$tuZZXBfL<~3qF%RdV>6j zuE?+K9PC708C@c4q$=}7{Ovu9>bus13*b^;yErZs?&igT_GkMQ*NDrPJ_!Zg;m4za zpB@@f@ji9-ClNi6;ky53`g*tRFvO#zYl8`8VFK+`KMV`|a{&w8D@61-%{T>M zS}*#P&$ioBD!x&jNt*|r(_MR<`X3z~9pC2(30n;U4Z4@UEz(uUiwC;c{Aw+1e(bh>XIl z%r?_GFX1?QAF;oS&R#C)tJMh#Okg)&=~pEu9+jZiFek5mfK(#37tP)UH^uTF$>!)V z{gCcct~ntS?sFbs1$;GGxNDUPOsS5Za6Z|W6M^z&poH!@J>(qc7G9cv?sVe%9JC%_ zhS*Ct{z`;V0FYGnVVZ0-1UjnP~FUWE>>mY+skB zphg8of4IeJDI7CoP4o?}Q?l`2uWO!bRsXV^+({!Ay}9Ufcu$OwFbVCQF+^fG;|2YW zoZhC*bhKImmspM+W^~DKLRR~qj2!t3|MhMj3hvY!d<({KxAYycRuzDpl^i{VCySVa z;YKW$@Vn})utum4wRQ(pyV^*^69RD$)dB`sKzCZyUa*vekp}fezC65S`8^H>qb?y* z@t1buFFnb5_9hgt05Es<+vOg=0VERMIXzWc9K|LwCmblhxw0!+0o#4i&RbjOlH#XO zh2}HT0mcGH;kJ{JPEjH!r#?CA3Q1wuV(K%?8M6%mltC$pk!9jOa54zUFUTJMUoQ&* zG6DNIcJtQ~1;#>H!&SMZ(yZ?8o#f7NVo}m!&l>wlIA10&xxNLklh|etNfk3E3C?Z` zy32V_L%{|7NS%I-G}_>{4U}!%dSx=MXLo^yiAA2Zy`90|3HygbUGy$)5>Znzu37kS z3+=D%*sZ?3>Rj=2>m~lbh_uycO}VdlfT>f0y=$OKS>DdB_(m#NlUD4uC!2E1BNfRz z*Ynl!gQv+dv4iiLhaWiKK~87Rr#Z~~yu%4Z>dsFhkZ7QqE8#%pO%qnIB2KmZTQANk zq$|WV=T;|<#%#Gj5qqS{|Hp@R7b!(pzjn_iE+w`Or=D0ucaLBhj$r|?i^@`F*7zr8 zMlYg41$%r=tYYSS2#Ju4b(QA)L@^u0Sx^qO2(${&Zqje<6MZ+MnL0{w z@{a}d$F8zex4W=ES>{pC*n>n;#Z;=$Gs<}&WFB32ZzV)=syhaN-{M`uPJeZRV}hVS z)-8ynkPe1^rN5J@t0H;pmjQ?-W$Z#h%_T-~>y0(3#hJ*nlZ4x|2t+Sz1={w-_8<}` zLJu?gk)6OT2iks^WPQL_dc*~ZH>aa_K%Q+2%Ryyc`^_1GJ8VaQFAN%1@jlMz4^bxH z(WJLdB7d5XZTsl|+VWb$3e>rpA#b!MQhH0?71B2KI#Y(s1-zak7$s+uvT`4mg#OAmejx#Z<>29Me|rz&&HNF$%xs+1 zJ}7hg@oULK&$g_fg30K$r|mF0#*hH~HekQ-(r4cH!ANCjN+eZ-9g13$dY=V!?GTg^ zTM0>KpeD=S`S=3Lso4>!%0sX^oiTu_;;$q(F9to9YnFiq(UU+6F8>!U?*mZfaF>~} z1h=!%!v#8_wnz3isY>Id1IzpBFJDI0ZimuV3yER1nzU|aJ%&Wsq)WdsRI?5;9Bx>p ztwiz`#+hMiA}xe*eh|}m1`)+a!q>_&O)EYxi2^9we7eyK&%r6!dzVLRVOdUYgQ6e3 zk)1~qkY|N!qBdU#d>x57Kk&o-4P;Z-*h!=1un6V%1#Bm?G}Epr=-_Viv_q4rTDOrB z606DSrfvtcnmQU)zcN?}1oZNj(W01>zM)Wj zZ20|PmMv1XU;D#D03^B*sp@&|*0Y)SS)Uc8#Y4tBS$D3hestBW03~wplh{2*0420U zJWf@1EF_imt(>u5T0iv7=5z?({aEp}!HRGo+~4RTU?UldfQ^hYJ%jT5c5WWgcI_W} zdfrD!i8jmY3NTJuTpvbc8Gu1MU>{0L7&Ld4+_etv^;N*SfJ~2xa0$!slTaj8*4lNF z#_NS5$sdx=p@7@hSX=^lV^|t0t4*%ytU>~4JWuf53X)!Gj<%$LG0Tn*i0)PEgyNSv zj{deNl_}!{eK5|#jq_x0w>EpieQ-gBld7f0qD38ycw4qWY}FZFfL(fu_1qzmg*)au zO#oE?bd|TW3-&fqYWe=#zI~aP7`9*LG-XHVI5B;*QGdyde43M4Uwh54Y;@1>FMlr? z2q+M4Jj<7qu?LTytt{nT8hOK8>n*XC3`A^G3zG*>e$!`Qx+mVg7!TFuO6=Ha#RY

L4os)njaf6LlbnGv0PF~|nh+EVW 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 TJyl2GpRJp%Hl=QGJN177k^+zd From b54ae8f3e8d6fc3b72c420f328524276db514daf Mon Sep 17 00:00:00 2001 From: palinakarzhenka Date: Wed, 31 May 2023 12:07:12 -0700 Subject: [PATCH 2/5] fixed phineas movementsm in level 1, started door and perry classes --- Where's Perry3/src/Frame.java | 118 +++++++++++++++++---------- Where's Perry3/src/Player.java | 40 +++++++-- Where's Perry3/src/imgs/Buttons.java | 2 +- Where's Perry3/src/imgs/Door.java | 82 +++++++++++++++++++ Where's Perry3/src/imgs/Perry.java | 66 +++++++++++++++ Where's Perry3/src/imgs/level1.png | Bin 21270 -> 21041 bytes Where's Perry3/src/imgs/level2.png | Bin 25845 -> 23834 bytes 7 files changed, 258 insertions(+), 50 deletions(-) create mode 100644 Where's Perry3/src/imgs/Door.java create mode 100644 Where's Perry3/src/imgs/Perry.java diff --git a/Where's Perry3/src/Frame.java b/Where's Perry3/src/Frame.java index 405003e..0435f4a 100644 --- a/Where's Perry3/src/Frame.java +++ b/Where's Perry3/src/Frame.java @@ -75,6 +75,9 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL ArrayList level2Gems = new ArrayList(); ArrayList level3Gems = new ArrayList(); + //doors in each level + + //private long starttime; @@ -121,7 +124,6 @@ public void paint(Graphics g) { if (firstStart) {//checking if button to play level 1 has been pressed/'hit' //if button has been pressed, draw the corresponding level and its components - back.paint(g); first.paint(g); pause.paint(g); @@ -145,59 +147,71 @@ public void paint(Graphics g) { p2.paint(g); //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p.getX() + 28,p.getY()+76)){ + if(first.getclr(p.getX() + 25,p.getY()+64) || first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30) ){ p.setFlor(p.getY()); + /*if(first.getclr(p.getX()+15, p.getY()+58)) { + p.setLwall(p.getX()+15); + } + if(first.getclr(p.getX()+50, p.getY()+58)) { + p.setRwall(p.getX()+50); + }*/ } else { p.setFlor(795); } - if(first.getclr(p.getX() + 5,p.getY()+76)) { - p.setLwall(p.getX()); - + if(first.getclr(p.getX(), p.getY())){ + p.setCeil(p.getY()); + }else { + p.setCeil(10); + } + /*if(first.getclr(p.getX() + 5,p.getY()+76)) { + p.setLwall(p.getX()+5); }else { p.setLwall(10); } g.drawRect(p.getX(), p.getY()+76, 10, 10); - if(first.getclr(p.getX()+ 45,p.getY()+76)) { - p.setRwall(p.getX()); + if(first.getclr(p.getX()+ 40,p.getY()+76)) { + p.setRwall(p.getX()+40); }else { p.setRwall(695); } g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); - + */ //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p2.getX()+28,p2.getY()+76)) { + if(first.getclr(p2.getX() + 25,p2.getY()+64) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } - if(first.getclr(p2.getX() + 5,p2.getY()+76) == true) { + if(first.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); + } + /*if(first.getclr(p2.getX() + 5,p2.getY()+76) == true) { p2.setLwall(p2.getX()+5); }else { p2.setLwall(10); } g.drawRect(p2.getX(), p2.getY()+76, 10, 10); - if(first.getclr(p2.getX()+ 45,p2.getY()+76) == true) { - p2.setRwall(p2.getX()+45); + if(first.getclr(p2.getX()+ 30,p2.getY()+76) == true) { + p2.setRwall(p2.getX()+30); }else { - p2.setRwall(795); + p2.setRwall(695); } g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); + */ //checking if phineas stepped into green if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ p.dissapear(null); - p.stop(); p2.dissapear(null); - p2.stop(); canRestart = true; } //checking if ferb stepped into orange if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ p2.dissapear(null); - p2.stop(); p.dissapear(null);; - p.stop(); canRestart = true; } @@ -208,6 +222,7 @@ public void paint(Graphics g) { } if (secondStart) {//checking if button to play level 2 has been pressed/'hit' + back.paint(g); second.paint(g); pause.paint(g); @@ -215,23 +230,35 @@ public void paint(Graphics g) { p2.paint(g); //if button has been pressed, draw the corresponding level and its components - if(second.getclr(p.getX() + 28,p.getY()+76) == true && second.getclr(p.getX() + 28,p.getY()+66) == false) { + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(second.getclr(p.getX() + 25,p.getY()+64) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ p.setFlor(p.getY()); + /*if(first.getclr(p.getX()+15, p.getY()+58)) { + p.setLwall(p.getX()+15); + } + if(first.getclr(p.getX()+50, p.getY()+58)) { + p.setRwall(p.getX()+50); + }*/ } else { - p.setFlor(795); + p.setFlor(795); } - if(second.getclr(p.getX()+5,p.getY()+76) == true) { - p.setLwall(p.getX()); - + if(second.getclr(p.getX(), p.getY())){ + p.setCeil(p.getY()); + }else { + p.setCeil(10); + } + + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(second.getclr(p2.getX() + 25,p2.getY()+64) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { + p2.setFlor(p2.getY()); } else { - p.setLwall(10); + p2.setFlor(795); + } + if(second.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); } - if(second.getclr(p.getX()+ 45,p.getY()+76) == true) { - p.setRwall(p.getX()); - - } else { - p.setRwall(790); - } } if (thirdStart) {//checking if button to play level 3 has been pressed/'hit' @@ -329,9 +356,9 @@ public void paint(Graphics g) { back.paint(g); first.paint(g); pause.paint(g); - //p.restart("Phin.png"); - //p2.restart("Ferb.png"); + p.restart("Phin.png", 30, 30); p.paint(g); + p2.restart("Ferb.png", 30, 30); p2.paint(g); //lavas level1.get(0).paint(g);//orange @@ -430,8 +457,7 @@ public void paint(Graphics g) { } else { p.setFlor(695); } - } - tryagain = false; + } } } @@ -480,12 +506,18 @@ public void mousePressed(MouseEvent arg0) { if(one.hit(arg0)) { firstStart = true; + secondStart = false; + thirdStart = false; } if(two.hit(arg0)) { secondStart = true; + firstStart = false; + thirdStart = false; } if(three.hit(arg0)) { thirdStart = true; + firstStart = false; + secondStart = false; } if(pause.hit(arg0)) { canRestart = true; @@ -519,12 +551,12 @@ public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub System.out.println(arg0.getKeyCode()); if (arg0.getKeyCode() == 39) { - p.moveRight(); p.changePicture("Phin.png"); + p.moveLeft(); } if (arg0.getKeyCode() == 37) { - p.moveLeft(); - p.changePicture("Phinflip.png");; + p.changePicture("Phinflip.png"); + p.moveRight(); } if (arg0.getKeyCode() == 38) { p.jump(); @@ -533,12 +565,12 @@ public void keyPressed(KeyEvent arg0) { if (arg0.getKeyCode() == 68) { - p2.moveLeft(); p2.changePicture("Ferb.png"); + p2.moveLeft(); } if (arg0.getKeyCode() == 65) { - p2.moveRight(); p2.changePicture("Ferbflip.png"); + p2.moveRight(); } if (arg0.getKeyCode() == 87) { p2.jump(); @@ -554,10 +586,12 @@ public void keyPressed(KeyEvent arg0) { @Override public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub - - p2.stop(); - p.stop(); - + if (arg0.getKeyCode() == 39 || arg0.getKeyCode() == 37) { + p.stop(); + } + if (arg0.getKeyCode() == 68 || arg0.getKeyCode() == 65) { + p2.stop(); + } } diff --git a/Where's Perry3/src/Player.java b/Where's Perry3/src/Player.java index 6e1395a..b25be64 100644 --- a/Where's Perry3/src/Player.java +++ b/Where's Perry3/src/Player.java @@ -12,6 +12,7 @@ import javax.imageio.ImageIO; +import imgs.Door; import imgs.Gems; import imgs.Lava; @@ -24,13 +25,13 @@ public class Player{ private int Lwall= 0; private int Rwall= 700; private int ceil= 10; - private double gravity = 0.1; + private double gravity = 0.15; public Player(String fileName) { img = getImage("/imgs/"+fileName); //load the image for Phineas x = 30; - y = 0; + y = 30; tx = AffineTransform.getTranslateInstance(x, y); } @@ -106,7 +107,7 @@ public void setCeil(int val) { public void update() { tx = AffineTransform.getTranslateInstance(x, y); - tx.scale(0.75,0.75); + tx.scale(0.65,0.65); x += vx; y += vy; vy += gravity; @@ -120,6 +121,11 @@ public void update() { vy+= gravity; } + if(y <= ceil) { + vy = 6; + + } + if(x <= Lwall) { x = Lwall; } @@ -127,7 +133,7 @@ public void update() { x = Rwall; } - touchLev(); + //touchLev(); } @@ -148,13 +154,17 @@ public boolean touchLev() { //System.out.println("X location " + getX() + ", Y location " + getY()); } - public void restart(String filename) { + public void restart(String filename, int initx, int inity) { dissapear(getImage("/imgs/"+filename)); + x = initx; + y = inity; + update(); } //when steps in wrong lava public void dissapear(Image image) { img = image; + vx = 0; } public double getHeight() { @@ -169,7 +179,7 @@ public boolean crossedLava(Lava l) { Rectangle lava = new Rectangle(l.getX()+60, l.getY()+105, 80, 20); //level press box - Rectangle player = new Rectangle(x+15, y, 20, 80); + Rectangle player = new Rectangle(x+15, y, 20, 63); if(player.intersects(lava)) { crossed = true; @@ -186,7 +196,7 @@ public boolean grabbedGem(Gems gem) { Rectangle gems = new Rectangle(gem.getX(), gem.getY(), 35, 35); //level press box - Rectangle player = new Rectangle(x+15, y, 20, 80); + Rectangle player = new Rectangle(x+15, y, 20, 63); if(player.intersects(gems)) { didGrab = true; @@ -195,6 +205,22 @@ public boolean grabbedGem(Gems gem) { return didGrab; } + //helper method for detecting when both players are at the door + public boolean touchDoor(Door door) { + //represent the door as a rectangle object + Rectangle m = new Rectangle(door.getX(), door.getY(), 30, 30); + + //player rectangle + Rectangle p = new Rectangle(x+15,y, 20, 63); + + //check if the two boxes overlap + if(m.intersects(p)) { + return true; + } + + return false; + } + private Image getImage(String path) { Image tempImage = null; try { diff --git a/Where's Perry3/src/imgs/Buttons.java b/Where's Perry3/src/imgs/Buttons.java index 7857dab..98e5da7 100644 --- a/Where's Perry3/src/imgs/Buttons.java +++ b/Where's Perry3/src/imgs/Buttons.java @@ -77,7 +77,7 @@ public boolean hit(MouseEvent mouse) { Rectangle m = new Rectangle(mouse.getX(), mouse.getY(), 30, 30); //level press box - Rectangle d = new Rectangle(x+20,y+20, 50, 50); + Rectangle d = new Rectangle(x+20,y+20, 70, 70); //check if the two boxes overlap if(m.intersects(d)) { diff --git a/Where's Perry3/src/imgs/Door.java b/Where's Perry3/src/imgs/Door.java new file mode 100644 index 0000000..1786ad1 --- /dev/null +++ b/Where's Perry3/src/imgs/Door.java @@ -0,0 +1,82 @@ +package imgs; +import java.awt.image.BufferedImage; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.net.URL; + +import javax.imageio.ImageIO; + +public class Door { + private int x,y; //location attributes + private Image img2; + private AffineTransform tx; + + //default constructor + public Door() { + img2 = getImage("/imgs/door.png"); //load the image + tx = AffineTransform.getTranslateInstance(x,y); + //initialize the location of the image, use your variables + x = 0; + y = 0; + } + + public void changePicture(String newFileName) { + img2 = getImage(newFileName); + init(x,y); + } + + public void paint(Graphics g) { + //these are the 2 lines of code needed draw an image on the screen + Graphics2D g2 = (Graphics2D) g; + update(); + g2.drawImage(img2, tx, null); + + } + + //update the picture variable location + private void update() { + tx.setToTranslation(x, y); + tx.scale(1,1); + } + + private void init(double a, double b) { + tx.setToTranslation(a, b); + tx.scale(1,1); + } + + private Image getImage(String path) { + Image tempImage = null; + try { + URL imageURL = Level.class.getResource(path); + tempImage = Toolkit.getDefaultToolkit().getImage(imageURL); + } catch (Exception e) { + e.printStackTrace(); + } + return tempImage; + } + + public int getX() { + return x; + } + + public void setX(int x) { + this.x = x; + } + + public int getY() { + return y; + } + + public void setY(int y) { + this.y = y; + } + +} diff --git a/Where's Perry3/src/imgs/Perry.java b/Where's Perry3/src/imgs/Perry.java new file mode 100644 index 0000000..6f1e4c1 --- /dev/null +++ b/Where's Perry3/src/imgs/Perry.java @@ -0,0 +1,66 @@ +package imgs; + +import java.awt.image.BufferedImage; +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.net.URL; + +public class Perry{ + + private Image img; + private AffineTransform tx; + private int x,y; + + + public Perry() { + img = getImage("/imgs/perry.png"); //load the image for Perry + x = 30;//change for each level + y = 30;//change for each level + tx = AffineTransform.getTranslateInstance(x, y); + + } + + public void changePicture(String fileName) { + //img = getImage("/imgs/Phinflip.png"); + img = getImage("/imgs/"+fileName); + } + + public void paint(Graphics g) { + //these are the 2 lines of code needed draw an image on the screen + Graphics2D g2 = (Graphics2D) g; + g2.drawImage(img, tx, null); + update(); + + } + + private void init(double a, double b) { + tx.setToTranslation(a,b); + tx.scale(.05, .05); + } + public void update() { + tx = AffineTransform.getTranslateInstance(x, y); + tx.scale(0.65,0.65); + + } + + private Image getImage(String path) { + Image tempImage = null; + try { + URL imageURL = Perry.class.getResource(path); + tempImage = Toolkit.getDefaultToolkit().getImage(imageURL); + } catch (Exception e) { + e.printStackTrace(); + } + return tempImage; + } + + +} \ No newline at end of file diff --git a/Where's Perry3/src/imgs/level1.png b/Where's Perry3/src/imgs/level1.png index e65309513fdf990ce36b755c97391d7c62ec6dcc..e42c0f3f395bb83acd4a0941bc84ab0bb671d8c5 100644 GIT binary patch literal 21041 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 EKRwSqp#T5? literal 21270 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 diff --git a/Where's Perry3/src/imgs/level2.png b/Where's Perry3/src/imgs/level2.png index e9971c623ecb3b011337635d99cf47494a931487..b2cdb901a51f1d5386caf88eb0b3ddee2059ad25 100644 GIT binary patch literal 23834 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 literal 25845 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 From 927426a43a7fd825c8e0a1172b8552f45c3e1be0 Mon Sep 17 00:00:00 2001 From: palinakarzhenka Date: Thu, 1 Jun 2023 11:45:34 -0700 Subject: [PATCH 3/5] added level 2 lavas --- Where's Perry3/src/Frame.java | 425 +++++++++++++++++------------ Where's Perry3/src/Player.java | 15 +- Where's Perry3/src/imgs/Gems.java | 6 +- Where's Perry3/src/imgs/Level.java | 14 +- Where's Perry3/src/imgs/lev3.png | Bin 2928 -> 0 bytes Where's Perry3/src/imgs/level1.png | Bin 21041 -> 21225 bytes Where's Perry3/src/imgs/level3.png | Bin 1184 -> 0 bytes 7 files changed, 273 insertions(+), 187 deletions(-) delete mode 100644 Where's Perry3/src/imgs/lev3.png delete mode 100644 Where's Perry3/src/imgs/level3.png diff --git a/Where's Perry3/src/Frame.java b/Where's Perry3/src/Frame.java index 0435f4a..4a513fc 100644 --- a/Where's Perry3/src/Frame.java +++ b/Where's Perry3/src/Frame.java @@ -83,17 +83,18 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL public void paint(Graphics g) { super.paintComponent(g); + //level1 LAVAS - level1.add(new Lava("phineasLavat.gif", x1+90 , y1+50 )); - level1.add(new Lava("phineasLavat.gif", x1+350 , y1+280 )); - level1.add(new Lava("ferbLavat.gif", x1+500 , y1+50 )); - level1.add(new Lava("ferbLavat.gif", x1+200 , y1+280 )); - level1.add(new Lava("phineasLavat.gif", x1+80 , y1+640 )); - level1.add(new Lava("phineasLavat.gif", x1+125 , y1+640 )); - level1.add(new Lava("phineasLavat.gif", x1+155 , y1+640 )); - level1.add(new Lava("ferbLavat.gif", x1+340 , y1+640 )); - level1.add(new Lava("ferbLavat.gif", x1+375 , y1+640 )); - level1.add(new Lava("ferbLavat.gif", x1+415 , y1+640 )); + level1.add(new Lava("phineasLavat.gif", x1+90 , y1+51 )); + level1.add(new Lava("phineasLavat.gif", x1+350 , y1+281 )); + level1.add(new Lava("ferbLavat.gif", x1+500 , y1+51 )); + level1.add(new Lava("ferbLavat.gif", x1+200 , y1+281 )); + level1.add(new Lava("phineasLavat.gif", x1+80 , y1+655 )); + level1.add(new Lava("phineasLavat.gif", x1+125 , y1+655 )); + level1.add(new Lava("phineasLavat.gif", x1+155 , y1+655 )); + level1.add(new Lava("ferbLavat.gif", x1+340 , y1+655 )); + level1.add(new Lava("ferbLavat.gif", x1+375 , y1+655 )); + level1.add(new Lava("ferbLavat.gif", x1+415 , y1+655 )); //level1 GEMS level1Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); @@ -104,17 +105,24 @@ public void paint(Graphics g) { //level1Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); //level2 LAVAS - //level2.add(new Lava("phineasLavat.gif", x1+ , y1+ )); - //level2.add(new Lava("ferbLavat.gif", x1+ , y1+ )); + level2.add(new Lava("phineasLavat.gif", x1+200, y1+195)); + level2.add(new Lava("ferbLavat.gif", x1+350, y1+195)); + level2.add(new Lava("phineasLavat.gif", x1+460, y1+652)); + level2.add(new Lava("phineasLavat.gif", x1+500, y1+652)); + level2.add(new Lava("ferbLavat.gif", x1+590, y1+652)); + level2.add(new Lava("ferbLavat.gif", x1+630, y1+652)); //level2 GEMS - + //level2Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); + //level2Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); //level3 LAVAS //level3.add(new Lava("phineasLavat.gif", x1+ , y1+ )); //level3.add(new Lava("ferbLavat.gif", x1+ , y1+ )); //level3 GEMS + //level3Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); + //level3Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); //setting up the homepage of the game homepage.paint(g); @@ -123,11 +131,15 @@ public void paint(Graphics g) { three.paint(g); if (firstStart) {//checking if button to play level 1 has been pressed/'hit' + + home = false;//homepage is erased + //if button has been pressed, draw the corresponding level and its components back.paint(g); first.paint(g); pause.paint(g); - //lavas + + //lavas are drawn level1.get(0).paint(g);//orange level1.get(1).paint(g);//orange level1.get(2).paint(g);//green @@ -138,7 +150,8 @@ public void paint(Graphics g) { level1.get(7).paint(g);//green level1.get(8).paint(g);//green level1.get(9).paint(g);//green - //gems + + //gems are drawn level1Gems.get(0).paint(g);//gear level1Gems.get(1).paint(g);//hammer @@ -147,22 +160,41 @@ public void paint(Graphics g) { p2.paint(g); //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p.getX() + 25,p.getY()+64) || first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30) ){ + if(first.getclr(p.getX() + 25,p.getY()+67) && first.getclr(p.getX()+25, p.getY()+62)==false /*|| first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30)*/ ){ p.setFlor(p.getY()); - /*if(first.getclr(p.getX()+15, p.getY()+58)) { - p.setLwall(p.getX()+15); - } - if(first.getclr(p.getX()+50, p.getY()+58)) { - p.setRwall(p.getX()+50); - }*/ } else { p.setFlor(795); } - if(first.getclr(p.getX(), p.getY())){ + if(first.getclr(p.getX()+15, p.getY()+60)) { + p.setLwall(p.getX()+15); + } + if(first.getclr(p.getX()+50, p.getY()+60)) { + p.setRwall(p.getX()+50); + } + if(first.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); }else { p.setCeil(10); } + + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(first.getclr(p2.getX() + 25,p2.getY()+66) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { + p2.setFlor(p2.getY()); + } else { + p2.setFlor(795); + } + if(first.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); + } + if(first.getclr(p2.getX()+15, p2.getY()+58)) { + p2.setLwall(p.getX()+15); + } + if(first.getclr(p2.getX()+50, p2.getY()+58)) { + p2.setRwall(p.getX()+50); + } + /*if(first.getclr(p.getX() + 5,p.getY()+76)) { p.setLwall(p.getX()+5); }else { @@ -176,17 +208,7 @@ public void paint(Graphics g) { } g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); */ - //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p2.getX() + 25,p2.getY()+64) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { - p2.setFlor(p2.getY()); - } else { - p2.setFlor(795); - } - if(first.getclr(p2.getX(), p2.getY())){ - p2.setCeil(p2.getY()); - }else { - p2.setCeil(10); - } + /*if(first.getclr(p2.getX() + 5,p2.getY()+76) == true) { p2.setLwall(p2.getX()+5); @@ -202,36 +224,33 @@ public void paint(Graphics g) { g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); */ - //checking if phineas stepped into green - if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ - p.dissapear(null); - p2.dissapear(null); - canRestart = true; - } - //checking if ferb stepped into orange - if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ - p2.dissapear(null); - p.dissapear(null);; - canRestart = true; - } - - //did corresponding player collect their gem - if(p.grabbedGem(level1Gems.get(0))) { - level1Gems.get(0).collected(null); - } } if (secondStart) {//checking if button to play level 2 has been pressed/'hit' + home = false;//homepage is erased + back.paint(g); second.paint(g); pause.paint(g); + + //characters are drawn p.paint(g); p2.paint(g); //if button has been pressed, draw the corresponding level and its components + //lavas are drawn + level2.get(0).paint(g); + level2.get(1).paint(g); + level2.get(2).paint(g); + level2.get(3).paint(g); + level2.get(4).paint(g); + level2.get(5).paint(g); + + //gems are drawn + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p.getX() + 25,p.getY()+64) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ + if(second.getclr(p.getX() + 25,p.getY()+66) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ p.setFlor(p.getY()); /*if(first.getclr(p.getX()+15, p.getY()+58)) { p.setLwall(p.getX()+15); @@ -249,7 +268,7 @@ public void paint(Graphics g) { } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p2.getX() + 25,p2.getY()+64) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { + if(second.getclr(p2.getX() + 25,p2.getY()+66) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); @@ -260,107 +279,63 @@ public void paint(Graphics g) { p2.setCeil(10); } + } if (thirdStart) {//checking if button to play level 3 has been pressed/'hit' + + home = false;//homepage is erased + back.paint(g); third.paint(g); pause.paint(g); + + //characters are drawn p.paint(g); p2.paint(g); lev1.paint(g); //if button has been pressed, draw the corresponding level and its components - - /*if(third.getclr(p.getX() + 30,p.getY()+70) && third.returnClr(p.getX() + 30,p.getY()+60) == 0) { - - }*/ + //lavas are drawn - if(third.getclr(p.getX()+28,p.getY()+76) == true) { - //phineas/ferb objects search for the specific color that they're allowed to step on - - - p.setFlor(p.getY()); - } else { - p.setFlor(695); - } - if(third.getclr(p.getX()+20,p.getY()+60) == true) { - p.setLwall(p.getX()); - - } else { - p.setLwall(10); - } - g.drawRect(p.getX() + 20, p.getY()+60, 10, 10); + //gems are drawn - if(third.getclr(p.getX()+ 35,p.getY()+60) == true) { - p.setRwall(p.getX()); - - } else { - p.setRwall(695); - } - g.drawRect(p.getX()+ 35, p.getY()+60, 10, 10); - - /* - if(third.returnClr(p.getX() + 50,p.getY()) != 0) { - p.setCeil(p.getX()); - + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(third.getclr(p.getX() + 25,p.getY()+66) || third.getclr(p.getX()+15,p.getY()+30) || third.getclr(p.getX()+20, p.getY()+30) ){ + p.setFlor(p.getY()); } else { + p.setFlor(795); + } + if(third.getclr(p.getX()+15, p.getY())){ + p.setCeil(p.getY()); + }else { p.setCeil(10); } - /* - - - if(third.getclr(p2.getX() + 30,p2.getY()+70) == true && third.getclr(p2.getX() + 30,p2.getY()+60) == false) { + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(third.getclr(p2.getX() + 25,p2.getY()+66) || third.getclr(p2.getX()+15,p2.getY()+30) || third.getclr(p2.getX()+20, p2.getY()+30) ) { p2.setFlor(p2.getY()); } else { - p2.setFlor(700); + p2.setFlor(795); } - if(third.getclr(p2.getX() + 10,p2.getY()+60) == true) { - p2.setLwall(p2.getX()); - - } else { - p2.setLwall(10); + if(third.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); } - if(third.getclr(p2.getX()+ 50,p2.getY()+60) == true) { - p2.setRwall(p2.getX()); - } else { - p2.setRwall(700); - } - */ - } - if (canRestart) {//checking if pause button was clicked - restartMenu.paint(g); - menu.paint(g); - restart.paint(g); - //pause menu components are drawn (menu button and restart the level button) - } - if(home) {//player has hit the menu button on pause menu - homepage.paint(g); - one.paint(g); - two.paint(g); - three.paint(g); - /*p.restart("Phin.png"); - p2.restart("Ferb.png");*/ - home = false; - //user is returned to homepage, i.e. homepage is redrawn } + if(tryagain) {//user chose to restart same level they were on before - - canRestart = false;//restart pop up disappears - + if (firstStart) {//checking if button to play level 1 has been pressed/'hit' back.paint(g); first.paint(g); pause.paint(g); - p.restart("Phin.png", 30, 30); - p.paint(g); - p2.restart("Ferb.png", 30, 30); - p2.paint(g); - //lavas + + //lavas are reset level1.get(0).paint(g);//orange level1.get(1).paint(g);//orange level1.get(2).paint(g);//green @@ -371,94 +346,182 @@ public void paint(Graphics g) { level1.get(7).paint(g);//green level1.get(8).paint(g);//green level1.get(9).paint(g);//green - //Gems reset - level1Gems.get(0).restart("gearGEM2t.gif"); + + //Gems are reset level1Gems.get(0).paint(g); + level1Gems.get(1).paint(g); //if button has been pressed, draw the corresponding level and its components + //characters are redrawn + p.paint(g); + p2.paint(g); + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p.getX() + 28,p.getY()+76)) { + if(first.getclr(p.getX() + 25,p.getY()+66) /*|| first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30)*/ ){ p.setFlor(p.getY()); } else { p.setFlor(795); } - if(first.getclr(p.getX() + 5,p.getY()+76)) { - p.setLwall(p.getX()); - + if(first.getclr(p.getX()+15, p.getY()+58)) { + p.stop(); + } + if(first.getclr(p.getX()+50, p.getY()+58)) { + p.stop(); } - g.drawRect(p.getX(), p.getY()+76, 10, 10); - if(first.getclr(p.getX()+ 45,p.getY()+76)) { - p.setRwall(p.getX()); + if(first.getclr(p.getX()+15, p.getY())){ + p.setCeil(p.getY()); + }else { + p.setCeil(10); } - g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p2.getX()+28,p2.getY()+76)) { + if(first.getclr(p2.getX() + 25,p2.getY()+66) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { p2.setFlor(p2.getY()); } else { - p2.setFlor(695); - } - if(first.getclr(p2.getX() + 5,p2.getY()+76)) { - p2.setLwall(p2.getX()+5); - + p2.setFlor(795); } - g.drawRect(p2.getX(), p2.getY()+76, 10, 10); - if(first.getclr(p2.getX()+ 45,p2.getY()+76)) { - p2.setRwall(p2.getX()+45); + if(first.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); } - g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); - - //checking if phineas stepped into green - if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ - p.dissapear(null); - p.stop(); - p2.dissapear(null); + if(first.getclr(p2.getX()+15, p2.getY()+58)) { p2.stop(); - canRestart = true; } - //checking if ferb stepped into orange - if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p.crossedLava(level1.get(6))){ - p2.dissapear(null); + if(first.getclr(p2.getX()+50, p2.getY()+58)) { p2.stop(); - p.dissapear(null); - p.stop(); - canRestart = true; } - //did corresponding player collect their gem - if(p.grabbedGem(level1Gems.get(0))) { - level1Gems.get(0).collected(null); - } - + tryagain = false; }else if (secondStart) {//checking if button to play level 2 has been pressed/'hit' back.paint(g); second.paint(g); pause.paint(g); //if button has been pressed, draw the corresponding level and its components - if(second.getclr(p.getX()+28,p.getY()+76) == true) { - //phineas/ferb objects search for the specific color that they're allowed to step on - + //lavas are reset + + //gems are reset + + + //characters are drawn + p.paint(g); + p2.paint(g); + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(second.getclr(p.getX() + 25,p.getY()+66) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ p.setFlor(p.getY()); + /*if(first.getclr(p.getX()+15, p.getY()+58)) { + p.setLwall(p.getX()+15); + } + if(first.getclr(p.getX()+50, p.getY()+58)) { + p.setRwall(p.getX()+50); + }*/ } else { - p.setFlor(695); + p.setFlor(795); } + if(second.getclr(p.getX(), p.getY())){ + p.setCeil(p.getY()); + }else { + p.setCeil(10); + } + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(second.getclr(p2.getX() + 25,p2.getY()+66) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { + p2.setFlor(p2.getY()); + } else { + p2.setFlor(795); + } + if(second.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); + } + + + tryagain = false; }else if (thirdStart) {//checking if button to play level 3 has been pressed/'hit' back.paint(g); third.paint(g); pause.paint(g); //if button has been pressed, draw the corresponding level and its components - if(third.getclr(p.getX()+28,p.getY()+76) == true) { - //phineas/ferb objects search for the specific color that they're allowed to step on - + //lavas are reset + + //gems are reset + + //characters are drawn + p.paint(g); + p2.paint(g); + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds + if(third.getclr(p.getX() + 25,p.getY()+66) || third.getclr(p.getX()+15,p.getY()+30) || third.getclr(p.getX()+20, p.getY()+30) ){ p.setFlor(p.getY()); } else { - p.setFlor(695); + p.setFlor(795); } - } - } + if(third.getclr(p.getX()+15, p.getY())){ + p.setCeil(p.getY()); + }else { + p.setCeil(10); + } + + //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds + if(third.getclr(p2.getX() + 25,p2.getY()+66) || third.getclr(p2.getX()+15,p2.getY()+30) || third.getclr(p2.getX()+20, p2.getY()+30) ) { + p2.setFlor(p2.getY()); + } else { + p2.setFlor(795); + } + if(third.getclr(p2.getX(), p2.getY())){ + p2.setCeil(p2.getY()); + }else { + p2.setCeil(10); + } + + tryagain = false; + } + } + + //checking if phineas stepped into green in level 1 + if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; + } + //checking if ferb stepped into orange in level 1 + if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did corresponding player collect their gem in level 1 + if(p.grabbedGem(level1Gems.get(0))) {//phineas collected + level1Gems.get(0).restart(""); + } + if(p2.grabbedGem(level1Gems.get(1))) {//ferb collected + level1Gems.get(1).restart(""); + } + + if (canRestart) {//checking if pause button was clicked + restartMenu.paint(g); + menu.paint(g); + restart.paint(g); + //pause menu components are drawn (menu button and restart the level button) + } + + if(home) {//player has hit the menu button on pause menu + canRestart = false;//erasing restart menu + + homepage.paint(g); + one.paint(g); + two.paint(g); + three.paint(g); + + //user is returned to homepage, i.e. homepage is redrawn + } + + } public static void main(String[] arg) { @@ -505,16 +568,19 @@ public void mouseExited(MouseEvent arig0) { public void mousePressed(MouseEvent arg0) { if(one.hit(arg0)) { + canRestart = false; firstStart = true; secondStart = false; thirdStart = false; } if(two.hit(arg0)) { + canRestart = false; secondStart = true; firstStart = false; thirdStart = false; } if(three.hit(arg0)) { + canRestart = false; thirdStart = true; firstStart = false; secondStart = false; @@ -524,12 +590,25 @@ public void mousePressed(MouseEvent arg0) { } if(menu.hit(arg0)) { home = true; + + //restarting players + p.restart("Phin.png", 30, 30); + p2.restart("Ferb.png", 30, 30); + //restarting all gems + level1Gems.get(0).restart("gearGEM2t.gif"); + level1Gems.get(1).restart("hammerGEM1t.gif"); + firstStart = false; secondStart = false; thirdStart = false; - canRestart = false; } if(restart.hit(arg0)) { + //restarting players + p.restart("Phin.png", 30, 30); + p2.restart("Ferb.png", 30, 30); + //restarting all gems + level1Gems.get(0).restart("gearGEM2t.gif"); + level1Gems.get(1).restart("hammerGEM1t.gif"); tryagain = true; canRestart = false; } diff --git a/Where's Perry3/src/Player.java b/Where's Perry3/src/Player.java index b25be64..3f99783 100644 --- a/Where's Perry3/src/Player.java +++ b/Where's Perry3/src/Player.java @@ -22,8 +22,8 @@ public class Player{ private int x,y; private double vx ,vy; private int floor= 700; - private int Lwall= 0; - private int Rwall= 700; + private int Lwall= 15; + private int Rwall= 750; private int ceil= 10; private double gravity = 0.15; @@ -158,6 +158,8 @@ public void restart(String filename, int initx, int inity) { dissapear(getImage("/imgs/"+filename)); x = initx; y = inity; + Lwall = 15; + Rwall = 750; update(); } @@ -175,10 +177,10 @@ public double getHeight() { public boolean crossedLava(Lava l) { boolean crossed = false; - //represent the mouse as a rectangle object + //represent the lava as a rectangle object Rectangle lava = new Rectangle(l.getX()+60, l.getY()+105, 80, 20); - //level press box + //player rectangle box Rectangle player = new Rectangle(x+15, y, 20, 63); if(player.intersects(lava)) { @@ -192,10 +194,11 @@ public boolean crossedLava(Lava l) { //helper method to detect if player picked up correct gem public boolean grabbedGem(Gems gem) { boolean didGrab = false; - //represent the mouse as a rectangle object + + //represent the gem as a rectangle object Rectangle gems = new Rectangle(gem.getX(), gem.getY(), 35, 35); - //level press box + //player rectangle box Rectangle player = new Rectangle(x+15, y, 20, 63); if(player.intersects(gems)) { diff --git a/Where's Perry3/src/imgs/Gems.java b/Where's Perry3/src/imgs/Gems.java index 532ef5c..eff1699 100644 --- a/Where's Perry3/src/imgs/Gems.java +++ b/Where's Perry3/src/imgs/Gems.java @@ -44,14 +44,10 @@ public void paint(Graphics g) { g.drawRect(x, y, 35, 35); } + //when gems get collected public void restart(String filename) { img = getImage(filename); } - - //when gem gets collected - public void collected(Image img) { - this.img = img; - } public int getX() { return x; diff --git a/Where's Perry3/src/imgs/Level.java b/Where's Perry3/src/imgs/Level.java index 9fc33c9..9e5eceb 100644 --- a/Where's Perry3/src/imgs/Level.java +++ b/Where's Perry3/src/imgs/Level.java @@ -54,13 +54,21 @@ public void paint(Graphics g) { public boolean getclr(int x, int y) { boolean check = false; - Color c = new Color(color.getRGB(x, y)); + //Color c = new Color(color.getRGB(x, y)); - if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { + int clr = color.getRGB(x, y); + int red = (clr & 0x00ff0000) >> 16; + int green = (clr & 0x0000ff00) >> 8; + int blue = clr & 0x000000ff; + if(red == 48 && green == 31 && blue == 23) { + check = true; + } + + /*if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { //return true; check = true; //return true; - } + }*/ return check; } diff --git a/Where's Perry3/src/imgs/lev3.png b/Where's Perry3/src/imgs/lev3.png deleted file mode 100644 index bc7811f826804106d32050f53b8e0a788f79ca98..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2928 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 F{|n)Qm&yPD literal 21041 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 EKRwSqp#T5? diff --git a/Where's Perry3/src/imgs/level3.png b/Where's Perry3/src/imgs/level3.png deleted file mode 100644 index 7d32ac9cc9abe74e475632971316a696dc46f047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1184 zcmeAS@N?(olHy`uVBq!ia0vp^DIm!lvI6;x#X;^) z4C~IxyaaL-l0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP=YPV z+ueoXKL{?^yL>VO1M?D37srr_TW{x{Exc_Y;AWo@)ZCZlwALb2ZS4w9*-)1W%^AHe zlaIVlvS;{hv!}vBt+D+sE2CH0_0u;GGwfl1z_7epdjFQ+jcm(vk{&LpW!`A*p@SWoQj8ACL}tYFi=dHA&`3Qw40jC#I>e--aHprSvw_i zp5wP)`r1x8!QOpWIDYPmJ6FFYf7Z-P2WN>Wsy&_|HB;Hj$w_>+>UZzp)M=?kuLMOE z-7j8@a`TFMQMf=vcmHPdA61sWr+t^$6?P`!lwYKjQQC~Wbk3KaY?F`N{`=9ogzsrz zVv_QG_T$frgI-@LJ#ha5XY88Px4oZw{rJoxW?wk4Kzx$I;}73`R=(!AIA!To&h5Vs z=f=*~D1Cb=l~?oSm8fPHFP+*`r`~q3P5hwx(S5g&ka2FzTzxgytc9T_sZUEh6qa5% zzsPH0_k_I~CuHBgajoG^4qPwC$}_nkB8S`jz{E4JpT5cd?pk(g(xgLbySq6q?z(v` zV~f6*hepoQ{7uWRJ`GwW^7W#UYjL=dRcfZMeEMxAzg3ER&%O-4IE^u7$(p@Wugucn zZ}**lN-~9ErfJF+kHm?L0(x_|w0W`}*jWDY>TYm?Ap1inwLr}TZlWoK1lA{#*Vu!9w-1;KQ!#CndS*&wb{Ysw0;S7G#innC< zAK&7{;HMeP&G=)rk6I?cB0W*RPRyp%9 surOf|DshbfB2PCf|Dw#)ypqI{%=|nC! Date: Tue, 6 Jun 2023 10:16:24 -0700 Subject: [PATCH 4/5] final commit of project --- Where's Perry3/src/Frame.java | 635 ++++++++++++++++++++++------- Where's Perry3/src/Player.java | 30 +- Where's Perry3/src/imgs/Door.java | 10 +- Where's Perry3/src/imgs/Gems.java | 2 +- Where's Perry3/src/imgs/Lava.java | 2 +- Where's Perry3/src/imgs/Level.java | 14 +- Where's Perry3/src/imgs/Perry.java | 10 +- Where's Perry3/src/imgs/level1.png | Bin 21225 -> 19591 bytes Where's Perry3/src/imgs/level2.png | Bin 23834 -> 23251 bytes 9 files changed, 533 insertions(+), 170 deletions(-) diff --git a/Where's Perry3/src/Frame.java b/Where's Perry3/src/Frame.java index 4a513fc..09e8052 100644 --- a/Where's Perry3/src/Frame.java +++ b/Where's Perry3/src/Frame.java @@ -1,5 +1,6 @@ import java.awt.Color; import java.awt.Dimension; +import java.awt.Font; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.ActionEvent; @@ -20,9 +21,11 @@ import imgs.Background; import imgs.Level; import imgs.Buttons; +import imgs.Door; import imgs.Gems; import imgs.Lava; import imgs.Levers; +import imgs.Perry; import imgs.RestartMenu; @@ -75,7 +78,20 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL ArrayList level2Gems = new ArrayList(); ArrayList level3Gems = new ArrayList(); + //counter for gems collected (each type and each level) + //doors in each level + Door d1 = new Door(-9,20); + boolean touchd1 = false; + Door d2 = new Door(-9, 554); + boolean touchd2 = false; + Door d3 = new Door(-9, 530); + boolean touchd3 = false; + + //perry in each level + Perry perry1 = new Perry(40,100); + Perry perry2 = new Perry(40,620); + Perry perry3 = new Perry(40,615); //private long starttime; @@ -99,30 +115,44 @@ public void paint(Graphics g) { //level1 GEMS level1Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); level1Gems.add(new Gems("hammerGEM1t.gif", x1+580, y1+120)); - //level1Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); - //level1Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); - //level1Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); - //level1Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); + level1Gems.add(new Gems("gearGEM2t.gif", x1+430, y1+350)); + level1Gems.add(new Gems("hammerGEM1t.gif", x1+280, y1+350)); + level1Gems.add(new Gems("gearGEM2t.gif", x1+200, y1+724)); + level1Gems.add(new Gems("hammerGEM1t.gif", x1+460, y1+724)); //level2 LAVAS - level2.add(new Lava("phineasLavat.gif", x1+200, y1+195)); - level2.add(new Lava("ferbLavat.gif", x1+350, y1+195)); + level2.add(new Lava("ferbLavat.gif", x1+630, y1+445)); level2.add(new Lava("phineasLavat.gif", x1+460, y1+652)); level2.add(new Lava("phineasLavat.gif", x1+500, y1+652)); level2.add(new Lava("ferbLavat.gif", x1+590, y1+652)); level2.add(new Lava("ferbLavat.gif", x1+630, y1+652)); - + level2.add(new Lava("phineasLavat.gif", x1+140, y1+652)); + //level2 GEMS - //level2Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); - //level2Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); + level2Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+100)); + level2Gems.add(new Gems("hammerGEM1t.gif", x1+370, y1+100)); + level2Gems.add(new Gems("gearGEM2t.gif", x1+280, y1+264)); + level2Gems.add(new Gems("hammerGEM1t.gif", x1+430, y1+264)); + level2Gems.add(new Gems("gearGEM2t.gif", x1+550, y1+400)); + level2Gems.add(new Gems("hammerGEM1t.gif", x1+715, y1+510)); //level3 LAVAS - //level3.add(new Lava("phineasLavat.gif", x1+ , y1+ )); - //level3.add(new Lava("ferbLavat.gif", x1+ , y1+ )); - + level3.add(new Lava("phineasLavat.gif", x1+100 , y1+210 )); + level3.add(new Lava("ferbLavat.gif", x1+440 , y1+130)); + level3.add(new Lava("phineasLavat.gif", x1+370 , y1+260 )); + level3.add(new Lava("ferbLavat.gif", x1+130 , y1+652 )); + level3.add(new Lava("ferbLavat.gif", x1+170 , y1+652 )); + level3.add(new Lava("phineasLavat.gif", x1+260 , y1+652 )); + level3.add(new Lava("phineasLavat.gif", x1+300 , y1+652 )); + level3.add(new Lava("ferbLavat.gif", x1+390 , y1+652 )); + level3.add(new Lava("ferbLavat.gif", x1+430 , y1+652 )); + level3.add(new Lava("phineasLavat.gif", x1+620 , y1+652 )); + //level3 GEMS - //level3Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); - //level3Gems.add(new Gems("hammerGEM1t.gif", x1+170, y1+120)); + level3Gems.add(new Gems("gearGEM2t.gif", x1+185, y1+275)); + level3Gems.add(new Gems("hammerGEM1t.gif", x1+525, y1+200)); + level3Gems.add(new Gems("gearGEM2t.gif", x1+455, y1+335)); + level3Gems.add(new Gems("hammerGEM1t.gif", x1+290, y1+630)); //setting up the homepage of the game homepage.paint(g); @@ -139,6 +169,15 @@ public void paint(Graphics g) { first.paint(g); pause.paint(g); + //perry is drawn + perry1.paint(g); + //door is drawn over perry + d1.paint(g); + + //set players at bottom left screen + p.paint(g); + p2.paint(g); + //lavas are drawn level1.get(0).paint(g);//orange level1.get(1).paint(g);//orange @@ -154,10 +193,10 @@ public void paint(Graphics g) { //gems are drawn level1Gems.get(0).paint(g);//gear level1Gems.get(1).paint(g);//hammer - - //set players at bottom left screen - p.paint(g); - p2.paint(g); + level1Gems.get(2).paint(g);//gear + level1Gems.get(3).paint(g);//hammer + level1Gems.get(4).paint(g);//gear + level1Gems.get(5).paint(g);//hammer //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(first.getclr(p.getX() + 25,p.getY()+67) && first.getclr(p.getX()+25, p.getY()+62)==false /*|| first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30)*/ ){ @@ -166,10 +205,10 @@ public void paint(Graphics g) { p.setFlor(795); } if(first.getclr(p.getX()+15, p.getY()+60)) { - p.setLwall(p.getX()+15); + p.stop(); } if(first.getclr(p.getX()+50, p.getY()+60)) { - p.setRwall(p.getX()+50); + p.stop(); } if(first.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); @@ -178,53 +217,44 @@ public void paint(Graphics g) { } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p2.getX() + 25,p2.getY()+66) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { + if(first.getclr(p2.getX() + 25,p2.getY()+67) && first.getclr(p2.getX()+25, p2.getY()+62)==false) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } - if(first.getclr(p2.getX(), p2.getY())){ + if(first.getclr(p2.getX()+15, p2.getY()+60)) { + p2.stop(); + } + if(first.getclr(p2.getX()+50, p2.getY()+60)) { + p2.stop(); + } + if(first.getclr(p2.getX()+15, p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } - if(first.getclr(p2.getX()+15, p2.getY()+58)) { - p2.setLwall(p.getX()+15); - } - if(first.getclr(p2.getX()+50, p2.getY()+58)) { - p2.setRwall(p.getX()+50); - } - /*if(first.getclr(p.getX() + 5,p.getY()+76)) { - p.setLwall(p.getX()+5); - }else { - p.setLwall(10); - } - g.drawRect(p.getX(), p.getY()+76, 10, 10); - if(first.getclr(p.getX()+ 40,p.getY()+76)) { - p.setRwall(p.getX()+40); - }else { - p.setRwall(695); - } - g.drawRect(p.getX()+ 10, p.getY()+76, 10, 10); - */ - /*if(first.getclr(p2.getX() + 5,p2.getY()+76) == true) { - p2.setLwall(p2.getX()+5); - - }else { - p2.setLwall(10); + //checking if phineas stepped into green in level 1 + if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; } - g.drawRect(p2.getX(), p2.getY()+76, 10, 10); - if(first.getclr(p2.getX()+ 30,p2.getY()+76) == true) { - p2.setRwall(p2.getX()+30); - }else { - p2.setRwall(695); + //checking if ferb stepped into orange in level 1 + if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; } - g.drawRect(p2.getX()+ 10, p2.getY()+76, 10, 10); - */ - + //did players reach the door together + if (p.touchDoor(d1) && p2.touchDoor(d1)) { + d1.changePicture(""); + touchd1 = true; + canRestart = true; + } + } if (secondStart) {//checking if button to play level 2 has been pressed/'hit' @@ -233,52 +263,88 @@ public void paint(Graphics g) { back.paint(g); second.paint(g); pause.paint(g); + + //perry is drawn + perry2.paint(g); + //door is drawn over perry + d2.paint(g); + //characters are drawn p.paint(g); p2.paint(g); - //if button has been pressed, draw the corresponding level and its components - - //lavas are drawn - level2.get(0).paint(g); - level2.get(1).paint(g); - level2.get(2).paint(g); - level2.get(3).paint(g); - level2.get(4).paint(g); - level2.get(5).paint(g); + //lavas are drawn + level2.get(0).paint(g);//green + level2.get(1).paint(g);//orange + level2.get(2).paint(g);//orange + level2.get(3).paint(g);//green + level2.get(4).paint(g);//green + level2.get(5).paint(g);//orange + //gems are drawn + level2Gems.get(0).paint(g);//gear + level2Gems.get(1).paint(g);//hammer + level2Gems.get(2).paint(g);//gear + level2Gems.get(3).paint(g);//hammer + level2Gems.get(4).paint(g);//gear + level2Gems.get(5).paint(g);//hammer //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p.getX() + 25,p.getY()+66) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ + if(second.getclr(p.getX() + 25,p.getY()+67) && second.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); - /*if(first.getclr(p.getX()+15, p.getY()+58)) { - p.setLwall(p.getX()+15); - } - if(first.getclr(p.getX()+50, p.getY()+58)) { - p.setRwall(p.getX()+50); - }*/ } else { p.setFlor(795); } - if(second.getclr(p.getX(), p.getY())){ + if(second.getclr(p.getX()+15, p.getY()+60)) { + p.stop(); + } + if(second.getclr(p.getX()+50, p.getY()+60)) { + p.stop(); + } + if(second.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); }else { p.setCeil(10); - } + } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p2.getX() + 25,p2.getY()+66) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { + if(second.getclr(p2.getX() + 25,p2.getY()+67) && second.getclr(p2.getX()+25, p2.getY()+62)==false) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } - if(second.getclr(p2.getX(), p2.getY())){ + if(second.getclr(p2.getX()+15, p2.getY()+60)) { + p2.stop(); + } + if(second.getclr(p2.getX()+50, p2.getY()+60)) { + p2.stop(); + } + if(second.getclr(p2.getX()+15, p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } + //checking if phineas stepped into green in level 2 + if(p.crossedLava(level2.get(0)) || p.crossedLava(level2.get(3)) || p.crossedLava(level2.get(4))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; + } + //checking if ferb stepped into orange in level 2 + if(p2.crossedLava(level2.get(1)) || p2.crossedLava(level2.get(2)) || p2.crossedLava(level2.get(5))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did players reach the door together + if(p.touchDoor(d2) && p2.touchDoor(d2)) { + d2.changePicture(""); + touchd2 = true; + canRestart = true; + } } if (thirdStart) {//checking if button to play level 3 has been pressed/'hit' @@ -289,24 +355,49 @@ public void paint(Graphics g) { third.paint(g); pause.paint(g); + //perry is drawn + perry3.paint(g); + //door is drawn over perry + d3.paint(g); + //characters are drawn p.paint(g); p2.paint(g); + + //levers are drawn lev1.paint(g); - //if button has been pressed, draw the corresponding level and its components //lavas are drawn - - + level3.get(0).paint(g);//orange + level3.get(1).paint(g);//green + level3.get(2).paint(g);//orange + level3.get(3).paint(g);//green + level3.get(4).paint(g);//green + level3.get(5).paint(g);//orange + level3.get(6).paint(g);//orange + level3.get(7).paint(g);//green + level3.get(8).paint(g);//green + level3.get(9).paint(g);//orange + //gems are drawn - - + level3Gems.get(0).paint(g);//gear + level3Gems.get(1).paint(g);//hammer + level3Gems.get(2).paint(g);//gear + level3Gems.get(3).paint(g);//hammer + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(third.getclr(p.getX() + 25,p.getY()+66) || third.getclr(p.getX()+15,p.getY()+30) || third.getclr(p.getX()+20, p.getY()+30) ){ + if(third.getclr(p.getX() + 25,p.getY()+67) && third.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); } else { p.setFlor(795); } + if(third.getclr(p.getX()+15, p.getY()+60)) { + p.stop(); + } + if(third.getclr(p.getX()+50, p.getY()+60)) { + p.stop(); + } if(third.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); }else { @@ -314,18 +405,44 @@ public void paint(Graphics g) { } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(third.getclr(p2.getX() + 25,p2.getY()+66) || third.getclr(p2.getX()+15,p2.getY()+30) || third.getclr(p2.getX()+20, p2.getY()+30) ) { + if(third.getclr(p2.getX() + 25,p2.getY()+67) && third.getclr(p2.getX()+25, p2.getY()+62)==false) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } - if(third.getclr(p2.getX(), p2.getY())){ + if(third.getclr(p2.getX()+15, p2.getY()+60)) { + p2.stop(); + } + if(third.getclr(p2.getX()+50, p2.getY()+60)) { + p2.stop(); + } + if(third.getclr(p2.getX()+15, p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } + //checking if phineas stepped into green in level 3 + if(p.crossedLava(level3.get(1)) || p.crossedLava(level3.get(3)) || p.crossedLava(level3.get(4)) || p.crossedLava(level3.get(7)) || p.crossedLava(level3.get(8))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; + } + + //checking if ferb stepped into orange in level 3 + if(p2.crossedLava(level3.get(0)) || p2.crossedLava(level3.get(2)) || p2.crossedLava(level3.get(5)) || p.crossedLava(level3.get(6)) || p.crossedLava(level3.get(9))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did players reach the door together + if(p.touchDoor(d3) && p2.touchDoor(d3)) { + d3.changePicture(""); + touchd3 = true; + canRestart = true; + } } if(tryagain) {//user chose to restart same level they were on before @@ -335,6 +452,15 @@ public void paint(Graphics g) { first.paint(g); pause.paint(g); + //perry is drawn + perry1.paint(g); + //door is drawn over perry + d1.paint(g); + + //characters are redrawn + p.paint(g); + p2.paint(g); + //lavas are reset level1.get(0).paint(g);//orange level1.get(1).paint(g);//orange @@ -348,24 +474,24 @@ public void paint(Graphics g) { level1.get(9).paint(g);//green //Gems are reset - level1Gems.get(0).paint(g); - level1Gems.get(1).paint(g); - //if button has been pressed, draw the corresponding level and its components + level1Gems.get(0).paint(g);//gear + level1Gems.get(1).paint(g);//hammer + level1Gems.get(2).paint(g);//gear + level1Gems.get(3).paint(g);//hammer + level1Gems.get(4).paint(g);//gear + level1Gems.get(5).paint(g);//hammer - //characters are redrawn - p.paint(g); - p2.paint(g); //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p.getX() + 25,p.getY()+66) /*|| first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30)*/ ){ + if(first.getclr(p.getX() + 25,p.getY()+67) && first.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); } else { p.setFlor(795); } - if(first.getclr(p.getX()+15, p.getY()+58)) { + if(first.getclr(p.getX()+15, p.getY()+60)) { p.stop(); } - if(first.getclr(p.getX()+50, p.getY()+58)) { + if(first.getclr(p.getX()+50, p.getY()+60)) { p.stop(); } if(first.getclr(p.getX()+15, p.getY())){ @@ -375,69 +501,132 @@ public void paint(Graphics g) { } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(first.getclr(p2.getX() + 25,p2.getY()+66) || first.getclr(p2.getX()+15,p2.getY()+30) || first.getclr(p2.getX()+20, p2.getY()+30) ) { + if(first.getclr(p2.getX() + 25,p2.getY()+67) && first.getclr(p2.getX()+25, p2.getY()+62)==false ) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } + if(first.getclr(p2.getX()+15, p2.getY()+58)) { + p2.stop(); + } + if(first.getclr(p2.getX()+50, p2.getY()+58)) { + p2.stop(); + } if(first.getclr(p2.getX(), p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } - if(first.getclr(p2.getX()+15, p2.getY()+58)) { - p2.stop(); + + + //checking if phineas stepped into green in level 1 + if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; } - if(first.getclr(p2.getX()+50, p2.getY()+58)) { - p2.stop(); + //checking if ferb stepped into orange in level 1 + if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did players reach the door together level 1 + if (p.touchDoor(d1) && p2.touchDoor(d1)) { + d1.changePicture(""); + touchd1=true; + canRestart = true; } tryagain = false; + }else if (secondStart) {//checking if button to play level 2 has been pressed/'hit' back.paint(g); second.paint(g); pause.paint(g); //if button has been pressed, draw the corresponding level and its components - - //lavas are reset - - //gems are reset - + + //perry is drawn + perry2.paint(g); + //door is drawn over perry + d2.paint(g); //characters are drawn p.paint(g); p2.paint(g); - + + //lavas are dresetrawn + level2.get(0).paint(g);//green + level2.get(1).paint(g);//orange + level2.get(2).paint(g);//orange + level2.get(3).paint(g);//green + level2.get(4).paint(g);//green + level2.get(5).paint(g);//orange + + //gems are reset + level2Gems.get(0).paint(g);//gear + level2Gems.get(1).paint(g);//hammer + level2Gems.get(2).paint(g);//gear + level2Gems.get(3).paint(g);//hammer + level2Gems.get(4).paint(g);//gear + level2Gems.get(5).paint(g);//hammer + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p.getX() + 25,p.getY()+66) || second.getclr(p.getX()+15,p.getY()+30) || second.getclr(p.getX()+20, p.getY()+30) ){ + if(second.getclr(p.getX() + 25,p.getY()+67) && second.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); - /*if(first.getclr(p.getX()+15, p.getY()+58)) { - p.setLwall(p.getX()+15); - } - if(first.getclr(p.getX()+50, p.getY()+58)) { - p.setRwall(p.getX()+50); - }*/ } else { p.setFlor(795); } - if(second.getclr(p.getX(), p.getY())){ + if(second.getclr(p.getX()+15, p.getY()+60)) { + p.stop(); + } + if(second.getclr(p.getX()+50, p.getY()+60)) { + p.stop(); + } + if(second.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); }else { p.setCeil(10); - } + } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(second.getclr(p2.getX() + 25,p2.getY()+66) || second.getclr(p2.getX()+15,p2.getY()+30) || second.getclr(p2.getX()+20, p2.getY()+30) ) { + if(second.getclr(p2.getX() + 25,p2.getY()+67) && second.getclr(p2.getX()+25, p2.getY()+62)==false ) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } + if(second.getclr(p2.getX()+15, p2.getY()+58)) { + p2.stop(); + } + if(second.getclr(p2.getX()+50, p2.getY()+58)) { + p2.stop(); + } if(second.getclr(p2.getX(), p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } + //checking if phineas stepped into green in level 1 + if(p.crossedLava(level2.get(0)) || p.crossedLava(level2.get(3)) || p.crossedLava(level2.get(4))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; + } + //checking if ferb stepped into orange in level 1 + if(p2.crossedLava(level2.get(1)) || p2.crossedLava(level2.get(2)) || p2.crossedLava(level2.get(5))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did players reach door + if (p.touchDoor(d2) && p2.touchDoor(d2)) { + d2.changePicture(""); + touchd2 = true; + canRestart = true; + } tryagain = false; }else if (thirdStart) {//checking if button to play level 3 has been pressed/'hit' @@ -446,20 +635,31 @@ public void paint(Graphics g) { pause.paint(g); //if button has been pressed, draw the corresponding level and its components - //lavas are reset - - //gems are reset + //perry is drawn + perry3.paint(g); + //door is drawn over perry + d3.paint(g); //characters are drawn p.paint(g); p2.paint(g); + + //lavas are reset + + //gems are reset //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds - if(third.getclr(p.getX() + 25,p.getY()+66) || third.getclr(p.getX()+15,p.getY()+30) || third.getclr(p.getX()+20, p.getY()+30) ){ + if(third.getclr(p.getX() + 25,p.getY()+67) && third.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); } else { p.setFlor(795); } + if(third.getclr(p.getX()+15, p.getY()+60)) { + p.stop(); + } + if(third.getclr(p.getX()+50, p.getY()+60)) { + p.stop(); + } if(third.getclr(p.getX()+15, p.getY())){ p.setCeil(p.getY()); }else { @@ -467,33 +667,48 @@ public void paint(Graphics g) { } //checking when ferb can walk(i.e. actual ground) and setting up his body's left and right bounds - if(third.getclr(p2.getX() + 25,p2.getY()+66) || third.getclr(p2.getX()+15,p2.getY()+30) || third.getclr(p2.getX()+20, p2.getY()+30) ) { + if(third.getclr(p2.getX() + 25,p2.getY()+67) && third.getclr(p2.getX()+25, p2.getY()+62)==false) { p2.setFlor(p2.getY()); } else { p2.setFlor(795); } - if(third.getclr(p2.getX(), p2.getY())){ + if(third.getclr(p2.getX()+15, p2.getY()+60)) { + p2.stop(); + } + if(third.getclr(p2.getX()+50, p2.getY()+60)) { + p2.stop(); + } + if(third.getclr(p2.getX()+15, p2.getY())){ p2.setCeil(p2.getY()); }else { p2.setCeil(10); } + //checking if phineas stepped into green in level 3 + if(p.crossedLava(level3.get(1)) || p.crossedLava(level3.get(3)) || p.crossedLava(level3.get(4)) || p.crossedLava(level3.get(7)) || p.crossedLava(level3.get(8))){ + p.dissapear(null); + p2.dissapear(null); + canRestart = true; + } + + //checking if ferb stepped into orange in level 3 + if(p2.crossedLava(level3.get(0)) || p2.crossedLava(level3.get(2)) || p2.crossedLava(level3.get(5)) || p.crossedLava(level3.get(6)) || p.crossedLava(level3.get(9))){ + p2.dissapear(null); + p.dissapear(null);; + canRestart = true; + } + + //did players reach the door together + if(p.touchDoor(d3) && p2.touchDoor(d3)) { + d3.changePicture(""); + touchd3 = true; + canRestart = true; + } + tryagain = false; } } - //checking if phineas stepped into green in level 1 - if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ - p.dissapear(null); - p2.dissapear(null); - canRestart = true; - } - //checking if ferb stepped into orange in level 1 - if(p2.crossedLava(level1.get(0)) || p2.crossedLava(level1.get(1)) || p2.crossedLava(level1.get(4)) || p2.crossedLava(level1.get(5)) || p2.crossedLava(level1.get(6))){ - p2.dissapear(null); - p.dissapear(null);; - canRestart = true; - } //did corresponding player collect their gem in level 1 if(p.grabbedGem(level1Gems.get(0))) {//phineas collected @@ -502,12 +717,76 @@ public void paint(Graphics g) { if(p2.grabbedGem(level1Gems.get(1))) {//ferb collected level1Gems.get(1).restart(""); } + if(p.grabbedGem(level1Gems.get(2))) {//phineas collected + level1Gems.get(2).restart(""); + } + if(p2.grabbedGem(level1Gems.get(3))) {//ferb collected + level1Gems.get(3).restart(""); + } + if(p.grabbedGem(level1Gems.get(4))) {//phineas collected + level1Gems.get(4).restart(""); + } + if(p2.grabbedGem(level1Gems.get(5))) {//ferb collected + level1Gems.get(5).restart(""); + } + + + //did corresponding player collect their gem in level 2 + if(p.grabbedGem(level2Gems.get(0))) {//phineas collected + level2Gems.get(0).restart(""); + } + if(p2.grabbedGem(level2Gems.get(1))) {//ferb collected + level2Gems.get(1).restart(""); + } + if(p.grabbedGem(level2Gems.get(2))) {//phineas collected + level2Gems.get(2).restart(""); + } + if(p2.grabbedGem(level2Gems.get(3))) {//ferb collected + level2Gems.get(3).restart(""); + } + if(p.grabbedGem(level2Gems.get(4))) {//phineas collected + level2Gems.get(4).restart(""); + } + if(p2.grabbedGem(level2Gems.get(5))) {//ferb collected + level2Gems.get(5).restart(""); + } + + //did corresponding player collect their gem in level 3 + if(p.grabbedGem(level3Gems.get(0))) {//phineas collected + level3Gems.get(0).restart(""); + } + if(p2.grabbedGem(level3Gems.get(1))) {//ferb collected + level3Gems.get(1).restart(""); + } + if(p.grabbedGem(level3Gems.get(2))) {//phineas collected + level3Gems.get(2).restart(""); + } + if(p2.grabbedGem(level3Gems.get(3))) {//ferb collected + level3Gems.get(3).restart(""); + } + + if (canRestart) {//checking if pause button was clicked restartMenu.paint(g); menu.paint(g); - restart.paint(g); + if (touchd1==false && touchd2==false && touchd3==false) { + restart.paint(g); + } //pause menu components are drawn (menu button and restart the level button) + + if (touchd1 || touchd2 || touchd3) { + g.setColor( new Color(13, 169, 189)); + g.fillRect(315, 390, 220, 30); + g.setColor(Color.WHITE); + Font f1 = new Font("Times New Roman", Font.ITALIC , 16); + g.setFont(f1); + g.drawString("Congratulations you found Perry!", 320, 410); + } + + touchd1 = false; + touchd2 = false; + touchd3 = false; } if(home) {//player has hit the menu button on pause menu @@ -537,12 +816,14 @@ public Frame() { f.setLayout(new GridLayout(1,2)); f.addMouseListener(this); f.addKeyListener(this); - Timer t = new Timer(16, this); + Timer t = new Timer(13, this); t.start(); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setVisible(true); + + } @@ -572,43 +853,116 @@ public void mousePressed(MouseEvent arg0) { firstStart = true; secondStart = false; thirdStart = false; + p.restart("Phin.png", 30,690);//30,690 + p2.restart("Ferb.png", 30,690);//30,690 + d1.changePicture("door.png"); } if(two.hit(arg0)) { canRestart = false; secondStart = true; firstStart = false; thirdStart = false; + p.restart("Phin.png", 30, 20); + p2.restart("Ferb.png", 30, 20); + d2.changePicture("door.png"); } if(three.hit(arg0)) { canRestart = false; thirdStart = true; firstStart = false; secondStart = false; + p.restart("Phin.png", 380, 20); + p2.restart("Ferb.png", 380, 20); + d3.changePicture("door.png"); } if(pause.hit(arg0)) { canRestart = true; } if(menu.hit(arg0)) { home = true; + canRestart = false; //restarting players - p.restart("Phin.png", 30, 30); - p2.restart("Ferb.png", 30, 30); + if(firstStart) { + p.restart("Phin.png", 30, 690); + p2.restart("Ferb.png", 30, 690); + d1.changePicture("door.png"); + }else if(secondStart) { + p.restart("Phin.png", 30, 20); + p2.restart("Ferb.png", 30, 20); + d2.changePicture("door.png"); + }else if(thirdStart) { + p.restart("Phin.png", 380, 20); + p2.restart("Ferb.png", 380, 20); + d3.changePicture("door.png"); + } + //restarting all gems level1Gems.get(0).restart("gearGEM2t.gif"); level1Gems.get(1).restart("hammerGEM1t.gif"); + level1Gems.get(2).restart("gearGEM2t.gif"); + level1Gems.get(3).restart("hammerGEM1t.gif"); + level1Gems.get(4).restart("gearGEM2t.gif"); + level1Gems.get(5).restart("hammerGEM1t.gif"); + + //restarting all gems in level 2 + level2Gems.get(0).restart("gearGEM2t.gif"); + level2Gems.get(1).restart("hammerGEM1t.gif"); + level2Gems.get(2).restart("gearGEM2t.gif"); + level2Gems.get(3).restart("hammerGEM1t.gif"); + level2Gems.get(4).restart("gearGEM2t.gif"); + level2Gems.get(5).restart("hammerGEM1t.gif"); + + //restarting all gems in level 3 + level3Gems.get(0).restart("gearGEM2t.gif"); + level3Gems.get(1).restart("hammerGEM1t.gif"); + level3Gems.get(2).restart("gearGEM2t.gif"); + level3Gems.get(3).restart("hammerGEM1t.gif"); firstStart = false; secondStart = false; thirdStart = false; } if(restart.hit(arg0)) { + //restarting players - p.restart("Phin.png", 30, 30); - p2.restart("Ferb.png", 30, 30); - //restarting all gems + if(firstStart) { + p.restart("Phin.png", 30, 690); + p2.restart("Ferb.png", 30, 690); + d1.changePicture("door.png"); + } else if(secondStart) { + p.restart("Phin.png", 30, 20); + p2.restart("Ferb.png", 30, 20); + d2.changePicture("door.png"); + } else if(thirdStart) { + p.restart("Phin.png", 380, 20); + p2.restart("Ferb.png", 380, 20); + d3.changePicture("door.png"); + } + + + //restarting all gems in level 1 level1Gems.get(0).restart("gearGEM2t.gif"); level1Gems.get(1).restart("hammerGEM1t.gif"); + level1Gems.get(2).restart("gearGEM2t.gif"); + level1Gems.get(3).restart("hammerGEM1t.gif"); + level1Gems.get(4).restart("gearGEM2t.gif"); + level1Gems.get(5).restart("hammerGEM1t.gif"); + + //restarting all gems in level 2 + level2Gems.get(0).restart("gearGEM2t.gif"); + level2Gems.get(1).restart("hammerGEM1t.gif"); + level2Gems.get(2).restart("gearGEM2t.gif"); + level2Gems.get(3).restart("hammerGEM1t.gif"); + level2Gems.get(4).restart("gearGEM2t.gif"); + level2Gems.get(5).restart("hammerGEM1t.gif"); + + //restarting all gems in level 3 + level3Gems.get(0).restart("gearGEM2t.gif"); + level3Gems.get(1).restart("hammerGEM1t.gif"); + level3Gems.get(2).restart("gearGEM2t.gif"); + level3Gems.get(3).restart("hammerGEM1t.gif"); + tryagain = true; canRestart = false; } @@ -628,7 +982,9 @@ public void actionPerformed(ActionEvent arg0) { public void keyPressed(KeyEvent arg0) { // TODO Auto-generated method stub - System.out.println(arg0.getKeyCode()); + //System.out.println(arg0.getKeyCode()); + + //phineas movements (up,right, and left keys) if (arg0.getKeyCode() == 39) { p.changePicture("Phin.png"); p.moveLeft(); @@ -642,7 +998,7 @@ public void keyPressed(KeyEvent arg0) { } - + //ferb movements(A,D, and W keys) if (arg0.getKeyCode() == 68) { p2.changePicture("Ferb.png"); p2.moveLeft(); @@ -655,6 +1011,7 @@ public void keyPressed(KeyEvent arg0) { p2.jump(); } + //stoping characters from moving horizontally once they dissapear if(canRestart) { p.stop(); p2.stop(); diff --git a/Where's Perry3/src/Player.java b/Where's Perry3/src/Player.java index 3f99783..bdd3f82 100644 --- a/Where's Perry3/src/Player.java +++ b/Where's Perry3/src/Player.java @@ -21,17 +21,15 @@ public class Player{ private AffineTransform tx; private int x,y; private double vx ,vy; - private int floor= 700; + private int floor= 790; private int Lwall= 15; - private int Rwall= 750; + private int Rwall= 790; private int ceil= 10; - private double gravity = 0.15; + private double gravity = 0.1; public Player(String fileName) { img = getImage("/imgs/"+fileName); //load the image for Phineas - x = 30; - y = 30; tx = AffineTransform.getTranslateInstance(x, y); } @@ -47,9 +45,9 @@ public void paint(Graphics g) { g2.drawImage(img, tx, null); update(); - g.drawRect((int) x, (int)y, 10, 10); + //g.drawRect((int) x, (int)y, 10, 10); - g.drawRect((int) x+15, (int) y, 20, 80); + //g.drawRect((int) x+25, (int) y, 25, 67); } private void init(double a, double b) { @@ -76,14 +74,13 @@ public void moveRight(){ } public void moveLeft(){ - vx = 3; - + vx=3; } public void jump() { if(y == floor) { - vy = -6; + vy = -7; } @@ -135,6 +132,15 @@ public void update() { //touchLev(); + if (y >= 795) { + y = 690; + } + if (x <= 0) { + x = 15; + } + if(x >= 795) { + x = 770; + } } public boolean touchLev() { @@ -159,7 +165,7 @@ public void restart(String filename, int initx, int inity) { x = initx; y = inity; Lwall = 15; - Rwall = 750; + Rwall = 790; update(); } @@ -211,7 +217,7 @@ public boolean grabbedGem(Gems gem) { //helper method for detecting when both players are at the door public boolean touchDoor(Door door) { //represent the door as a rectangle object - Rectangle m = new Rectangle(door.getX(), door.getY(), 30, 30); + Rectangle m = new Rectangle(door.getX()+50, door.getY()+50, 60, 60); //player rectangle Rectangle p = new Rectangle(x+15,y, 20, 63); diff --git a/Where's Perry3/src/imgs/Door.java b/Where's Perry3/src/imgs/Door.java index 1786ad1..a514ff3 100644 --- a/Where's Perry3/src/imgs/Door.java +++ b/Where's Perry3/src/imgs/Door.java @@ -20,12 +20,12 @@ public class Door { private AffineTransform tx; //default constructor - public Door() { + public Door(int x, int y) { img2 = getImage("/imgs/door.png"); //load the image tx = AffineTransform.getTranslateInstance(x,y); //initialize the location of the image, use your variables - x = 0; - y = 0; + this.x = x; + this.y = y; } public void changePicture(String newFileName) { @@ -44,12 +44,12 @@ public void paint(Graphics g) { //update the picture variable location private void update() { tx.setToTranslation(x, y); - tx.scale(1,1); + tx.scale(2,2); } private void init(double a, double b) { tx.setToTranslation(a, b); - tx.scale(1,1); + tx.scale(2,2); } private Image getImage(String path) { diff --git a/Where's Perry3/src/imgs/Gems.java b/Where's Perry3/src/imgs/Gems.java index eff1699..4f7ed02 100644 --- a/Where's Perry3/src/imgs/Gems.java +++ b/Where's Perry3/src/imgs/Gems.java @@ -41,7 +41,7 @@ public void paint(Graphics g) { update(); g2.drawImage(img, tx, null); - g.drawRect(x, y, 35, 35); + //g.drawRect(x, y, 35, 35); } //when gems get collected diff --git a/Where's Perry3/src/imgs/Lava.java b/Where's Perry3/src/imgs/Lava.java index a53f712..a1c4250 100644 --- a/Where's Perry3/src/imgs/Lava.java +++ b/Where's Perry3/src/imgs/Lava.java @@ -41,7 +41,7 @@ public void paint(Graphics g) { Graphics2D g2 = (Graphics2D) g; update(); g2.drawImage(img, tx, null); - g.drawRect(x+60, y+105, 80, 20); + //g.drawRect(x+60, y+105, 80, 20); } diff --git a/Where's Perry3/src/imgs/Level.java b/Where's Perry3/src/imgs/Level.java index 9e5eceb..16c4290 100644 --- a/Where's Perry3/src/imgs/Level.java +++ b/Where's Perry3/src/imgs/Level.java @@ -54,21 +54,21 @@ public void paint(Graphics g) { public boolean getclr(int x, int y) { boolean check = false; - //Color c = new Color(color.getRGB(x, y)); + Color c = new Color(color.getRGB(x, y)); - int clr = color.getRGB(x, y); + /*int clr = color.getRGB(x, y); int red = (clr & 0x00ff0000) >> 16; int green = (clr & 0x0000ff00) >> 8; int blue = clr & 0x000000ff; if(red == 48 && green == 31 && blue == 23) { check = true; + }*/ + if (x >= 795 || y >= 795) { + return false; } - - /*if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { - //return true; + if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { check = true; - //return true; - }*/ + } return check; } diff --git a/Where's Perry3/src/imgs/Perry.java b/Where's Perry3/src/imgs/Perry.java index 6f1e4c1..70d7558 100644 --- a/Where's Perry3/src/imgs/Perry.java +++ b/Where's Perry3/src/imgs/Perry.java @@ -20,10 +20,10 @@ public class Perry{ private int x,y; - public Perry() { + public Perry(int x, int y) { img = getImage("/imgs/perry.png"); //load the image for Perry - x = 30;//change for each level - y = 30;//change for each level + this.x = x;//change for each level + this.y = y;//change for each level tx = AffineTransform.getTranslateInstance(x, y); } @@ -43,11 +43,11 @@ public void paint(Graphics g) { private void init(double a, double b) { tx.setToTranslation(a,b); - tx.scale(.05, .05); + tx.scale(1,1); } public void update() { tx = AffineTransform.getTranslateInstance(x, y); - tx.scale(0.65,0.65); + tx.scale(1,1); } diff --git a/Where's Perry3/src/imgs/level1.png b/Where's Perry3/src/imgs/level1.png index 14caace62edd2c36dba351585783dfe79c625b78..0bcbf25e3904b87b6de8e4cac34f0957da37e490 100644 GIT binary patch literal 19591 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 literal 21225 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 F{|n)Qm&yPD diff --git a/Where's Perry3/src/imgs/level2.png b/Where's Perry3/src/imgs/level2.png index b2cdb901a51f1d5386caf88eb0b3ddee2059ad25..ed47e8878f990a51ab12435354f845057f4e4d9b 100644 GIT binary patch literal 23251 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 literal 23834 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 From cba9b148c81cff42651380d44b5328f329eb1caf Mon Sep 17 00:00:00 2001 From: palina0k <89176605+palina0k@users.noreply.github.com> Date: Tue, 6 Jun 2023 12:52:54 -0700 Subject: [PATCH 5/5] Squashed commit of the following: commit d1857012e8e4ed76798919e156c0ec298b2bea4b Merge: b28fb64 45a931b Author: palina0k <89176605+palina0k@users.noreply.github.com> Date: Tue Jun 6 10:18:53 2023 -0700 Merge pull request #3 from palina0k/anaghas_version game levers aded to lev 2 and 3 commit 45a931b9cdb52b072f0b04de57c77a485bb5a82e Author: anagha166 Date: Tue Jun 6 10:17:37 2023 -0700 game levers aded to lev 2 and 3 --- Where's Perry3/src/Frame.java | 177 +++++++++++++++++++++++--- Where's Perry3/src/Player.java | 76 +++++------ Where's Perry3/src/imgs/Candace.java | 70 ++++++++++ Where's Perry3/src/imgs/Level.java | 7 + Where's Perry3/src/imgs/Levers.java | 28 +++- Where's Perry3/src/imgs/Platform.java | 96 ++++++++++++++ Where's Perry3/src/imgs/leve3.png | Bin 0 -> 18847 bytes Where's Perry3/src/imgs/level3.png | Bin 0 -> 18456 bytes Where's Perry3/src/imgs/level3v.png | Bin 18842 -> 0 bytes Where's Perry3/src/imgs/platform.png | Bin 0 -> 13870 bytes Where's Perry3/src/imgs/platform2.png | Bin 0 -> 12379 bytes 11 files changed, 384 insertions(+), 70 deletions(-) create mode 100644 Where's Perry3/src/imgs/Candace.java create mode 100644 Where's Perry3/src/imgs/Platform.java create mode 100644 Where's Perry3/src/imgs/leve3.png create mode 100644 Where's Perry3/src/imgs/level3.png delete mode 100644 Where's Perry3/src/imgs/level3v.png create mode 100644 Where's Perry3/src/imgs/platform.png create mode 100644 Where's Perry3/src/imgs/platform2.png diff --git a/Where's Perry3/src/Frame.java b/Where's Perry3/src/Frame.java index 09e8052..1c0ee5e 100644 --- a/Where's Perry3/src/Frame.java +++ b/Where's Perry3/src/Frame.java @@ -3,6 +3,7 @@ import java.awt.Font; import java.awt.Graphics; import java.awt.GridLayout; +import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; @@ -11,10 +12,12 @@ import java.awt.event.MouseListener; import java.util.ArrayList; import java.util.List; +import java.util.concurrent.TimeUnit; import javax.swing.JButton; import javax.swing.JComponent; import javax.swing.JFrame; +import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.Timer; @@ -25,18 +28,27 @@ import imgs.Gems; import imgs.Lava; import imgs.Levers; -import imgs.Perry; +import imgs.Platform; import imgs.RestartMenu; +import imgs.Candace; public class Frame extends JPanel implements ActionListener, MouseListener, KeyListener { + double start; + double finish; + double time; + double Tottime; + Player p = new Player("Phin.png"); + Player p2 = new Player("Ferb.png"); Background homepage = new Background(); boolean home = false; + //setting up homepage buttons that let user access levels 1-3 Buttons one = new Buttons("level1logo.png", 130, 275); Buttons two = new Buttons("level2logo.png", 230, 275); Buttons three = new Buttons("level3logo.png", 520, 270); + //pause button that appears in every level Buttons pause = new Buttons("pause.png", 730, 0); @@ -44,8 +56,11 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL Player p = new Player("Phin.png"); Player p2 = new Player("Ferb.png"); - //levers - Levers lev1 = new Levers("LeverUnchanged.png", 670, 75); + //levers + Levers lev1 = new Levers(670, 75); + Levers lev2 = new Levers(530, 370); + Platform pl = new Platform("platform.png", 50,480); + Platform pl2 = new Platform("platform2.png",200,410); //setting up the visual backgrounds and maze contents of levels Background back = new Background("background.png"); @@ -53,16 +68,20 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL boolean firstStart = false; Level second = new Level("level2.png"); boolean secondStart = false; - Level third = new Level("level3v.png"); + Level third = new Level("level3.png"); boolean thirdStart = false; //attributes of the menu pop-up RestartMenu restartMenu = new RestartMenu(); + Candace candace = new Candace(); boolean canRestart = false; Buttons restart = new Buttons("restart.png", 330, 420); boolean tryagain = false; Buttons menu = new Buttons("menu.png", 460, 420); + //keep track of started or not + boolean started = false; + //setting up arrays that contain lava objects for each level int x1= 0; int y1 = 0; @@ -72,7 +91,6 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL ArrayList level2 = new ArrayList(); //level3 has 9 lavas ArrayList level3 = new ArrayList(); - //setting up arrays that contain gem objects for each level ArrayList level1Gems = new ArrayList(); ArrayList level2Gems = new ArrayList(); @@ -94,9 +112,6 @@ public class Frame extends JPanel implements ActionListener, MouseListener, KeyL Perry perry3 = new Perry(40,615); - //private long starttime; - - public void paint(Graphics g) { super.paintComponent(g); @@ -112,6 +127,10 @@ public void paint(Graphics g) { level1.add(new Lava("ferbLavat.gif", x1+375 , y1+655 )); level1.add(new Lava("ferbLavat.gif", x1+415 , y1+655 )); + Font plainFont = new Font ("Press Start 2P", Font.BOLD, 30); + g.setFont(plainFont); + g.setColor(Color.black); + //level1 GEMS level1Gems.add(new Gems("gearGEM2t.gif", x1+170, y1+120)); level1Gems.add(new Gems("hammerGEM1t.gif", x1+580, y1+120)); @@ -198,6 +217,19 @@ public void paint(Graphics g) { level1Gems.get(4).paint(g);//gear level1Gems.get(5).paint(g);//hammer + //set players at bottom left screen + p.paint(g); + p2.paint(g); + + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + g.drawString("Stand at lever + press space to move",200,100); + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(first.getclr(p.getX() + 25,p.getY()+67) && first.getclr(p.getX()+25, p.getY()+62)==false /*|| first.getclr(p.getX()+15,p.getY()+30) || first.getclr(p.getX()+20, p.getY()+30)*/ ){ p.setFlor(p.getY()); @@ -234,7 +266,6 @@ public void paint(Graphics g) { p2.setCeil(10); } - //checking if phineas stepped into green in level 1 if(p.crossedLava(level1.get(2)) || p.crossedLava(level1.get(3)) || p.crossedLava(level1.get(7)) || p.crossedLava(level1.get(8)) || p.crossedLava(level1.get(9))){ p.dissapear(null); @@ -254,7 +285,7 @@ public void paint(Graphics g) { touchd1 = true; canRestart = true; } - + } if (secondStart) {//checking if button to play level 2 has been pressed/'hit' @@ -269,7 +300,6 @@ public void paint(Graphics g) { //door is drawn over perry d2.paint(g); - //characters are drawn p.paint(g); p2.paint(g); @@ -290,6 +320,17 @@ public void paint(Graphics g) { level2Gems.get(4).paint(g);//gear level2Gems.get(5).paint(g);//hammer + pl2.paint(g); + lev2.paint(g); + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + g.drawString("Stand at lever + press space to move",200,100); + //if button has been pressed, draw the corresponding level and its components + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(second.getclr(p.getX() + 25,p.getY()+67) && second.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); @@ -354,7 +395,7 @@ public void paint(Graphics g) { back.paint(g); third.paint(g); pause.paint(g); - + //perry is drawn perry3.paint(g); //door is drawn over perry @@ -366,7 +407,18 @@ public void paint(Graphics g) { //levers are drawn lev1.paint(g); - + pl.paint(g); + //start = System.currentTimeMillis(); + //finish = System.currentTimeMillis(); + //long timeElapsed = finish - start; + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + //if button has been pressed, draw the corresponding level and its components + //lavas are drawn level3.get(0).paint(g);//orange level3.get(1).paint(g);//green @@ -446,7 +498,8 @@ public void paint(Graphics g) { } if(tryagain) {//user chose to restart same level they were on before - + + canRestart = false; if (firstStart) {//checking if button to play level 1 has been pressed/'hit' back.paint(g); first.paint(g); @@ -481,6 +534,15 @@ public void paint(Graphics g) { level1Gems.get(4).paint(g);//gear level1Gems.get(5).paint(g);//hammer + + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + g.drawString("Stand at lever + press space to move",200,100); + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(first.getclr(p.getX() + 25,p.getY()+67) && first.getclr(p.getX()+25, p.getY()+62)==false){ @@ -572,6 +634,18 @@ public void paint(Graphics g) { level2Gems.get(4).paint(g);//gear level2Gems.get(5).paint(g);//hammer + pl2.paint(g); + lev2.paint(g); + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + g.drawString("Stand at lever + press space to move",200,100); + //if button has been pressed, draw the corresponding level and its components + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(second.getclr(p.getX() + 25,p.getY()+67) && second.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); @@ -644,10 +718,40 @@ public void paint(Graphics g) { p.paint(g); p2.paint(g); - //lavas are reset + //lavas are reset + level3.get(0).paint(g);//orange + level3.get(1).paint(g);//green + level3.get(2).paint(g);//orange + level3.get(3).paint(g);//green + level3.get(4).paint(g);//green + level3.get(5).paint(g);//orange + level3.get(6).paint(g);//orange + level3.get(7).paint(g);//green + level3.get(8).paint(g);//green + level3.get(9).paint(g);//orange + //gems are reset + level3Gems.get(0).paint(g);//gear + level3Gems.get(1).paint(g);//hammer + level3Gems.get(2).paint(g);//gear + level3Gems.get(3).paint(g);//hammer + //levers are drawn + lev1.paint(g); + pl.paint(g); + //start = System.currentTimeMillis(); + //finish = System.currentTimeMillis(); + //long timeElapsed = finish - start; + if(!started) { + start = System.currentTimeMillis(); + started = true; + } + time = (System.currentTimeMillis() - start)/1000.0; + g.drawString("Time: " + time,300,40); + //if button has been pressed, draw the corresponding level and its components + + //checking where phineas can walk (i.e. actual ground) and setting up his body's left and right bounds if(third.getclr(p.getX() + 25,p.getY()+67) && third.getclr(p.getX()+25, p.getY()+62)==false){ p.setFlor(p.getY()); @@ -764,17 +868,18 @@ public void paint(Graphics g) { if(p2.grabbedGem(level3Gems.get(3))) {//ferb collected level3Gems.get(3).restart(""); } - - if (canRestart) {//checking if pause button was clicked + candace.paint(g); restartMenu.paint(g); menu.paint(g); if (touchd1==false && touchd2==false && touchd3==false) { restart.paint(g); } - //pause menu components are drawn (menu button and restart the level button) - + finish = time; + //g.drawString("Total time: " ,300,500); + started = false; + //pause menu components are drawn (menu button and restart the level button if (touchd1 || touchd2 || touchd3) { g.setColor( new Color(13, 169, 189)); g.fillRect(315, 390, 220, 30); @@ -805,6 +910,7 @@ public void paint(Graphics g) { public static void main(String[] arg) { Frame f = new Frame(); + } public Frame() { @@ -827,6 +933,8 @@ public Frame() { } + + @Override public void mouseClicked(MouseEvent arg0) { // TODO Auto-generated method stub @@ -1015,8 +1123,39 @@ public void keyPressed(KeyEvent arg0) { if(canRestart) { p.stop(); p2.stop(); + + } + + if(p.touchLev() == true && arg0.getKeyCode() == 32 || p2.touchLev() == true && arg0.getKeyCode() == 32){ + if (lev1.getCt() == 0) { + lev1.changePicture(670,75); + pl.move(0,200); + lev1.setCt(1); + System.out.print(lev1.getCt()); + }else{ + lev1.changeBack(670,75); + pl.move(0,-200); + lev1.setCt(0); + System.out.print(lev1.getCt()); + } + + if (lev2.getCt() == 0) { + lev2.changePicture(530,370); + pl2.move(400,0); + lev2.setCt(1); + System.out.print(lev2.getCt()); + }else{ + lev2.changeBack(530,370); + pl2.move(-400,0); + lev2.setCt(0); + System.out.print(lev2.getCt()); + } + } + + + } @Override diff --git a/Where's Perry3/src/Player.java b/Where's Perry3/src/Player.java index bdd3f82..feebb1b 100644 --- a/Where's Perry3/src/Player.java +++ b/Where's Perry3/src/Player.java @@ -15,6 +15,7 @@ import imgs.Door; import imgs.Gems; import imgs.Lava; +import imgs.Levers; public class Player{ private Image img; @@ -26,19 +27,21 @@ public class Player{ private int Rwall= 790; private int ceil= 10; private double gravity = 0.1; + private int gemAmt = 0; - public Player(String fileName) { img = getImage("/imgs/"+fileName); //load the image for Phineas tx = AffineTransform.getTranslateInstance(x, y); - + + x = 0; + y = 0; + tx = AffineTransform.getTranslateInstance(x, y); + } - public void changePicture(String fileName) { //img = getImage("/imgs/Phinflip.png"); img = getImage("/imgs/"+fileName); } - public void paint(Graphics g) { //these are the 2 lines of code needed draw an image on the screen Graphics2D g2 = (Graphics2D) g; @@ -48,8 +51,9 @@ public void paint(Graphics g) { //g.drawRect((int) x, (int)y, 10, 10); //g.drawRect((int) x+25, (int) y, 25, 67); + + update(); } - private void init(double a, double b) { tx.setToTranslation(a,b); tx.scale(.05, .05); @@ -59,58 +63,50 @@ public void stop(){ vx = 0; } + public void restart(String filename) { + dissapear(getImage("/imgs/"+filename)); + x = 0; + y = 0; + gemAmt = 0; + } public int getX() { return x; } - public int getY() { return y; } - + public void stop(){ + vx = 0; + } public void moveRight(){ vx = -3; - - } - public void moveLeft(){ vx=3; - } - public void jump() { if(y == floor) { vy = -7; } - - } - public void setFlor(int val) { floor = val; } - public void setLwall(int val) { Lwall = val; } - public void setRwall(int val) { Rwall = val; } - public void setCeil(int val) { ceil = val; } - public void update() { tx = AffineTransform.getTranslateInstance(x, y); tx.scale(0.65,0.65); x += vx; y += vy; vy += gravity; - - - if (y >= floor) { y = floor; vy =0; @@ -122,16 +118,14 @@ public void update() { vy = 6; } - + if(x <= Lwall) { x = Lwall; } if(x >= Rwall) { x = Rwall; } - - //touchLev(); - + if (y >= 795) { y = 690; } @@ -140,9 +134,8 @@ public void update() { } if(x >= 795) { x = 770; - } + } - public boolean touchLev() { //represent mouse as rectangle Rectangle p = new Rectangle(x,y,70,70); @@ -151,11 +144,14 @@ public boolean touchLev() { Rectangle l = new Rectangle (670,75,90,90); if(p.intersects(l)) { + // lever touched + Rectangle l = new Rectangle (670,75,70,70); + Rectangle l2 = new Rectangle (530,370,70,70); + //check hit + if(p.intersects(l) || p.intersects(l2)) { //if lever is touched, move it, each time it should change image System.out.println("hit"); return true; - } - return false; //System.out.println("X location " + getX() + ", Y location " + getY()); @@ -174,11 +170,9 @@ public void dissapear(Image image) { img = image; vx = 0; } - public double getHeight() { return y; - } - + } //helper method to detect if player walked through wrong lava public boolean crossedLava(Lava l) { boolean crossed = false; @@ -192,11 +186,11 @@ public boolean crossedLava(Lava l) { if(player.intersects(lava)) { crossed = true; } - - return crossed; } - + public int getGem() { + return gemAmt; + } //helper method to detect if player picked up correct gem public boolean grabbedGem(Gems gem) { boolean didGrab = false; @@ -209,8 +203,8 @@ public boolean grabbedGem(Gems gem) { if(player.intersects(gems)) { didGrab = true; + gemAmt ++; } - return didGrab; } @@ -240,12 +234,4 @@ private Image getImage(String path) { } return tempImage; } - - - - - - - - } \ No newline at end of file diff --git a/Where's Perry3/src/imgs/Candace.java b/Where's Perry3/src/imgs/Candace.java new file mode 100644 index 0000000..ba82b87 --- /dev/null +++ b/Where's Perry3/src/imgs/Candace.java @@ -0,0 +1,70 @@ +package imgs; + +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Rectangle; +import java.awt.Toolkit; +import java.awt.event.MouseEvent; +import java.awt.event.MouseListener; +import java.awt.geom.AffineTransform; +import java.net.URL; + +public class Candace { + private int x,y; //location attributes + private Image img2; + private AffineTransform tx; + + //default constructor + public Candace() { + img2 = getImage("/imgs/Candace.png"); //load the image + tx = AffineTransform.getTranslateInstance(x,y); + //initialize the location of the image, use your variables + x = 300; + y = 100; + } + + //constructor that allows specifying the file name of the image + //sets fileName of the image to use + public Candace(String fileName) { + img2 = getImage("/imgs/" + fileName); + tx = AffineTransform.getTranslateInstance(x,y); + init(x,y); + } + + + public void changePicture(String newFileName) { + img2 = getImage(newFileName); + init(0, 0); + } + + public void paint(Graphics g) { + //these are the 2 lines of code needed draw an image on the screen + Graphics2D g2 = (Graphics2D) g; + update(); + g2.drawImage(img2, tx, null); + + } + + //update the picture variable location + private void update() { + tx.setToTranslation(x, y); + tx.scale(3, 3); + } + + private void init(double a, double b) { + tx.setToTranslation(a, b); + tx.scale(3, 3); + } + + private Image getImage(String path) { + Image tempImage = null; + try { + URL imageURL = RestartMenu.class.getResource(path); + tempImage = Toolkit.getDefaultToolkit().getImage(imageURL); + } catch (Exception e) { + e.printStackTrace(); + } + return tempImage; + } +} diff --git a/Where's Perry3/src/imgs/Level.java b/Where's Perry3/src/imgs/Level.java index 16c4290..f3d5fba 100644 --- a/Where's Perry3/src/imgs/Level.java +++ b/Where's Perry3/src/imgs/Level.java @@ -69,6 +69,13 @@ public boolean getclr(int x, int y) { if(c.getRed() == 48 && c.getGreen() == 31 && c.getBlue() == 23) { check = true; } + + /*else if(c.getRed() == 51 && c.getGreen() == 30 && c.getBlue() == 22) { + //return true; + check = true; + //return true; + } + */ return check; } diff --git a/Where's Perry3/src/imgs/Levers.java b/Where's Perry3/src/imgs/Levers.java index 2fbec27..f57fe78 100644 --- a/Where's Perry3/src/imgs/Levers.java +++ b/Where's Perry3/src/imgs/Levers.java @@ -16,23 +16,39 @@ public class Levers { private int x,y; //location attributes - private Image img; + private Image img; private AffineTransform tx; private BufferedImage color; + int ct = 0; //constructor that allows specifying the file name of the image //sets fileName of the image to use - public Levers(String fileName, int initx, int inity) { - img = getImage("/imgs/" + fileName);//load the image + public Levers(int initx, int inity) { + img = getImage("/imgs/" + "LeverUnchanged.png");//load the image tx = AffineTransform.getTranslateInstance(x,y); x = initx; y = inity; } - public void changePicture(String newFileName) { - img = getImage(newFileName); - init(x,y); + public void changePicture(int initx, int inity) { + img = getImage("/imgs/" + "LeverChanged.png"); + x = initx; + y = inity; + } + + public void changeBack(int initx, int inity) { + img = getImage("/imgs/" + "LeverUnchanged.png"); + x = initx; + y = inity; + } + + public int getCt() { + return ct; + } + + public void setCt(int val) { + ct = val; } public void paint(Graphics g) { diff --git a/Where's Perry3/src/imgs/Platform.java b/Where's Perry3/src/imgs/Platform.java new file mode 100644 index 0000000..88445c5 --- /dev/null +++ b/Where's Perry3/src/imgs/Platform.java @@ -0,0 +1,96 @@ +package imgs; + +import java.awt.Color; +import java.awt.Graphics; +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Toolkit; +import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; +import java.net.URL; + +import javax.imageio.ImageIO; + +public class Platform { + private int x,y; //location attributes + private Image img; + private AffineTransform tx; + private BufferedImage color; + + //constructor that allows specifying the file name of the image + //sets fileName of the image to use + public Platform(String name, int initx, int inity) { + img = getImage("/imgs/" + name);//load the image + tx = AffineTransform.getTranslateInstance(x,y); + x = initx; + y = inity; + } + + + public void changePicture(String newFileName) { + img = getImage("/imgs/" + newFileName); + init(x,y); + } + + + public void move(int Xnum, int Ynum){ + y += Ynum; + x += Xnum; + } + + + public int getX() { + return x; + } + public int getY() { + return y; + } + + public void paint(Graphics g) { + //these are the 2 lines of code needed draw an image on the screen + Graphics2D g2 = (Graphics2D) g; + update(); + g2.drawImage(img, tx, null); + + } + + public boolean getPclr(int x, int y) { + boolean check = false; + Color c = new Color(color.getRGB(x, y)); + + + + if(c.getRed() == 3 && c.getGreen() == 169 && c.getBlue() == 244) { + //return true; + check = true; + //return true; + } + + //System.out.println(check); + return check; + } + + //update the picture variable location + private void update() { + tx.setToTranslation(x, y); + tx.scale(0.25,0.25); + } + + private void init(double a, double b) { + tx.setToTranslation(a, b); + tx.scale(1,1); + } + + private Image getImage(String path) { + Image tempImage = null; + try { + URL imageURL = Level.class.getResource(path); + color = ImageIO.read(imageURL); + tempImage = Toolkit.getDefaultToolkit().getImage(imageURL); + } catch (Exception e) { + e.printStackTrace(); + } + return tempImage; + } + +} diff --git a/Where's Perry3/src/imgs/leve3.png b/Where's Perry3/src/imgs/leve3.png new file mode 100644 index 0000000000000000000000000000000000000000..e641b0df221bc30f58477adfc5c9a1d2cfd08e02 GIT binary patch literal 18847 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 a>Q+@&S%1{AzW*5|t2K73AFcHK<9`69{Pn;9 literal 0 HcmV?d00001 diff --git a/Where's Perry3/src/imgs/level3.png b/Where's Perry3/src/imgs/level3.png new file mode 100644 index 0000000000000000000000000000000000000000..c2dda8784efebdb37461ed6bfcb7e51b235c48cd GIT binary patch literal 18456 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 ZcuQqXhmpz#Wdi(Xvetaf{nZY?{1;!3*H{1m literal 0 HcmV?d00001 diff --git a/Where's Perry3/src/imgs/level3v.png b/Where's Perry3/src/imgs/level3v.png deleted file mode 100644 index c1ab05aff50bd98c9a7ae9bcf8b98311aa25c7ad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18842 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 literal 0 HcmV?d00001 diff --git a/Where's Perry3/src/imgs/platform2.png b/Where's Perry3/src/imgs/platform2.png new file mode 100644 index 0000000000000000000000000000000000000000..b30c1ceb71f5c2aa105da8fb03889696274c03d4 GIT binary patch literal 12379 zcmeAS@N?(olHy`uVBq!ia0y~yU{(NO4mP03?En(z{tQ1q!~eC3z%TC%nA#b5p0mc15?i0Gcf2M^>lFz zsbGA2cVq5h0|u8s)ejbOhm)&$-cDwaY|uH=WM7l_^u+Pp zjL|?CO$np9U^Ewu=7P~&Fq#WSbHQjX7|jKvxnMLGjOKzNl?xWAe<MWz~Xkhbb5U z&2F>N6GDh=2uk=TH{s@b-+$-dzd0YP4tKMIg35=7)l9aGoTa*2aGM)h+KrQbOpDB!dJGZ2)hJ?3>=(NJH6m;U!a%J za7B8`e0ZjF@HoK0IaPJkA)_Gz3xUxzGMZ~f%aPHNb+oP-t$jz^Bcm-eSO|paIxIo+ftn9LelVv#CAf= zl*17|#`A!Ok(p*{K7Vi6^Io@!3t?S@L;L~Z33cs$NF!Xz2@NT$gr>k92~@)Hvit=L zVlc}HIGD9e%Mme{^#wTaMyesBi)&zQGk8dkG7v+shy)4G8>0-wp#5k-A&R5Xl4P_b u87(eGbHQjX7|jKvxnOwbf)D(xb&NOmaeWtL