import java.applet.Applet; import java.awt.*; import java.awt.event.*; public class ring1 extends Applet implements Runnable, KeyListener{ int ringisuurus=60; int ringiX=200; int ringiY=200; int r=ringisuurus/2; int kastiX=50; int kastiY=50; int kastisuurus=80; int nurk=45; int samm=15; int kastisamm=23; int kaike=0; boolean veel; TextField tx=new TextField(""); TextField k=new TextField(""); int laius=700, korgus=700; public ring1(){ // add(tx); // add(k); addKeyListener(this); requestFocus(); setBackground(new Color(63, 96, 90)); } public void start(){ veel=true; new Thread(this).start(); } public void run(){ while(veel){ if(nurk>360)nurk-=360; if(nurk<0)nurk+=360; ringiX+=(int)(Math.cos(Math.toRadians(nurk))*samm); //seinte juures põramine ringiY+=(int)(Math.sin(Math.toRadians(nurk))*samm); //seinte juures põrkamine if((ringiX-r<=0 || ringiX+r>=laius-10)){ nurk=180-nurk; } if(ringiY-r<=0 || ringiY+r>=korgus-40){ nurk=360-nurk; } //kasti juures põrkamine if((ringiY+r>=kastiY && ringiY+r=kastiX && ringiX<=kastiX+kastisuurus && nurk<180)||(ringiY-r>kastiY && ringiY-r<=kastiY+kastisuurus && ringiX>=kastiX && ringiX<=kastiX+kastisuurus && nurk>=180))nurk=360-nurk; //ülevalt, alt //else if(ringiY-r>kastiY && ringiY-r<=kastiY+kastisuurus && ringiX>=kastiX && ringiX<=kastiX+kastisuurus && nurk>=180)nurk=360-nurk; //alt else if(((ringiX+r>=kastiX && ringiX+r=kastiY && ringiY<=kastiY+kastisuurus && ((nurk>=0 && nurk<=90)||(nurk>=270 && nurk<=360))))||(ringiX-r>kastiY && ringiX-r<=kastiY+kastisuurus && ringiY>=kastiY && ringiY<=kastiY+kastisuurus && nurk>90 && nurk<270))nurk=180-nurk; //vasakult, paremalt // else if(ringiX-r>kastiY && ringiX-r<=kastiY+kastisuurus && ringiY>=kastiY && ringiY<=kastiY+kastisuurus && nurk>90 && nurk<270)nurk=180-nurk; //paremalt repaint(); kaike++; try{Thread.sleep(50);}catch(Exception e){} } } public void update(Graphics g){ paint(g); } public void paint(Graphics g){ Image puhver=createImage(getSize().height, getSize().width); Graphics p=puhver.getGraphics(); p.setColor(Color.green); p.drawOval(ringiX-r, ringiY-r, ringisuurus, ringisuurus); p.fillOval(ringiX-r, ringiY-r, ringisuurus, ringisuurus); p.setColor(Color.blue); p.drawRect(kastiX,kastiY, kastisuurus, kastisuurus); p.fillRect(kastiX,kastiY, kastisuurus, kastisuurus); g.drawImage(puhver, 0, 0, this); } public void keyPressed(KeyEvent e){ int nupp=e.getKeyCode(); if((nupp==KeyEvent.VK_LEFT) && (kastiX>0))kastiX-=kastisamm; if((nupp==KeyEvent.VK_RIGHT) && (kastiX+kastisuurus0))kastiY-=kastisamm; if((nupp==KeyEvent.VK_DOWN) && (kastiY+kastisuurus