All pastes #445885 Raw Edit

Anonymous

public text v1 · immutable
·published 2007-04-18 04:13 UTC
rendered paste body
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.imageio.*;
import java.io.*;

public class myJPanel extends JPanel implements ActionListener, KeyListener
{
	private Timer shotTimer;
	private Timer alienTimer;
	private int shotDelay=10;
	private int alienDelay=100;
	//ship coordinates
	private int shipX=0;
	private int shipY=500;
	//shot coordinates
	private int shotX=-20;
	private int shotY=530;
	//alien coordinates
	private int alienX=10;
	private int alienY=20;
	private JButton b;
	//Direction of the aliens
	private String DirectionMoving="right";
    
	public myJPanel()
	{
		super();
		setBackground(Color.black);
		
		
		//create the timer.
		shotTimer = new Timer(shotDelay, this);
	    shotTimer.addActionListener(this);
	    
	    alienTimer = new Timer(alienDelay, this);
	    alienTimer.addActionListener(this);
	    alienTimer.start();
	
		setLayout(new BorderLayout());
		
        
		b = new JButton("");
		b.addKeyListener(this);
	    b.requestFocusInWindow();
	    
		//create the new panel, and add the buttons
        JPanel colorPanel = new JPanel();
        
        //keys
		colorPanel.add(b);
        
        //add to the panel
        add(colorPanel, BorderLayout.SOUTH);
	}

	/*****************
	 * Paint
	 *****************/
	public void paintComponent(Graphics g) 
	{		
		super.paintComponent(g);
		
		//draw the ship
		try 
		{ 
			g.drawImage(ImageIO.read(new File("ship.gif")), shipX, shipY,  null);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
		
		//draw the shot
		g.setColor(Color.red);
    	g.fillOval(shotX, shotY, 10, 10);
    	
    	//draw the aliens
    	try 
		{ 
			g.drawImage(ImageIO.read(new File("alien.gif")), alienX, alienY,  null);
		}
		catch (Exception e)
		{
			e.printStackTrace();
		}
	}
	
	/***********************
	 * Regular Actions
	 ***********************/
	public void actionPerformed(ActionEvent event) 
    {
		Object obj = event.getSource();
		
		//shots
		if(obj == shotTimer)
     	{	
			if (shotY<=0)
			{
				shotY=600;
				repaint();
				shotTimer.stop();
			}
			else
			{
				shotY-=10;
				repaint();
			}
     	}
		
		//aliens
		if(obj == alienTimer)
     	{	
			if (DirectionMoving.equals("right"))
			{
				alienX+=10;
				if (alienX>=450)
					DirectionMoving="left";
			}
			
			if (DirectionMoving.equals("left"))
			{
				alienX-=10;
				if(alienX<=5)
					DirectionMoving="right";
			}
			repaint();
     	}
	}
	
	/**********************
	 * Key Mapping
	 **********************/
	public void keyPressed(KeyEvent e) 
	{
		int x = e.getKeyCode();
		
		//left arrow
		if(x ==  e.VK_LEFT) 
	    {
			if (shipX>=10)
				shipX-=10;
	    	repaint();
	    }
		
		//Right arrow
		if(x ==  e.VK_RIGHT) 
	    {
			if (shipX<=460)
				shipX+=10;
	    	repaint();
	    }
	   
	    //Space
	    if(x ==  e.VK_SPACE) 
	    {
	    	shotX = shipX;
	    	shotTimer.start();
	    }
	}
	
	public void keyReleased(KeyEvent e) {  }
	public void keyTyped(KeyEvent e) {  }
}