birdpanel.java
来自「本程序是用多线程实现了打飞鸟游戏程序」· Java 代码 · 共 82 行
JAVA
82 行
/*
* birdpanel.java
*
* Created on 2001年12月27日, 下午3:43
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
package shoot_birds;
import java.awt.*;
//import java.awt.event.MouseMotionListener;
import java.util.ArrayList;
import javax.swing.*;
/**
*
* @author open
*/
public class birdpanel extends JPanel
{
/**
Add a ball to the panel.
@param b the ball to add
*/
public birdpanel()
{
// 注册鼠标点击的注册器,在这里主要是单击,单击表示射击
MouseListener listener=new MouseListener(this);
// 添加鼠标的移动注册器,在这里用作瞄准
MouseMove move=new MouseMove(this);
this.addMouseListener(listener);
this.addMouseMotionListener(move);
}
public void add(bird b)
{
birds.add(b);
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
//加载背景图片
String a = System.getProperty("user.dir");
ImageIcon icon=new ImageIcon(a+"\\shoot_birds\\images\\background.jpg");
this.setBackground(Color.BLUE);
Graphics2D g2 = (Graphics2D) g;
g2.drawImage(icon.getImage(),0,0,icon.getIconWidth(),icon.getIconHeight(),Color.CYAN,this);
//设置画笔粗细
g2.setStroke(new BasicStroke(5.0f));
//设置画笔颜色
g2.setColor(Color.RED);
//画直线,用于瞄准
g2.drawLine(x1,y1,x2,y2);
for (bird b : birds)
{
if(!b.isLeave())
//g2.fill(b.getShape());
g2.drawImage(b.getImage(),b.getX(),b.getY(),b.getImageX(),b.getImageY(),this);
}
}
//返回图中的所有鸟的实例
public ArrayList<bird> getList()
{
return birds;
}
public void drawLine(int x,int y)
{
x2=x;
y2=y;
repaint();
}
private int x1=130,y1=260,x2=130,y2=260;//直线是在一个半园范围内,线段端点的初始值
private ArrayList<bird> birds = new ArrayList<bird>();
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?