import java.applet.Applet; import java.awt.event.*; import java.awt.*; public class Auto2 extends Applet implements KeyListener, Runnable{ double x=100, y=100; double nurk=0, pikkus=100, samm=10; boolean algus=true; public Auto2(){ addKeyListener(this); } public void paint(Graphics g){ double x2=x+pikkus*Math.cos(nurk); //tuleb välja arvutada eraldi kriips ja ring et nad ei laguneks laiali ega double y2=y+pikkus*Math.sin(nurk); //läheks proportsioonist välja g.drawLine((int)x, (int)y, (int)x2, (int)y2); g.drawOval((int)x-5, (int)y-5, 10, 10); } public void run(){ while(true){ x=x+Math.cos(nurk)*samm; // määratakse ära liikumine koordinaatidel vastavalt sammu pikkusele y=y+Math.sin(nurk)*samm; repaint(); try{Thread.sleep(200);} catch(Exception ex){} //määrab aja kaua auto ootab (200 millisekundit) } } public void keyPressed(KeyEvent e){ if(algus){ new Thread(this).start(); algus=false; } int kood=e.getKeyCode(); if(kood==KeyEvent.VK_LEFT)nurk=nurk-0.1; //liikumine vasakule if(kood==KeyEvent.VK_RIGHT)nurk=nurk+0.1;//liikumine paremale if(kood==KeyEvent.VK_UP){ samm=samm+1; //edasi liikumine lisades kiirust } if(kood==KeyEvent.VK_DOWN){ samm=samm-1;//tagurpidi liikumine vähendades sammu } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public static void main(String argumendid[]){ Frame f=new Frame("Autosõit"); f.add(new Auto2()); f.setSize(700, 700); f.setVisible(true); } }