Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.awt.Color;
- import java.awt.Graphics;
- import java.awt.Graphics2D;
- import java.awt.Toolkit;
- import java.awt.event.KeyAdapter;
- import java.awt.event.KeyEvent;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Vector;
- import javax.swing.JPanel;
- public class DodgeEm extends JPanel implements Runnable{
- private Thread animator;
- private ControlledSprite dodger;
- private Vector<AutomatedSprite> trolls = new Vector<AutomatedSprite>(6);
- private final int DELAY = 50;
- public DodgeEm(){
- this.setSize(800, 600);
- this.setBackground(Color.BLACK);
- this.addKeyListener(new KAdapter());
- setFocusable(true);
- setDoubleBuffered(true);
- dodger = new ControlledSprite("images/shock_face.png", this.getSize().width / 2, this.getSize().height / 2, 0);
- System.out.println(trolls.capacity());
- animator = new Thread(this);
- animator.start();
- }
- public void paintComponent(Graphics g){
- super.paintComponent(g);
- Graphics2D g2d = (Graphics2D)g;
- g2d.drawImage(dodger.getImage(), dodger.getX(), dodger.getY(), null);
- for(Sprite troll : trolls)
- g2d.drawImage(troll.getImage(), troll.getX(), troll.getY(), null);
- Toolkit.getDefaultToolkit().sync();
- g.dispose();
- }
- public void checkTrolls(){
- for(AutomatedSprite a : trolls){
- if(a.getX() < 0 - a.getImage().getWidth())
- trolls.remove(a);
- if(a.getY() < 0 - a.getImage().getWidth())
- trolls.remove(a);
- if(a.getX() > 800)
- trolls.remove(a);
- if(a.getY() > 600)
- trolls.remove(a);
- }
- }
- @Override
- public void run() {
- long beforeTime, timeDiff, sleep;
- beforeTime = System.currentTimeMillis();
- while(true){
- dodger.update(); //update sprite
- if(trolls.size() != 6){
- trolls.add(new AutomatedSprite("images/troll_face.png"));
- }
- for(Sprite troll : trolls){
- troll.update();
- }
- checkTrolls();
- repaint();
- for(Sprite troll : trolls){
- System.out.println("X: " + troll.getX());
- System.out.println("Y: " + troll.getY());
- }
- timeDiff = System.currentTimeMillis() - beforeTime;
- sleep = timeDiff - DELAY;
- if(sleep < 0)
- sleep = 5;
- try {
- Thread.sleep(sleep);
- } catch (InterruptedException e) { e.printStackTrace(); }
- beforeTime = System.currentTimeMillis();
- }
- }
- private class KAdapter extends KeyAdapter{
- public void keyReleased(KeyEvent e) {
- dodger.keyReleased(e);
- }
- public void keyPressed(KeyEvent e) {
- dodger.keyPressed(e);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement