贪吃蛇之小蛇绘制

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了贪吃蛇之小蛇绘制脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
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{
    //定义蛇的数据结构
    int length;//蛇的长度
    //用蛇活动的界面框的宽和高都除以他的x轴数值,然后两个数再相*,得到这个蛇最长的节数,经过计算结果为816,所以我们现在创建蛇的x坐标和y坐标的数值都去除25,再相*,不要小于816就可以了,为什么要用25除呢,因为我们设置蛇的坐标是5*25
    int snakeX=new int[600];//蛇的x坐标25*25
    int snakeY=new int[500];//蛇的Y坐标25*25
    //创建小蛇的初始方向,向右
    String fx;
    //创建游戏当前状态变量,开始,停止
    boolean isStart=false;//默认停止
    
    
    
    
   //创建构造器调用init方法
    public GamePanel(){
        init();
    }
    
    //创建游戏初始化方法
    public void init(){
    //初始化小蛇的长度为3,并设置小蛇初始化坐标为100的位置上
    length=3;
    snakeY[0]=100;snakeX[0]=100;//小蛇头的坐标,脑袋
    snakeY[1]=75;snakeX[1]=100;//第一个身体的坐标
    snakeY[2]=25;snakeX[2]=100;//第二个身体坐标
     fx=="R";  //小蛇的初始方向,向右    
     
    }
    
    //绘制面板的方法,这个方法是JPanel类中自带的画组件方法,我们游戏所有的东西,都使用这个画笔来画
    protected void paintComponent(Grephics 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);
      //判断小蛇方向
      if (fx.equals("R")){////把小蛇的图片画到面板上去,,“this”:当前面板,g:用当前方法中的画笔。xy坐标分别为:snakeX[0],snakeY[0]
       Data.right.paintIcon(this,g,snakeX[0],snakeY[0]);//蛇初始化向右,并且方向要通过判断来获取方向 
      }else if(fx.equals("L")){//
      
          Data.left.paintIcon(this,g,snakeX[0],snakeY[0])
      }else if(fx.equals("U")){//
      
          Data.up.paintIcon(this,g,snakeX[0],snakeY[0])
      }else if(fx.equals("D")){//
      
          Data.down.paintIcon(this,g,snakeX[0],snakeY[0])
      }
        
        
         //通过for循环,动态添加小蛇的长度
      for(int i=0;i<length;i++){
        Data.body.paintIcon(this,g,snakeX[i],snakeY[i]);//身体
      }
       
       //游戏状态
       if(isStart==false){//如果isStart是flast那就画一段文字,drawString :画一个String文字
       //设置画笔颜色为白色
       g.setColor(Color.white);
        //设置字体
        g.setFont(new Font("微软雅黑",Font.BOLD,40));//Font.BOLD:字体为粗体,40号
        g.drawString("按下空格开始游戏",300,300);//将“按下空格开始游戏”内容画到300,300坐标处的位置
       }
        
    }
    
}
//创建游戏的数据中心,来存放游戏中的所有数据
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 left=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);
     
}

 

脚本宝典总结

以上是脚本宝典为你收集整理的贪吃蛇之小蛇绘制全部内容,希望文章能够帮你解决贪吃蛇之小蛇绘制所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: