Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import javax.swing.*;
- import java.awt.event.*;
- import java.awt.*;
- import java.util.ArrayList;
- public class Game extends JFrame{
- Image packy;
- Rectangle hero = new Rectangle(0, 0, 50,50);
- int score = 0;
- long startTime, endTime;
- int seconds;
- int x, y;
- boolean hit = false;
- ArrayList<Gobbler> gobs = new ArrayList<Gobbler>();
- public void loadImages(){
- packy = new ImageIcon("packy.png").getImage();
- }
- public static void main(String[] args){
- new Game();
- }
- public Game(){
- setSize(1280,720);
- setTitle("Lawnmower 3000");
- setDefaultCloseOperation(3);
- setVisible(true);
- setResizable(false);
- addKeyListener(new Input());
- addGobbler(5000);
- hero.x = 50;
- hero.y = 50;
- loadImages();
- startTime = System.currentTimeMillis();
- animationLoop();
- }
- public void addGobbler(int amount){
- for(int i = 0; i < amount; i++)
- gobs.add(new Gobbler());
- }
- public void paint(Graphics g){
- if(hit){
- endTime = System.currentTimeMillis();
- seconds = (int) (endTime - startTime) / 1000;
- score += 1337 - seconds;
- startTime = endTime;
- hit = false;
- }
- Image offScreen = createImage(getWidth(), getHeight());
- draw(offScreen.getGraphics());
- g.drawImage(offScreen, 0, 0, null);
- }
- public void draw(Graphics g){
- g.setColor(Color.GRAY);
- g.fillRect(0, 0, 1280, 720);
- g.setColor(Color.GREEN);
- for(int i = 0; i < gobs.size(); i++){
- int x = gobs.get(i).getX();
- int y = gobs.get(i).getY();
- int width = gobs.get(i).rect.width;
- int height = gobs.get(i).rect.height;
- g.fillOval(x, y, width, height);
- gobs.get(i).collision();
- }
- g.drawImage(packy, hero.x, hero.y, null);
- g.setColor(Color.BLACK);
- g.drawString("Score:" + score, 25, 55);
- repaint();
- }
- private void setX(int x){
- this.x = x;
- }
- private void setY(int y){
- this.y = y;
- }
- public void update(){
- hero.x += x;
- hero.y += y;
- if(hero.x < 0)
- hero.x = 0;
- else if(hero.x > 1230)
- hero.x = 1230;
- if(hero.y < 30)
- hero.y = 30;
- else if(hero.y > 670)
- hero.y = 670;
- }
- public void animationLoop(){
- try{
- while(true){
- update();
- Thread.sleep(15);
- }
- }
- catch(InterruptedException e){
- }
- }
- private class Input implements KeyListener{
- @Override
- public void keyPressed(KeyEvent e) {
- int keyCode = e.getKeyCode();
- if(keyCode == e.VK_W){
- setY(-5);
- }
- if(keyCode == e.VK_S){
- setY(5);
- }
- if(keyCode == e.VK_A){
- setX(-5);
- }
- if(keyCode == e.VK_D){
- setX(5);
- }
- }
- @Override
- public void keyReleased(KeyEvent e) {
- int keyCode = e.getKeyCode();
- if(keyCode == e.VK_W){
- setY(0);
- }
- if(keyCode == e.VK_S){
- setY(0);
- }
- if(keyCode == e.VK_A){
- setX(0);
- }
- if(keyCode == e.VK_D){
- setX(0);
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- }
- private class Gobbler{
- Rectangle rect;
- public Gobbler(){
- rect = new Rectangle(0, 0, 20, 20);
- moveGobbler();
- }
- public int getX(){
- return rect.x;
- }
- public int getY(){
- return rect.y;
- }
- private void moveGobbler(){
- rect.x = (int) (Math.random() * 1280);
- rect.y = (int) (Math.random() * 720);
- if(rect.y < 30)
- rect.y = 30;
- else if(rect.y > 700)
- rect.y = 700;
- if(rect.x > 1260)
- rect.x = 1260;
- else if(rect.x < 7)
- rect.x = 7;
- }
- public void collision(){
- if(rect.intersects(hero)){
- moveGobbler();
- hit = true;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement