java练习小游戏:飞机大战0.2
1. 图形和文本绘制 (0.2 版)
· paint 方法
如果要在窗口中画图或者显示什么内容,需要重写 paint(Graphics g)方法。 这个方法的作用是:画出整个窗口及其内部内容。它会被系统自动调用。我们自己不需要去调用这个方法。
// paint方法作用是:换出整个窗口及内部内容,被系统自动调用。
@Override
public void paint(Graphics g) {
}
· Graphics 画笔对象_画图形
Graphics 对象,可以把它想象成“一支画笔”,窗口中的图形都由这支“画笔”画出来的。
画出每个图形都需要指定图形所在“矩形区域”的位置和大小。比如绘制椭圆。 g.drawOval(100, 50, 300, 300); 实际上,就是根据椭圆所在的外切矩形来确定椭
圆的基本信息。上面 4 个参数指的是椭圆外切矩形:左上角顶点(100px,50px),宽度300px,高度 300px。
以下Graphics相关类的使用:
@Override
public void paint(Graphics g) {
Color c = g.getColor();
// g.setColor(Color.BLUE);
g.setColor(new Color(200,50,200));
// 从坐标点(100,50)到(400,400)画出直线
g.drawLine(100,50,400,400);
// 画出矩形,矩形左上角顶点坐标(100,50),宽度300,高度300
g.drawRect(100,50,300,300);
// 画出椭圆,其外切矩形左上角坐标:(100,50),宽度300,高度300
g.drawOval(100,50,300,300);
// 画出字符串,其坐标为:(100,50)
g.drawString("This is Mr W !",100,50);
g.setColor(c);
}
2.0版本全部代码:
package plane;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
* 游戏初始窗口
*/
public class MYGameFrame extends Frame {
// paint方法作用是:换出整个窗口及内部内容,被系统自动调用。
@Override
public void paint(Graphics g) {
Color c = g.getColor();
// g.setColor(Color.BLUE);
g.setColor(new Color(200,50,200));
// 从坐标点(100,50)到(400,400)画出直线
g.drawLine(100,50,400,400);
// 画出矩形,矩形左上角顶点坐标(100,50),宽度300,高度300
g.drawRect(100,50,300,300);
// 画出椭圆,其外切矩形左上角坐标:(100,50),宽度300,高度300
g.drawOval(100,50,300,300);
// 画出字符串,其坐标为:(100,50)
g.drawString("This is Mr W !",100,50);
g.setColor(c);
}
public void launchFrame(){
//在游戏窗口答应标题
setTitle("java练习小项目");
//窗口默认不可见,设为可见
setVisible(true);
//窗口大小:宽500,高度:500
setSize(500,500);
//窗口左上角坐标位置
setLocation(300,300);
//添加关闭窗口监听,这样用户点击右上角关闭图标,可以关闭游戏程序
addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);//正常退出程序
}
});
}
public static void main(String[] args) {
MYGameFrame f = new MYGameFrame();
f.launchFrame();
}
}
运行结果: