Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.company;
- import javax.imageio.ImageIO;
- import javax.swing.*;
- import java.awt.*;
- import java.awt.event.MouseAdapter;
- import java.awt.event.MouseEvent;
- import java.io.IOException;
- import java.lang.invoke.ConstantCallSite;
- public class GameWindow extends JFrame {
- private static GameWindow game_window;
- private static long LastFrameTime;
- private static Image background;
- private static Image drop;
- private static Image GameOver;
- private static Image restart;
- private static float drop_left = 200;
- private static float drop_top = 100;
- private static float drop_v = 200;
- private static int score = 0;
- private static boolean end;
- private static float drop_width = 100;
- private static float drop_height = 152;
- private static boolean pause = false;
- private static float drop_speed_save = 0;
- private static double mousecordX = 0;
- private static double mousecordY = 0;
- public static void main(String[] args) throws IOException {
- background= ImageIO.read(GameWindow.class.getResourceAsStream("background.png"));
- drop = ImageIO.read(GameWindow.class.getResourceAsStream("drop.png")).
- getScaledInstance (100, 100, Image.SCALE_DEFAULT);
- GameOver = ImageIO.read(GameWindow.class.getResourceAsStream("GameOver.jpg")).
- getScaledInstance (300, 200, Image.SCALE_DEFAULT);
- restart = ImageIO.read(GameWindow.class.getResourceAsStream("restart.jpg"));
- game_window = new GameWindow();
- game_window.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
- game_window.setLocation (200, 100);
- game_window.setSize(1200, 850);
- game_window.setResizable(false);
- LastFrameTime=System.nanoTime();
- GameField game_field = new GameField();
- game_field.addMouseListener(new MouseAdapter() {
- @Override
- public void mousePressed(MouseEvent e) {
- if(e.getButton() == MouseEvent.BUTTON3){
- if(pause) {
- pause = false;
- drop_v = drop_speed_save;
- }
- else{
- drop_speed_save = drop_v;
- drop_v = 0;
- mousecordX = MouseInfo.getPointerInfo().getLocation().getX();
- mousecordY = MouseInfo.getPointerInfo().getLocation().getY();
- pause = true;
- }
- }
- if (pause) return;
- int x = e.getX();
- int y = e.getY();
- try {
- Robot r = new Robot();
- r.mouseMove((int)mousecordX, (int)mousecordY);
- }
- catch (AWTException ee){
- }
- float drop_right = drop_left + drop.getWidth(null);
- float drop_bottom = drop_top + drop.getHeight(null);
- boolean is_drop = x >= drop_left && x <= drop_right && y >= drop_top && y <= drop_bottom;
- if (is_drop) {
- if(!(drop_height<=25 && drop_width <= 50)){
- drop_width = drop_width - 1;
- drop_height = drop_height - 2;
- try{
- dropResize();
- }
- catch (IOException ioe){
- }
- }
- drop_top= -100;
- drop_left = (int) (Math.random() * (game_field.getWidth() - drop.getWidth(null)));
- drop_v = drop_v +30;
- score++;
- game_window.setTitle("Score: " + score);
- }
- if (end) {
- boolean isRestart = x>=250 && x <= 250 + restart.getWidth(null)
- && y >= 200 && y <= 200 + restart.getHeight(null);
- if (isRestart) {
- end = false;
- score = 0;
- game_window.setTitle("Score" + score);
- drop_top = -100;
- drop_left = (int)(Math.random()*(game_field.getWidth()-drop.getHeight(null)));
- drop_v = 200;
- drop_width = 100;
- drop_height = 152;
- }
- }
- }
- });
- game_window.add (game_field);
- game_window.setVisible(true);
- }
- private static void dropResize() throws IOException{
- drop = ImageIO.read(GameWindow.class.getResourceAsStream("drop.png")).
- getScaledInstance ((int) drop_width,(int)drop_height, Image.SCALE_DEFAULT);
- }
- private static void onRepaint(Graphics g){
- long currentTime = System.nanoTime();
- float delta_time = (currentTime - LastFrameTime)*0.000000001f;
- LastFrameTime = currentTime;
- drop_top=drop_top+drop_v*delta_time;
- g.drawImage(background, 0, 0, null);
- g.drawImage(drop, (int) drop_left,(int) drop_top,null);
- if (drop_top > game_window.getHeight()){
- g.drawImage(GameOver, 100, 100, null);
- g.drawImage(restart, 250, 200, null);
- end = true;
- }
- }
- private static class GameField extends JPanel{
- @Override
- protected void paintComponent(Graphics g){
- super.paintComponent(g);
- onRepaint(g);
- repaint();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement