import java.awt.*; import java.awt.event.*; import java.applet.Applet; import javax.swing.Timer; import java.util.*; public class Simulaator2 extends Applet implements KeyListener, ActionListener{ java.util.List kujundid=new ArrayList(); double lennukix=0; double lennukiy=3; double lennukikiirus=0; double kiirusemuutus=0.5; double t6us=0; double t6usumuutus=0.05; double maxt6us=0.15; double lennukiPikkus=20; int maapindEkraanil=250; double lennukEkraanilX=100; //Lennuki kaugus ekraani vasakust servast double lennuvalialgusX=0; double lennuvalipikkus=400; static final long serialVersionUID=0; Timer t=new Timer(100, this); public Simulaator2(){ addKeyListener(this); looKujundid(); //Lisage äikesepilv //Lisage maapind //Lisage teine lennuväli //Piirake lennukõrgus t.start(); } void looKujundid(){ Polygon magi1=new Polygon(); magi1.addPoint(800, maapindEkraanil); magi1.addPoint(900, maapindEkraanil-114); magi1.addPoint(1000, maapindEkraanil); kujundid.add(magi1); Polygon magi2=new Polygon(); magi1.addPoint(1600, maapindEkraanil); magi1.addPoint(1700, maapindEkraanil-114); magi1.addPoint(1750, maapindEkraanil-50); magi1.addPoint(1800, maapindEkraanil); kujundid.add(magi2); } public void actionPerformed(ActionEvent e){ if(e.getSource()==t){ lennukix+=lennukikiirus; if(lennukikiirus>10){ lennukiy+=lennukikiirus*t6us; } Iterator it=kujundid.iterator(); while(it.hasNext()){ Polygon p=(Polygon)it.next(); if(p.intersects(lennukix, maapindEkraanil-lennukiy, lennukiPikkus, 5)){ t.stop(); } } repaint(); } } //Arvutab ekraanikoordinaadid ümber maailmakoordinaatideks int ex(double mx){ return (int)(lennukEkraanilX-lennukix+mx); } public void paint(Graphics g0){ Graphics2D g=(Graphics2D)g0; double lennukiy2=lennukiy+t6us*lennukiPikkus; g.drawLine((int)(lennukEkraanilX), (int)(maapindEkraanil-lennukiy), (int)(lennukEkraanilX+lennukiPikkus), (int)(maapindEkraanil-lennukiy2)); g.fillRect(ex(lennuvalialgusX), (int)maapindEkraanil, (int)lennuvalipikkus, 10); g.translate((int)(lennukEkraanilX-lennukix), 0); Iterator it=kujundid.iterator(); while(it.hasNext()){ g.fillPolygon((Polygon)it.next()); } } public void keyPressed(KeyEvent e){ int kood=e.getKeyCode(); if(kood==KeyEvent.VK_UP){if(t6us-maxt6us){t6us-=t6usumuutus;}} if(kood==KeyEvent.VK_RIGHT){lennukikiirus+=kiirusemuutus;} if(kood==KeyEvent.VK_LEFT){lennukikiirus-=kiirusemuutus;} repaint(); } public void keyReleased(KeyEvent e){} public void keyTyped(KeyEvent e){} public static void main(String[] arg){ Frame f=new Frame("Simulaator"); f.add(new Simulaator2()); f.setSize(300, 300); f.setVisible(true); } }