import javax.swing.*; import java.applet.Applet; import java.awt.event.*; import java.awt.*; public class Ruuduliigutus2 extends Applet implements KeyListener, ActionListener{ int x=100, y=100, d=20; int suund=0; //0-seis, 1-vasak, 2-yles, 3-parem, 4-alla int samm=1; int takistusx=130, takistusy=50, takistuslaius=10, takistuskorgus=100; Timer t=new Timer(100, this); public Ruuduliigutus2(){ addKeyListener(this); t.start(); } public void paint(Graphics g){ g.drawRect(x, y, d, d); g.setColor(Color.red); g.fillRect(takistusx, takistusy, takistuslaius, takistuskorgus); } public void keyPressed(KeyEvent e){ int kood=e.getKeyCode(); if(kood==KeyEvent.VK_LEFT){ if(suund==1){samm++;} else{suund=1; samm=1;} } if(kood==KeyEvent.VK_RIGHT){ if(suund==3){samm++;} else{suund=3; samm=1;} } if(kood==KeyEvent.VK_UP){ if(suund==2){samm++;} else{suund=2; samm=1;} } if(kood==KeyEvent.VK_DOWN){ if(suund==4){samm++;} else{suund=4; samm=1;} } } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public void liigu(){ if(suund==1){x-=samm;} if(suund==2){y-=samm;} if(suund==3){x+=samm;} if(suund==4){y+=samm;} repaint(); if(x<0){suund=0;} if(y<0){suund=0;} if(x+d>getWidth()){suund=0;} if(y+d>getHeight()){suund=0;} if(kasRuutTakistuseSees()){suund=0;} } public void actionPerformed(ActionEvent e){ if(e.getSource()==t){ liigu(); } } public boolean kasRuutTakistuseSees(){ if(kasTakistuseSees(x, y)){return true;} if(kasTakistuseSees(x+d, y)){return true;} if(kasTakistuseSees(x, y+d)){return true;} if(kasTakistuseSees(x+d, y+d)){return true;} return false; } public boolean kasTakistuseSees(int ux, int uy){ return (ux>takistusx && uxtakistusy && uy