Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package gra;
- import java.applet.Applet;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.event.KeyEvent;
- import java.awt.event.KeyListener;
- import java.io.File;
- import java.io.IOException;
- import java.util.Random;
- import javax.imageio.ImageIO;
- import javax.swing.ImageIcon;
- class Samochod {
- int x;
- int y;
- 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;
- }
- public int getSrednica() {
- return srednica;
- }
- public void setSrednica(int srednica) {
- this.srednica = srednica;
- }
- int srednica=50;
- Image samochod;
- public Samochod(int x, int y) {
- this.x=x;
- this.y=y;
- try {
- samochod=ImageIO.read(new File("samochod.png"));
- } catch (IOException ex) {}
- }
- public void update(Gra gra)
- {
- if(x+srednica>=gra.getWidth())
- {
- x= gra.getWidth()-srednica;
- }
- else if(x<=0)
- {
- x=0;
- }
- if(y<0)
- {
- y=0;
- }
- else if(y+srednica>=gra.getHeight())
- {
- y=gra.getHeight()-srednica;
- }
- else
- {
- y++;
- }
- }
- public void paint(Graphics g )
- {
- //g.fillOval(x, y, srednica, srednica);
- g.drawImage(samochod, x, y, null);
- }
- void ruchLewo() {
- x-=20;
- this.samochod=samochod;
- }
- void ruchPrawo() {
- x+=20;
- this.samochod=samochod;
- }
- void pozWyjsciowa() {
- this.samochod=samochod;
- }
- }
- class Policja {
- private int x, y;
- private int srednica=50;
- private Image policja;
- public Policja(int x, int y)
- {
- this.x=x;
- this.y=y-srednica;
- try {
- policja= ImageIO.read(new File("policja.png"));
- } catch (IOException ex) {}
- }
- public void update(Gra gr, Samochod samochod)
- {
- if(y>=gr.getHeight())
- {
- y= 0-srednica;
- }
- else
- {
- y++;
- y++;
- }
- sprKolizja(samochod);
- }
- public void sprKolizja(Samochod samochod)
- {
- int samochodX=samochod.getX();
- int samochodY=samochod.getY();
- int promienSamochodu=samochod.getSrednica()/2;
- int a= samochodX-x;
- int b=samochodY-y;
- int sumaProm= promienSamochodu+srednica/2;
- double c=Math.sqrt((double)(a*a)+(double)(b*b));
- if(c<sumaProm)
- {
- //samochod.setX(300);
- //samochod.setY(600);
- }
- }
- public void stop(Thread t){
- t.stop();
- }
- public void paint(Graphics g)
- {
- // g.fillOval(x, y, srednica, srednica);
- g.drawImage(policja, x, y, null);
- }
- }
- public class Gra extends Applet implements Runnable, KeyListener
- {
- private Image img;
- private Graphics gg;
- private Samochod samochod;
- private Policja []przeszkody=new Policja[6];
- private Image tlo;
- @Override
- public void init() {
- setSize(500, 600);
- addKeyListener(this);
- }
- @Override
- public void start() {
- samochod=new Samochod(250,600);
- for(int i=0; i<przeszkody.length;i++)
- {
- Random r= new Random();
- przeszkody[i]=new Policja(r.nextInt(450),-(r.nextInt(600)));
- }
- Thread t= new Thread(this);
- t.start();
- }
- @Override
- public void update(Graphics g) {
- if(img==null)
- {
- img=createImage(this.getSize().width, this.getSize().height);
- gg=img.getGraphics();
- }
- gg.setColor(getBackground());
- gg.fillRect(0, 0, getSize().width, getSize().height);
- gg.setColor(getForeground());
- paint(gg);
- g.drawImage(img, 0, 0, this);
- }
- @Override
- public void paint(Graphics g) {
- samochod.paint(g);
- for(int i=0; i<przeszkody.length;i++)
- {
- przeszkody[i].paint(g);
- }
- }
- @Override
- public void run() {
- while(true){
- samochod.update(this);
- for(int i=0; i<przeszkody.length;i++)
- {
- przeszkody[i].update(this, samochod);
- }
- repaint();
- try {
- Thread.sleep(20);
- } catch (InterruptedException ex) {}
- }
- }
- @Override
- public void keyPressed(KeyEvent e) {
- switch(e.getKeyCode())
- {
- case KeyEvent.VK_LEFT:
- samochod.ruchLewo();
- break;
- case KeyEvent.VK_RIGHT:
- samochod.ruchPrawo();
- break;
- }
- }
- @Override
- public void keyTyped(KeyEvent e) {
- }
- @Override
- public void keyReleased(KeyEvent e) {
- samochod.pozWyjsciowa();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement