package ui; import javax.swing.JFrame; /** * 自定义窗体类的步骤: * 1.写一个类,继承JFrame,在类名后面加extends JFrame * 2.写一个构造方法,初始化窗体的属性 * */ //定义一个GameFrame类,窗体类:JFrame public class GameFrame extends JFrame{ /** * 构造方法:创建对象 */ public GameFrame(){ //设置标题 setTitle("你好今天"); //设置大小setSize(宽度,高度) setSize(460,670); //设置位置居中显示 setLocationRelativeTo(null); //设置默认的关闭选项 setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } /** * * @param Java程序入口:main 方法,没有它,进入不到程序中 * 格式固定 */ public static void main(String[] args){ //创建窗体对象: //格式:类名 对象名=new 类名() GameFrame frame=new GameFrame(); //创建面板对象 GamePanel panel=new GamePanel(); //将面板加入窗体中 frame.add(panel); //显示窗体:true显示窗体 false隐藏窗体 frame.setVisible(true); } }

 
package ui; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.awt.event.KeyAdapter; import java.awt.event.KeyEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import java.awt.image.BufferedImage; import javax.swing.JPanel; /** * Java中的面板:JPanel * * * @author Administrator * */ public class GamePanel extends JPanel { //定义背景图片 BufferedImage bg; // BufferedImage zj; BufferedImage zd; BufferedImage dj; BufferedImage dj1; BufferedImage xl; BufferedImage dd; //定义英雄机 Hero hero=new Hero(); public GamePanel(){ //加载背景图片 bg=App.getImg("/img/bg3.jpg"); // zj=App.getImg("/img/hero.png"); zd=App.getImg("/img/fire.png"); dj=App.getImg("/img/ep01.png"); dj1=App.getImg("/img/ep02.png"); xl=App.getImg("/img/score.png"); dd=App.getImg("/img/ep15.png"); //设置背景(颜色大小写都可以,大写常量,小写变量) setBackground(Color.black); //创建键盘适配器 KeyAdapter key=new KeyAdapter(){ public void keyPressed(KeyEvent e){ //获取按键 char c=e.getKeyChar(); if(c=='w'){ hero.moveUp(); }else if(c=='a'){ hero.moveLeft(); }else if(c=='s'){ hero.moveDown(); }else if(c=='d'){ hero.moveRight(); } repaint(); //System.out.println(c); } }; addKeyListener(key); // frame.addKeyListener(key); //创建鼠标适配器 固定的 /* MouseAdapter adapter = new MouseAdapter(){ public void mouseMoved(MouseEvent e) { //当鼠标移动时会执行此方法 //获取鼠标的坐标 int mx=e.getX(); int my=e.getY(); //System.out.println(mx+","+my); //让英雄机移动到鼠标的位置 hero.moveTo(mx,my); //重新调用paint方法,重绘界面(刷新界面) repaint(); } }; //添加鼠标监听器 addMouseListener(adapter); addMouseMotionListener(adapter); */ } /** * 画图的方法 * Graphics g 手中的画笔 */ @Override //虚拟机自动调用paint方法 public void paint(Graphics g) { // TODO Auto-generated method stub super.paint(g); //设置画笔的颜色 //g.setColor(Color.red); //设置画笔的字体 //Font f=new Font("隶书",Font.BOLD,30); //g.setFont(f); //画文字drawString(文字,横坐标,纵坐标) //g.drawString("我将带头冲锋", 100, 100); //画矩形 drawRect(横坐标,纵坐标,宽度,高度) //g.drawRect(int x,int y,w, h) // // //画实心矩形,日本国旗 g.setColor(Color.red); g.fillRect(20, 20, 200,100); // // //画实心的矩形,设置颜色,中国国旗 // g.setColor(Color.red); // g.fillRect(300, 50, 260, 210); // // //画圆 // // g.drawOval(50, 50, 50, 50); // // //画实心圆,设置颜色 // g.setColor(Color.red); // g.fillOval(130, 130, 60, 60); // //画五角星 设置颜色 // g.setColor(Color.yellow); // g.drawString("★",350,100); // //第一个小的五角星 // Font f1=new Font("隶书",Font.BOLD,12); // g.setFont(f1); // g.setColor(Color.yellow); // g.drawString("★",370,70); // //第二个小的五角星 // Font f2=new Font("隶书",Font.BOLD,12); // g.setFont(f2); // g.setColor(Color.yellow); // g.drawString("★",385,85); // //第三个小的五角星 // Font f3=new Font("隶书",Font.BOLD,12); // g.setFont(f3); // g.setColor(Color.yellow); // g.drawString("★",385,100); // //第四个小的五角星 // Font fr=new Font("隶书",Font.BOLD,12); // g.setFont(fr); // g.setColor(Color.yellow); // g.drawString("★",370,115); // //美国国旗 // g.setColor(Color.white); // g.fillRect(10, 300, 500,260); // // g.setColor(Color.blue); // g.fillRect(10, 300, 200, 140); // g.setColor(Color.red); // g.fillRect(210, 300,300, 20); // g.setColor(Color.red); // g.fillRect(210, 340,300, 20); // g.setColor(Color.red); // g.fillRect(210, 380,300, 20); // g.setColor(Color.red); // g.fillRect(210, 420,300, 20); // g.setColor(Color.red); // g.fillRect(10, 460,500, 20); // g.setColor(Color.red); // g.fillRect(10, 500,500, 20); // g.setColor(Color.red); // g.fillRect(10, 540,500, 20); //画背景图 //drawImage(图片,x,y,画多宽(),画多高(heigth),null) g.drawImage(bg,0,0,512,768,null ); // g.drawImage(zj,150,400,50,60,null ); g.drawImage(dj,170,100,50,60,null ); g.drawImage(dj1,1,1,50,60,null ); g.drawImage(zd,170,240,50,60,null ); g.drawImage(xl,400,1,50,60,null ); g.drawImage(dd,180,160,30,40,null); //画英雄机 g.drawImage(hero.img, hero.x, hero.y, hero.w, hero.h, null); } } 

 

 

 

 

 

package ui;

import java.awt.image.BufferedImage;
import java.io.IOException;

import javax.imageio.ImageIO;

/**
 * 游戏的工具类
 * @author Administrator
 *
 */
public class App {
	/**
	 * 根据指定路径去读取读片
	 * @param path 图片的路径
	 * @return
	 */
	
	public static BufferedImage getImg(String path){
		//加载图片
		try{	
				BufferedImage img= ImageIO.read(App.class.getResource(path));
		//如果根据地址找到了,就返回
		return img;
		}catch(IOException e){
			//如果找不到,下面这行代码会告诉为什么找不到
			e.printStackTrace();
		}
		return null;
	}

}

 

package ui;

import java.awt.image.BufferedImage;

/**
 * 英雄机
 * @author Administrator
 *
 */
public class Hero {
	//英雄机的图片
	BufferedImage img;
	int x;//英雄机横坐标
	int y;//英雄机纵坐标
	int w;//英雄机的宽度
	int h;//英雄机的高度
   	public Hero(){
   		//加载英雄机图片
   		img=App.getImg("/img/hero.png");
   		//获取图片的高度和高度
   		w=img.getWidth();
   		h=img.getHeight();
      //设置英雄机的初始位置
   		x=200;
   		y=520;
   		
   	}
   	
   	//让英雄机跟着鼠标移动的方法,mx 鼠标的横坐标  my 鼠标的纵坐标
/*     public void moveTo(int mx, int my) {
		x=mx-w/2;
		y=my-h/2;
		
	}
 */
	public void moveUp() {
		++y;
		
	}

	public void moveLeft() {
		// TODO Auto-generated method stub
		--x;
	}
  public void moveRight(){
	    ++x;
 }	
	
public void moveDown(){
    --y;
	 }
	

}

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值