package com.sxt;
import java.awt.*;
//创建Object类来存放金块和石块的相同属性
public class Object
{
//坐标
int x;
int y;
//宽高
int width;
int height;
//图片
Image img;
//定义绘制方法
void paintSelf(Graphics g)
{
g.drawImage(img,x,y,null);
}
}
import java.awt.*;
//创建Object类来存放金块和石块的相同属性
public class Gold extends Object{
Gold()
{
//坐标
this.x=300;
this.y=500;
//宽高
this.width=52;
this.height=52;
//图片
this.img= Toolkit.getDefaultToolkit().getImage("imgs/gold1.gif");
}
}
package com.sxt;
import javax.swing.*; //导出Jframe类的方法,在继承Jframe类时会自己生成。
import java.awt.*;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class GameWin extends Jframe //创建GameWin类继承Jframe类,Jframe类本身包含鼠标事件,可以实现点击鼠标按键来不同操作。
{
Bg bg=new Bg();//创建Bg类的bg实例对象
Line line=new Line(); //创建line的实例对象
Gold gold=new Gold(); //创建Gold的实例对象
void launch(){ //定义窗口事件,无参构造方法
this.setVisible(true); //窗口可见
this.setSize(768,1000); //窗口大小
this.setLocationRelativeTo(null); //窗口位置
this.setTitle("李星沐牌黄金矿工"); //窗口名称
setDefaultCloseOperation(EXIT_ON_CLOSE); //关闭窗口操作
//在launch中添加鼠标事件
addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent e) {
super.mouseClicked(e);
if (e.getButton()==1) //1左键 2滑轮 3右键
{
line.state=1;
}
}
});
//用死循环来实现窗口的重新绘制
while (true)
{
repaint();
//降低刷新率,在循环里面设置
try {
Thread.sleep(10);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
@Override
public void paint(Graphics g) //构造paint方法实现BG中的paintSelf方法
{
bg.panintSelf(g);
line.paintSelf(g);
gold.paintSelf(g);//传入线的绘画方法
}
public static void main(String[] args) {
GameWin gameWin=new GameWin(); //在主函数里引用launch方法来实现窗口出现。
gameWin.launch();
}
}