Sei sulla pagina 1di 6

/* * To change this template, choose Tools | Templates * and open the template in the editor.

*/ package proyito; import import import import import import import import import import import java.awt.*; java.awt.event.KeyAdapter; java.awt.event.KeyEvent; java.awt.event.WindowAdapter; java.awt.event.WindowEvent; java.awt.geom.QuadCurve2D; java.awt.geom.Rectangle2D; javax.swing.JComponent; javax.swing.JFrame; javax.swing.JTextField; javax.swing.SwingUtilities;

public class dibuja extends JComponent { // AffineTransform at = new AffineTransform(); // carro car=new carro(); private final static int ANCHO =1024; private final static int ALTO = 625; private final static int DIAMETRO = 130; private float x, y; private float vx, vy; private boolean arriba, abajo, izquierda, derecha; // private int grados = 0,tim=0; public boolean Ra,Rb,Ri,Rd; public boolean RInicial=true; BasicStroke lin,linp,linf; float guiones[] = { 20 }; public dibuja() { linp=new BasicStroke(6,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND,10,g uiones,0); lin=new BasicStroke(3); setPreferredSize(new Dimension(ANCHO, ALTO)); x = 10; y = 20; addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { actualiza(e.getKeyCode(), true); } @Override public void keyReleased(KeyEvent e) { actualiza(e.getKeyCode(), false); } private void actualiza(int keyCode, boolean pressed) { switch (keyCode) { case KeyEvent.VK_UP: arriba = pressed; Ra=true; Rb=false; Ri=false; Rd=false; RInicial=false; break;

case KeyEvent.VK_DOWN: abajo = pressed; Ra=false; Rb=true; Ri=false; Rd=false; RInicial=false; break; case KeyEvent.VK_LEFT: izquierda = pressed; Ra=false; Rb=false; Rd=false; Ri=true; RInicial=false; break; case KeyEvent.VK_RIGHT: derecha = pressed; Ra=false; Rb=false; Rd=true; Ri=false; RInicial=false; break;}} }); setFocusable(true); } private float clamp(float valor, float min, float max) { if (valor > max) return max; if (valor < min) return min; return valor; } private void fisica(float dt) { vx = 0; vy = 0; if (arriba) vy = -300; if (abajo) vy = 300; if (izquierda) vx = -300; if (derecha) vx = 300; x = clamp(x + vx * dt, 17, ANCHO - DIAMETRO); y = clamp(y + vy * dt, 17, ALTO - DIAMETRO); } boolean rrebotar = true; public int ho=0; int a=1; @Override public void paint(Graphics g) { super.paint( g ); Graphics2D g2d=(Graphics2D)g; /***********************intento colision**************************************** **/ Shape1 = new Rectangle2D.Double(0, 0,0,0);

if(Rd==true){//izquierda Shape1 = new Rectangle2D.Double(Math.round(x+113), Math.round( y+33),25,42); } if(Ra==true){//arriba Shape1 = new Rectangle2D.Double(Math.round(x+30), Math.round(y-20), 42,25); } if(Rb==true){//abajo Shape1 = new Rectangle2D.Double(Math.round(x+32), Math.round(y+112) ,42,25); } if(Ri){//dereccha Shape1 = new Rectangle2D.Double(Math.round(x-15), Math.round(y+32),2 5,42); }

if((Shape1.intersects(0, 200, 600, 80)) || (Shape1.intersects(400, 400, 10 24, 80))) { Ra=false; Rb=false; Ri=false; Rd=false; RInicial=true; x=0; y=0; } /*if(a==100){ tim++; a=0; } g2d.setColor(Color.blue); g2d.setFont(new Font(" ", Font.PLAIN, 40)); g2d.drawString("puntaje: "+tim, 100, 900); System.out.println("xokes: "+ho); a++;*/ /**********************************carretra************************************* **************/ //g2d.fillRoundRect(-10, 150, 600, 80, 50, 20); g2d.setColor(Color.black); g2d.fillRect(0, 200, 600, 80); g2d.setColor(Color.red); g2d.fillRect(200, 0, 50, 70); g2d.fillRect(600,120, 50, 70); g2d.setColor(Color.black); // g2d.fillRoundRect(550, 450, 1024, 80, 50, 20); g2d.fillRect(400, 400, 1024, 80); // g2d.drawRect(550, 450, 1024, 80); g2d.setStroke(linp); g2d.setColor(Color.white); g2d.drawLine(0, 75, 700, 75); QuadCurve2D q = new QuadCurve2D.Float(700, 75, 850, 150,700, 330);

g2d.draw(q); g2d.drawLine(200,330,700,330); QuadCurve2D s = new QuadCurve2D.Float(200,330, 50, 550,200, 450); g2d.draw(s); g2d.setStroke(lin); g2d.setColor(Color.green); g2d.fillRect(900, 300, 15, 30); /*****************************************Dibujar Figura carro***************** ***************/ if(RInicial){ inicio(g); } if(Ra){ arriba(g); } if(Rd){ derecha(g); } if(Ri){ izquierda(g); } if(Rb){ abajo(g); } if((Shape1.intersects(900, 300, 15, 30))) { g2d.setColor(Color.green); g2d.setFont(new Font("Arial", Font.PLAIN, 40)); g2d.drawString("poteenciador +15", 400, 300); } if((Shape1.intersects(200,0,50,70)) ||(Shape1.intersects(600, 120, 50, 70))){ g2d.setColor(Color.red); g2d.setFont(new Font("Arial", Font.PLAIN, 40)); g2d.drawString("chocaste -10", 400, 300); System.out.println("xokes: "+ho); ho++; rrebotar = false; } } private Shape Shape1, Shape2; private void dibuja() throws Exception { SwingUtilities.invokeAndWait(new Runnable() { @Override public void run() { paintImmediately(0, 0, ANCHO,ALTO);} }); } public void cicloPrincipalJuego() throws Exception { long tiempoViejo = System.nanoTime(); while (true) { long tiempoNuevo = System.nanoTime(); float dt = (tiempoNuevo - tiempoViejo) / 1000000000f; tiempoViejo = tiempoNuevo; fisica(dt); dibuja(); }

} JTextField campo; public static void main(String[] args) throws Exception { JFrame jf = new JFrame("Proyito v 1.0"); jf.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); jf.setResizable(false); dibuja tes = new dibuja(); jf.getContentPane().add(tes); jf.pack(); jf.setSize(1024, 650); jf.setVisible(true); tes.cicloPrincipalJuego(); } public int diam=40; public void inicio(Graphics g){ Graphics2D g2=(Graphics2D)g; // Shape2=new Ellipse2D.Float(Math.round(x+40), Math.round(y+50),15,15); g2.setColor( Color.GRAY); g2.fillRect( Math.round(x), Math.round(y), 113 , 75); g2.setColor(Color.blue);g2.fillRect(Math.round(x+113), Math.round(y+33), 25,42); g2.setColor(Color.BLACK);g2.drawRect(Math.round(x+90), Math.round(y),23, 23); g2.setColor(Color.BLACK);g2.fillOval(Math.round(x+70), Math.round(y+60), diam,diam); g2.setColor(Color.black);g2.fillOval(Math.round(x+10), Math.round(y+60), diam,diam); }

public void arriba(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setColor(Color.blue);g2.fillRect(Math.round(x+30), Math.round(y-20) ,42,25); g2.setColor( Color.GRAY);g2.fillRect( Math.round(x), Math.round(y), 75, 113); g2.setColor(Color.BLACK);g2.drawRect(Math.round(x), Math.round(y),23,23) ; g2.setColor(Color.black);g2.fillOval(Math.round(x+70), Math.round(y+10), diam,diam); g2.setColor(Color.black);g2.fillOval(Math.round(x+70), Math.round(y+70),d iam,diam); } public void derecha(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setColor( Color.GRAY); g2.fillRect( Math.round(x), Math.round(y),

113, 75); g2.setColor(Color.blue);g2.fillRect(Math.round(x+113), 25,42); g2.setColor(Color.BLACK);g2.drawRect(Math.round(x+90), 23); g2.setColor(Color.BLACK);g2.fillOval(Math.round(x+70), diam,diam); g2.setColor(Color.black);g2.fillOval(Math.round(x+10), diam,diam); // }

Math.round(y+33), Math.round(y),23, Math.round(y+60), Math.round(y+60),

public void izquierda(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setColor( Color.GRAY); g2.fillRect( Math.round(x), Math.round(y), 113, 75); g2.setColor(Color.blue);g2.fillRect(Math.round(x-15), Math.round(y+32),2 5,42); g2.setColor(Color.black);g2.drawRect(Math.round(x), Math.round(y),23,23) ; g2.setColor(Color.black);g2.fillOval(Math.round(x+70), Math.round(y+60), diam,diam); g2.setColor(Color.black);g2.fillOval(Math.round(x+10), Math.round(y+60), diam,diam); } public void abajo(Graphics g) { Graphics2D g2=(Graphics2D)g; g2.setColor(Color.blue);g2.fillRect(Math.round(x+32), Math.round(y+112), 42,25); g2.setColor( Color.GRAY);g2.fillRect( Math.round(x), Math.round(y), 75, 113); g2.setColor(Color.BLACK);g2.drawRect(Math.round(x), Math.round(y+90),23, 23); g2.setColor(Color.BLACK);g2.fillOval(Math.round(x+70), Math.round(y+10), diam,diam); g2.setColor(Color.black);g2.fillOval(Math.round(x+70), Math.round(y+70), diam,diam); } }

Potrebbero piacerti anche