package 创建游戏项目的几个基本框架;
import java.awt.Color;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/**
- Frame 窗口类
- 加载窗口,画图形,加载图片,编程中坐标的基本知识
- @author Administrator
*/
public class GameFrame extends Frame {//GUI编程:AWT,swing等等,很少用; java不擅长桌面软件
//2:调用GameUtil方法加载图片
Image img = GameUtil.getImage(“images/sun.jpg”);
//1:加载窗口;lanch框架
public void lanchFrame(){
//窗口大小
setSize(500,500);
//窗口起始位置
setLocation(100,100);
//窗口可见
setVisible(true);
//窗口监听:创建后解决 窗口关不了的方法;匿名内部类
addWindowListener(new WindowAdapter() {//鼠标右键选Source,选Override,再选windowClosing
@Override
public void windowClosing(WindowEvent e) {
System.exit(0);//System系统;exit退出;出现异常-1,正常是0;
// TODO Auto-generated method stub;这个可以删掉
}
});
}
//创建窗口画笔:鼠标右键选Source,选Override,再选window里的paint方法
@Override
public void paint(Graphics g) {
g.drawLine(100, 100, 200, 200);//相对于窗口,画笔的起始位置到终点位置;一条线
g.drawRect(100, 100, 200, 200);//矩形
g.drawOval(100, 100, 200, 200);//圆形
g.drawOval(100, 100, 300, 200);//椭圆
//设置字体大小
Font f = new Font("宋体",Font.BOLD,50);//字体,加粗,大小
g.setFont(f);//调用
g.drawString("我是王伟", 200, 200);//打印的字符串在窗口中的位置
g.fillRect(100, 100, 20, 20);//填充矩形
Color c = g.getColor();//使用后恢复原来颜色方法
//改变颜色;Color颜色 RGB:R红,G绿,B蓝;0-255;
g.setColor(Color.green);//绿色
g.fillOval(300, 300, 20, 20);//填充圆形
//super.paint(g);可以去掉:super.paint(g)是代表调用父类JApplet的paint方法
g.setColor(c);//恢复原来颜色方法
//添加画笔
g.drawImage(img, 200, 200,null);//哪张图片;图片的位置
}
public static void main(String[] args) {
GameFrame gf = new GameFrame();
//调用窗口
gf.lanchFrame();
}
}
//--------------------------------------------------------------------
package 创建游戏项目的几个基本框架;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.net.URL;
import javax.imageio.ImageIO;
/**
- 工具类(游戏中常用工具类如加载图片等)
- @author Administrator
*/
public class GameUtil {
private GameUtil(){} //工具类通常会将构造方法私有了,调用下面的就可以
//创建方法 Image图像 ;Ctrl+shift+o导入类
public static Image getImage(String path){//报出异常,把URL u = GameUtil.class.getClassLoader();异常消失
//URL 链接
URL u = GameUtil.class.getClassLoader().getResource(path);//返回一个Util对象;把URL类导入
BufferedImage img = null;//导入
try {
img = ImageIO.read(u);//导入 ;然后出现异常 捕获处理
} catch (IOException e) {
e.printStackTrace();
}
return img;//返回 ;BufferedImageshi是Image的子类,所以img可以使用
}
}