From 2c1f185e9faaca72aa2bb15a280f456e4f1d3ba1 Mon Sep 17 00:00:00 2001 From: harshit123484 Date: Thu, 21 Nov 2024 09:34:00 +0530 Subject: [PATCH 1/3] Add files via upload --- Game/CarGamePanel$Obstacle.class | Bin 0 -> 443 bytes Game/CarGamePanel.class | Bin 0 -> 5400 bytes Game/CarGamePanel.java | 177 +++++++++++++++++++++++++++++++ Game/DVD.class | Bin 0 -> 383 bytes Game/car.png | Bin 0 -> 21516 bytes Game/road.png | Bin 0 -> 2928 bytes 6 files changed, 177 insertions(+) create mode 100644 Game/CarGamePanel$Obstacle.class create mode 100644 Game/CarGamePanel.class create mode 100644 Game/CarGamePanel.java create mode 100644 Game/DVD.class create mode 100644 Game/car.png create mode 100644 Game/road.png diff --git a/Game/CarGamePanel$Obstacle.class b/Game/CarGamePanel$Obstacle.class new file mode 100644 index 0000000000000000000000000000000000000000..522a12dcb55ffb4417dd1b19cefddaae02b4dbba GIT binary patch literal 443 zcmYjNO;5r=5Pb_RrL{sq5I+)?#6+k@4jwUHny4fMj2iCSx*;W{P1;3&mj`0v!5`p{ zGS1eRa@aRJZ{NI~neU&^F9046EtF6;pxMw-VQ?1wl@B5w&j(X~Ap*%zxent{-Y}GV z{h5g>OaqpUE!YfgkEeHhDIRz%qSL9LNghOkK}++});PE0Z*uTR1i40Hs4QwW>TnqJ zaLMPScM9Q1F++y4UcnW`1^1`x&*(ERc_EMbIE=+)we&^$%zf2`^^~mAK-`8ZX>7K7 zsrq85PDCc}lS~@eW3V?Bl#b$9q+Z0cOk||}pAIK9K#8`e4sC%DY8paDM@NHVlWtdP zwd&3N0CUgRFx-nZw%>E%4q+1-;Su36OtP(^O9d_BN@!y@j~(n&w8*lG4h~@b0y8yR A{Qv*} literal 0 HcmV?d00001 diff --git a/Game/CarGamePanel.class b/Game/CarGamePanel.class new file mode 100644 index 0000000000000000000000000000000000000000..bccf47abe866a7fea31c7ab1c476ab6866e42764 GIT binary patch literal 5400 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 obstacles; + private int obstacleSpeed = 5; + private Random random; + private boolean gameOver; + private int score; + + private static class Obstacle { + Rectangle rect; + Image image; + + Obstacle(Rectangle rect, Image image) { + this.rect = rect; + this.image = image; + } + } + + public CarGamePanel() { + try { + roadImage = ImageIO.read(getClass().getResource("road.png")); + carImage = ImageIO.read(getClass().getResource("car.png")); + obstacleImages = new Image[3]; + obstacleImages[0] = ImageIO.read(getClass().getResource("car.png")); + obstacleImages[1] = ImageIO.read(getClass().getResource("car.png")); + obstacleImages[2] = ImageIO.read(getClass().getResource("car.png")); + } catch (IOException e) { + System.err.println("Error loading images:"); + e.printStackTrace(); + } + + obstacles = new ArrayList<>(); + random = new Random(); + timer = new Timer(40, this); + timer.start(); + + addKeyListener(this); + setFocusable(true); + setFocusTraversalKeysEnabled(false); + gameOver = false; + score = 0; + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + if (roadImage != null) { + g.drawImage(roadImage, 0, 0, getWidth(), getHeight(), this); + } + if (carImage != null) { + g.drawImage(carImage, carX, carY, 60, 90, this); + } + + for (Obstacle obstacle : obstacles) { + g.drawImage(obstacle.image, obstacle.rect.x, obstacle.rect.y, obstacle.rect.width, obstacle.rect.height, + this); + } + + g.setColor(Color.WHITE); + g.setFont(new Font("Arial", Font.BOLD, 18)); + g.drawString("Score: " + score, 10, 20); + + if (gameOver) { + g.setColor(Color.RED); + g.setFont(new Font("Arial", Font.BOLD, 40)); + g.drawString("Game Over!", getWidth() / 2 - 100, getHeight() / 2); + g.setFont(new Font("Arial", Font.BOLD, 20)); + g.drawString("Press R to Restart", getWidth() / 2 - 90, getHeight() / 2 + 40); + } + } + + @Override + public void actionPerformed(ActionEvent e) { + if (!gameOver) { + for (int i = 0; i < obstacles.size(); i++) { + Obstacle obstacle = obstacles.get(i); + obstacle.rect.y += obstacleSpeed; + + if (obstacle.rect.y > getHeight()) { + obstacles.remove(i); + i--; + score++; + } + + if (obstacle.rect.intersects(new Rectangle(carX, carY, 60, 90))) { + gameOver = true; + timer.stop(); + } + } + if (random.nextInt(60) == 0) { + int obstacleX = random.nextInt(280) + 120; + int obstacleY = 0; + int obstacleImageIndex = random.nextInt(obstacleImages.length); + Image obstacleImage = obstacleImages[obstacleImageIndex]; + + boolean overlap = false; + for (Obstacle existingObstacle : obstacles) { + if (existingObstacle.rect.intersects(new Rectangle(obstacleX, obstacleY, 60, 90))) { + overlap = true; + break; + } + } + + if (!overlap) { + obstacles.add(new Obstacle(new Rectangle(obstacleX, obstacleY, 60, 90), obstacleImage)); + } + } + + repaint(); + } + } + + @Override + public void keyPressed(KeyEvent e) { + int key = e.getKeyCode(); + if (gameOver && key == KeyEvent.VK_R) { + carX = 250; + carY = 500; + obstacles.clear(); + score = 0; + gameOver = false; + timer.start(); + repaint(); + } else { + if (key == KeyEvent.VK_LEFT && carX > 120) { + carX -= carSpeed; + } + if (key == KeyEvent.VK_RIGHT && carX < 400) { + carX += carSpeed; + } + if (key == KeyEvent.VK_UP && carY > 0) { + carY -= carSpeed; + } + if (key == KeyEvent.VK_DOWN && carY < getHeight() - 90) { + carY += carSpeed; + } + } + } + + @Override + public void keyReleased(KeyEvent e) { + } + + @Override + public void keyTyped(KeyEvent e) { + } + + public static void main(String[] args) { + JFrame frame = new JFrame("Car Game"); + CarGamePanel gamePanel = new CarGamePanel(); + + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.add(gamePanel); + frame.setSize(600, 700); + frame.setLocationRelativeTo(null); + frame.setVisible(true); + + } +} diff --git a/Game/DVD.class b/Game/DVD.class new file mode 100644 index 0000000000000000000000000000000000000000..a0370bd5085ed0b7e160513fad72e5431e01f3ac GIT binary patch literal 383 zcmYLE%}T>S5dNk~nl`4kjaq-8g15wic>u*jTMA0hLnWY|Htix?niP^$eJw97DEI(A zi4WjeoW(j3ky|3YbKsWI2YMdc$>`Rq$E@?RHn*H zg5d|TjT*tzq}Q-`QB1oY%FGEHQDC;o*}p)x|pe~dPZj?0`EIS*oX!nuZg2e5SSvNFT~^mtS4Z#MwGsgWk9x>~YjEV4#i;_PN&7KDTL!;}6*P nYt*Bjxq{Pc(~oxJn|+1tjfMx4*%oT7*5J##ToDfVuY$urq5nhE literal 0 HcmV?d00001 diff --git a/Game/car.png b/Game/car.png new file mode 100644 index 0000000000000000000000000000000000000000..f4a6f5adbe71d7d83fdcfb9964a9fb6052646e82 GIT binary patch literal 21516 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 O0?dr9j2douKK&o7yA6#1 literal 0 HcmV?d00001 diff --git a/Game/road.png b/Game/road.png new file mode 100644 index 0000000000000000000000000000000000000000..9e70787e3af048d10330cb4a17e1ce7913b5dede GIT binary patch literal 2928 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 ap#KLB)rT2@^H9$K0000 Date: Thu, 21 Nov 2024 10:28:19 +0530 Subject: [PATCH 2/3] Add files via upload --- Saini.java/FlappyBird.java | 12 ++++ Saini.java/GamePanel.java | 130 +++++++++++++++++++++++++++++++++++++ 2 files changed, 142 insertions(+) create mode 100644 Saini.java/FlappyBird.java create mode 100644 Saini.java/GamePanel.java diff --git a/Saini.java/FlappyBird.java b/Saini.java/FlappyBird.java new file mode 100644 index 0000000..a5705aa --- /dev/null +++ b/Saini.java/FlappyBird.java @@ -0,0 +1,12 @@ +import javax.swing.*; + +public class FlappyBird { + public static void main(String[] args) { + JFrame frame = new JFrame("Flappy Bird"); + GamePanel gamePanel = new GamePanel(); + frame.add(gamePanel); + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.setSize(800, 600); + frame.setVisible(true); + } +} \ No newline at end of file diff --git a/Saini.java/GamePanel.java b/Saini.java/GamePanel.java new file mode 100644 index 0000000..b169ad8 --- /dev/null +++ b/Saini.java/GamePanel.java @@ -0,0 +1,130 @@ +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.util.ArrayList; +import java.util.Random; + +public class GamePanel extends JPanel implements ActionListener, KeyListener { + private int birdY = 250; + private int birdVelocity = 0; + private int gravity = 1; + private int score = 0; + private boolean gameOver = false; + private ArrayList pipes = new ArrayList<>(); + private Timer timer; + private Random random = new Random(); + + public GamePanel() { + timer = new Timer(20, this); + timer.start(); + addKeyListener(this); + setFocusable(true); + addPipe(true); + addPipe(true); + } + + private void addPipe(boolean start) { + int gap = 300; + int width = 100; + int height = 50 + random.nextInt(300); + + if (start) { + pipes.add(new Rectangle(800 + width + pipes.size() * 300, 600 - height - 120, width, height)); + pipes.add(new Rectangle(800 + width + (pipes.size() - 1) * 300, 0, width, 600 - height - gap)); + } else { + pipes.add(new Rectangle(pipes.get(pipes.size() - 1).x + 600, 600 - height - 120, width, height)); + pipes.add(new Rectangle(pipes.get(pipes.size() - 1).x, 0, width, 600 - height - gap)); + } + } + + private void movePipes() { + for (int i = 0; i < pipes.size(); i++) { + Rectangle pipe = pipes.get(i); + pipe.x -= 5; + } + + if (pipes.get(0).x + pipes.get(0).width < 0) { + pipes.remove(0); + pipes.remove(0); + addPipe(false); + score++; + } + } + + private void checkCollision() { + for (Rectangle pipe : pipes) { + if (pipe.intersects(new Rectangle(100, birdY, 30, 30))) { + gameOver = true; + } + } + + if (birdY > 570 || birdY < 0) { + gameOver = true; + } + } + + @Override + public void actionPerformed(ActionEvent e) { + birdY += birdVelocity; + birdVelocity += gravity; + + if (!gameOver) { + movePipes(); + checkCollision(); + } + + repaint(); + } + + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + g.setColor(Color.cyan); + g.fillRect(0, 0, 800, 600); + + g.setColor(Color.orange); + g.fillRect(0, 600 - 120, 800, 120); + + g.setColor(Color.green); + g.fillRect(0, 600 - 150, 800, 30); + + g.setColor(Color.red); + g.fillRect(100, birdY, 30, 30); + + for (Rectangle pipe : pipes) { + g.setColor(Color.green.darker()); + g.fillRect(pipe.x, pipe.y, pipe.width, pipe.height); + } + + g.setColor(Color.white); + g.setFont(new Font("Arial", Font.BOLD, 50)); + if (gameOver) { + g.drawString("Game Over", 300, 300); + } else { + g.drawString(String.valueOf(score), 750, 50); + } + } + + @Override + public void keyPressed(KeyEvent e) { + if (e.getKeyCode() == KeyEvent.VK_SPACE && !gameOver) { + birdVelocity = -10; + } else if (gameOver && e.getKeyCode() == KeyEvent.VK_SPACE) { + birdY = 250; + pipes.clear(); + birdVelocity = 0; + score = 0; + gameOver = false; + addPipe(true); + addPipe(true); + } + } + + @Override + public void keyReleased(KeyEvent e) { + } + + @Override + public void keyTyped(KeyEvent e) { + } +} \ No newline at end of file From 8b5b250be3a4cad1cbdd45e6974fca22a84a17d1 Mon Sep 17 00:00:00 2001 From: harshit123484 Date: Thu, 21 Nov 2024 10:41:38 +0530 Subject: [PATCH 3/3] Add files via upload --- DVD1/DVDBouncingAnimation.class | Bin 0 -> 2919 bytes DVD1/DVDBouncingAnimation.java | 92 ++++++++++++++++++++++++++++++++ 2 files changed, 92 insertions(+) create mode 100644 DVD1/DVDBouncingAnimation.class create mode 100644 DVD1/DVDBouncingAnimation.java diff --git a/DVD1/DVDBouncingAnimation.class b/DVD1/DVDBouncingAnimation.class new file mode 100644 index 0000000000000000000000000000000000000000..d09c7fc4a2a8d982527cf9d3376055df594c23a8 GIT binary patch literal 2919 zcma)833nUS75>JOJ&OE76vrenkl2l#R*}*uHK73nA-3$q0y%bLV_OL+o=DI3;L(ga z8ZQC5(0!%*-qO+*x&kGQWez^4KcJ^SqQ9i4-yJEI0y&i9<9T{_?)Kev{`KE?{|O+6 zdK?{yn20KLqRT+fbJn`GnW=5q?sDeIY0K4)fv(4F*AC7Zh$K(U?LiECOvDwsp$znn z&5ezEYi@}GBd%Ss0^4&9bWe|58ZSIMpC6l@Fks|G>K=uCBBC1aCdTs@CuZfveuW-+ z5id+#oNCAjxmV#{A$N!57W*NE!$R+Lyk&1eIPX)qf0t4e$`OU5Lh0I^scKyo(tyH8 zLeh;UX%Isujw^f=A2V=|0MA$(K_=%po=>co$HxpL3U|`8qUnS}N@Vtk10lPKlg-$L zD#q-Jc54ho9BG`A&}QgvGM_&&7pMFu6o&C2mDhAI?dv7&`?@@1Kd%iOO12E{YRO8} z2l0@?C&g^%XkjGxlqh;w;SoG)U@sMoTBX%xpP48dIMAjg^p6@$JZ4~jdwOT-rQgFc zIH&Lg&KuZgl_Y!9+F$bgil(Bo$->?8n?2F;Qm<<_$c%)N1-lk#SNqvGvKSTIIRk^q z{Qu#WsAMs&a6wA2vldu>An+y>@QMOqrNg_!KVR zPNhSU%%l~pun2t1Eqj%)e#g4bd;cM3AkL7^iI4N-U~a4w|NZ2n4YHd*Kl2-1co-YWIN7fU7}`F ztkb+Cc}Zb8O!E9hesHuCO6m<7MC4XlOHWzJr(PAT1ZXQfTb5c6hGq zS+5n@#%ySoLzwtYd{5!~_yOZY**UvrUw7EU(d3l|upcS>SWLw#-nuSuRxp=2&t-kP z!JOr+=?D-R;G<)K50vFGO!=HwrkZ^P+truWD%Z6?YlVvU&II&%(yBJ^(F&_y3iE2C z!R`z#2d!gOu9vMLS8oiRHqhS|sP?WMmkuT%!kF>a{F1(43yi+Ib^a--MNY0!&kJe+ zyI@iWD_*&lz^nT@@ki;-KPmi{w=Vo8j=$n>Cf-nZ6K@$f7S?g-r0uSIt2$E%{i6zN ziKEB!Sz+Ck_S?VPi>4{musFe%c64p1;CZWS)$IEN&_=mKaP~%3x3hovmkpC2EZZE6 z?I3fOwy-yqC~qN=N(^t|K=}J$`0Pu?w(x*F`cpS?YzxWM z4$?)6QfwO^uj4f7XX-e+gKRO;n|c?I1KSuWr0W=ao3;%6iqCVz2QL07aSL+6dl(5) z4qynq+}ekbA>|A|7qaN*78$?{hi-{)mvNk4vtOGi{)`BJ0amJb3kOrT@WA30PhR?X z>E}hxgRc+{k3@Nq-oDC+5GD!r5-C%J z@d|#^bYqdZkl}c82b;y7=eO}63MQd7icK^|VpPx6;u%zT2{N zjQs%SIgVLY#2jm2p4JxFCq;hyU16}VCOTwhHLV@tDWE% moveLogo()); + timer.start(); + } + + // Method to move the DVD logo and handle bouncing + private void moveLogo() { + // Update logo position + logoX += xSpeed; + logoY += ySpeed; + + // Bounce off left and right edges + if (logoX <= 0 || logoX + LOGO_WIDTH >= PANEL_WIDTH) { + xSpeed = -xSpeed; + changeColor(); // Change color on bounce + } + + // Bounce off top and bottom edges + if (logoY <= 0 || logoY + LOGO_HEIGHT >= PANEL_HEIGHT) { + ySpeed = -ySpeed; + changeColor(); // Change color on bounce + } + + // Repaint the panel to show the updated position + repaint(); + } + + // Method to change the logo's color randomly + private void changeColor() { + logoColor = new Color((int) (Math.random() * 255), (int) (Math.random() * 255), (int) (Math.random() * 255)); + } + + // Custom painting of the DVD logo + @Override + protected void paintComponent(Graphics g) { + super.paintComponent(g); + + // Draw the DVD logo + g.setColor(logoColor); + g.fillRect(logoX, logoY, LOGO_WIDTH, LOGO_HEIGHT); + + // Draw "DVD" text on the logo + g.setColor(Color.WHITE); + g.setFont(new Font("Arial", Font.BOLD, 20)); + g.drawString("DVD", logoX + 25, logoY + 30); + } + + // Main method to run the animation + public static void main(String[] args) { + JFrame frame = new JFrame("DVD Bouncing Animation"); + DVDBouncingAnimation animation = new DVDBouncingAnimation(); + + frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); + frame.add(animation); + frame.pack(); + frame.setLocationRelativeTo(null); // Center the window + frame.setVisible(true); + } +}