import java.applet.Applet; import java.awt.event.*; import java.awt.*; import java.util.Vector; import java.lang.Math.*; public class Eksam2b extends Applet implements Runnable,KeyListener{ int x=10; int y=10; double sammx, sammy; int a, b; double nurk=0; double raadius=50; double samm=0.05; boolean veel=true; boolean ikka=false; public Eksam2b(){ addKeyListener(this); } public void paint(Graphics g){ int a=x-(int)(raadius*Math.cos(nurk)); int b=y+(int)(raadius*Math.sin(nurk)); g.drawLine(x, y, a, b); } public void start(){ veel=true; new Thread(this).start(); } public void run(){ while(veel){ repaint(); try{Thread.sleep(10); }catch(Exception e){} } } public void stop(){ veel=false; } public void keyPressed(KeyEvent e){ Graphics p= this.getGraphics(); p.setColor(Color.white); p.drawLine(x, y, x+50, y); int kood=e.getKeyCode(); if(x>0){ if(kood==KeyEvent.VK_NUMPAD4)x=x-5; //System.out.println(x); } if(x<240){ if(kood==KeyEvent.VK_NUMPAD6)x=x+5; //System.out.println(x); } if(y>0){ if(kood==KeyEvent.VK_NUMPAD8)y=y-5; //System.out.println(y); } if(y<270){ if(kood==KeyEvent.VK_NUMPAD2)y=y+5; //System.out.println(y); } p.setColor(Color.black); p.drawLine(x, y, x+50, y); repaint(); if(kood==KeyEvent.VK_NUMPAD9){ a=x-(int)(raadius*Math.cos(nurk)); b=y-(int)(raadius*Math.sin(nurk)); nurk=nurk+samm; p.setColor(Color.black); p.drawLine(x, y, a, b); repaint(); } if(kood==KeyEvent.VK_NUMPAD7){ int a=x+(int)(raadius*Math.cos(nurk)); int b=y-(int)(raadius*Math.sin(nurk)); nurk=nurk+samm; p.setColor(Color.black); p.drawLine(x, y, a, b); repaint(); } if(kood==KeyEvent.VK_NUMPAD3){ int a=x-(int)(raadius*Math.cos(nurk)); int b=y+(int)(raadius*Math.sin(nurk)); nurk=nurk+samm; p.setColor(Color.black); p.drawLine(x, y, a, b); repaint(); } if(kood==KeyEvent.VK_NUMPAD1){ int a=x+(int)(raadius*Math.cos(nurk)); int b=y+(int)(raadius*Math.sin(nurk)); nurk=nurk+samm; p.setColor(Color.black); p.drawLine(x, y, a, b); repaint(); } if(kood==KeyEvent.VK_K){ sammx=15*Math.cos(nurk); sammy=15*Math.sin(nurk); //System.out.println(sammx+" "+sammy+" "+nurk); x=x+(int)sammx; y=y-(int)sammy; repaint(); } if(kood==KeyEvent.VK_L){ sammx=15*Math.cos(nurk); sammy=15*Math.sin(nurk); //System.out.println(sammx+" "+sammy+" "+nurk); x=x-(int)sammx; y=y+(int)sammy; repaint(); } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public static void main(String argumendid[]){ Frame f=new Frame("Autosőit"); f.setSize(300, 300); f.add(new Eksam2b()); f.setVisible(true); f.addWindowListener(new Raami2kuular()); } } class Raami2kuular extends WindowAdapter{ public void windowClosing(WindowEvent e){ System.exit(0); } }