贪吃蛇之界面绘制

帧:可以把每一个动画和游戏是由帧组成的,当帧的时间片足够小,就是动画,1秒30帧。连起来是动画,拆开是静态图片。贪吃蛇就相当于一个一个帧组成的。

实现贪吃蛇要有:

帧动画

键盘监听事件

定时器:Timer

 

package WyktJpxc;

import javax.swing.*;
import java.awt.*;
import java.net.URL;
import java.util.Date;
import java.util.Scanner;
//创建一个游戏界面类,也是主启动类
public class SrartGame {

    public static void main(String[] args) {
        //创建游戏窗体
        JFrame frame=new JFrame("贪吃蛇流");
        //关闭窗口事件
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
         
         //设置窗口的初始位置及大小,注:每个游戏窗口的大小需要进行计算,不能随便写
         frame.setBounds(100,100,900,700);
         //设置窗口大小不可变
         frame.setResizable(false);
         //游戏界面都应该在面板上,把游戏面板添加到游戏中
         frame.add(new GamePanel());
         
         
        //设置窗口可见性
         frame.setVisible(true);
    }
}

//创建游戏的面板
class GamePanel extends JPanel{
    
    //绘制面板的方法,这个方法是JPanel类中自带的画组件方法,我们游戏所有的东西,都使用这个画笔来画
    protected void paintComponent(Graphics g){
        super.paintComponent(g);//这个调用父类的方法不用清除,这个方法是只,如果UI等于null,那他就会自动的清屏一下
       //绘制静态的面板
        this.setBackground(Color.BLACK);//为面板设置一个颜色
        //将头部图片header图片画到,“this”:当前面板,g:用当前方法中的画笔。xy坐标分别为:25,11
        Data.header.paintIcon(this,g,25,11);
        //绘制蛇活动的黑色界面框,x坐标要和头部图片的x坐标一致
        g.fillRect(25,75,850,600);
        
        
        
    }
    
}
package WyktJpxc;

import javax.swing.*;
import java.net.URL;
import java.util.Date;
//创建游戏的数据中心,来存放游戏中的所有数据
class Data{
    //使用绝对路径来获取图片的位置 “/”:当前项目
    public static URL headerURL= Date.class.getResource("/statics/header.png");//表示从“/”:当项目的statics包中获取到名为header.png的头部图片
    //把头部图片转化为图标画到游戏界面中
    public static ImageIcon header=new ImageIcon(headerURL);
    
    public static URL upURL=Date.class.getResource("/statics/up.png");//贪吃蛇向上的图片位置
      //把转向上的图片转化为图标画到游戏界面中
     public static ImageIcon up=new ImageIcon(upURL);
     
    public static URL downURL=Date.class.getResource("/statics/down.png");//贪吃蛇下上的图片位置
     //把转向下的图片转化为图标画到游戏界面中
     public static ImageIcon down=new ImageIcon(downURL);
     
    public static URL leftURL=Date.class.getResource("/statics/left.png");//贪吃蛇向左的图片位置
     //把转向左的图片转化为图标画到游戏界面中
     public static ImageIcon left=new ImageIcon(leftURL);
     
    public static URL rightURL=Date.class.getResource("/statics/right.png");//贪吃蛇向右的图片位置
     //把转向右的图片转化为图标画到游戏界面中
     public static ImageIcon right=new ImageIcon(rightURL);
     
    public static URL bodyURL=Date.class.getResource("/statics/body.png");//贪吃蛇身体的图片位置
      //把身体的图片转化为图标画到游戏界面中
     public static ImageIcon body=new ImageIcon(bodyURL);
     
    public static URL foodURL=Date.class.getResource("/statics/food.png");//贪吃蛇食物的图片位置
      //把食物的图片转化为图标画到游戏界面中
     public static ImageIcon food=new ImageIcon(foodURL);
     
}

 

posted @ 2022-04-19 11:44  hollg  阅读(296)  评论(0)    收藏  举报