Advertisement
Guest User

mastrgamr

a guest
Jan 11th, 2012
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.55 KB | None | 0 0
  1. import java.awt.Color;
  2. import java.awt.Graphics;
  3. import java.awt.Graphics2D;
  4. import java.awt.Toolkit;
  5. import java.awt.event.KeyAdapter;
  6. import java.awt.event.KeyEvent;
  7. import java.util.ArrayList;
  8. import java.util.List;
  9. import java.util.Vector;
  10.  
  11. import javax.swing.JPanel;
  12.  
  13. public class DodgeEm extends JPanel implements Runnable{
  14.    
  15.     private Thread animator;
  16.     private ControlledSprite dodger;
  17.     private Vector<AutomatedSprite> trolls = new Vector<AutomatedSprite>(6);
  18.     private final int DELAY = 50;
  19.    
  20.     public DodgeEm(){
  21.         this.setSize(800, 600);
  22.         this.setBackground(Color.BLACK);
  23.         this.addKeyListener(new KAdapter());
  24.         setFocusable(true);
  25.         setDoubleBuffered(true);
  26.        
  27.         dodger = new ControlledSprite("images/shock_face.png", this.getSize().width / 2, this.getSize().height / 2, 0);
  28.         System.out.println(trolls.capacity());
  29.        
  30.         animator = new Thread(this);
  31.         animator.start();
  32.     }
  33.    
  34.     public void paintComponent(Graphics g){
  35.         super.paintComponent(g);
  36.        
  37.         Graphics2D g2d = (Graphics2D)g;
  38.         g2d.drawImage(dodger.getImage(), dodger.getX(), dodger.getY(), null);
  39.        
  40.         for(Sprite troll : trolls)
  41.             g2d.drawImage(troll.getImage(), troll.getX(), troll.getY(), null);
  42.        
  43.         Toolkit.getDefaultToolkit().sync();
  44.         g.dispose();
  45.     }
  46.    
  47.     public void checkTrolls(){
  48.         for(AutomatedSprite a : trolls){
  49.             if(a.getX() < 0 - a.getImage().getWidth())
  50.                 trolls.remove(a);
  51.             if(a.getY() < 0 - a.getImage().getWidth())
  52.                 trolls.remove(a);
  53.             if(a.getX() > 800)
  54.                 trolls.remove(a);
  55.             if(a.getY() > 600)
  56.                 trolls.remove(a);
  57.         }
  58.     }
  59.    
  60.     @Override
  61.     public void run() {
  62.         long beforeTime, timeDiff, sleep;
  63.        
  64.         beforeTime = System.currentTimeMillis();
  65.        
  66.         while(true){
  67.             dodger.update(); //update sprite
  68.             if(trolls.size() != 6){
  69.                 trolls.add(new AutomatedSprite("images/troll_face.png"));
  70.             }
  71.             for(Sprite troll : trolls){
  72.                 troll.update();
  73.             }
  74.             checkTrolls();
  75.             repaint();
  76.            
  77.             for(Sprite troll : trolls){
  78.                 System.out.println("X: " + troll.getX());
  79.                 System.out.println("Y: " + troll.getY());
  80.             }
  81.            
  82.             timeDiff = System.currentTimeMillis() - beforeTime;
  83.             sleep = timeDiff - DELAY;
  84.            
  85.             if(sleep < 0)
  86.                 sleep = 5;
  87.            
  88.             try {
  89.                 Thread.sleep(sleep);
  90.             } catch (InterruptedException e) { e.printStackTrace(); }
  91.            
  92.             beforeTime = System.currentTimeMillis();
  93.         }
  94.     }
  95.    
  96.     private class KAdapter extends KeyAdapter{
  97.         public void keyReleased(KeyEvent e) {
  98.             dodger.keyReleased(e);
  99.         }
  100.  
  101.         public void keyPressed(KeyEvent e) {
  102.             dodger.keyPressed(e);
  103.         }
  104.     }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement