看!一个彩色的贪吃蛇(Java贪吃蛇小游戏)

22 篇文章 0 订阅

来源

今天在整理资料的时候无意中发现了,曾经学习Java的时候写的一个贪吃蛇小项目;
于是心血来潮,打开idea运行一波。emm,不错还可以运行!

但是之前的样式有点丑,单一颜色。所以呢,就顺手进行了一波优化。
所以一个彩色的贪吃蛇就出现了!🌰
看图👀
在这里插入图片描述
在这里插入图片描述
还可以吧,哈哈哈。
总之感觉还挺好玩的!

项目结构

在这里插入图片描述
就很简单,就6个类。
其中蛇的身体使用自定义链表的形式进行储存

	private class Node{
		int rows;//行
		int cols;//列
		String dir;//方向
		Node pre;//前一个节点
		Node next;//后一个节点
		private Node(int rows,int cols,String dir){
			this.rows=rows;
			this.cols=cols;
			this.dir=dir;
		}
		public void drowHead(Graphics g) {
			g.setColor(Color.BLUE);
			g.fillOval(cols*Config.span, rows*Config.span, Config.span, Config.span);
		}
	}

使用随机数在绘制的时候,变化蛇的颜色

public void drow(Graphics g) {
		double select = Math.random();
		if(select<=0.2){
			g.setColor(new Color(255,69,0));
		}else if(select<=0.4){
			g.setColor(new Color(218,112,214));
		}else if(select<=0.6){
			g.setColor(new Color(0,238,0));
		}else if(select<=0.8){
			g.setColor(new Color(0,191,255));
		}else {
			g.setColor(new Color(234,235,0));
		}
		g.fillOval(cols*Config.span, rows*Config.span, Config.span, Config.span);
	}
}

开启一个单独的线程,刷新蛇的绘制

class SnackPanelThread extends Thread {
        boolean flag = true;

        @Override
        public void run() {
            while (Config.isLive && flag) {
                try {
                    Thread.sleep(300);
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }

                if (Config.isLive && Config.pause) {
                    repaint();//利用线程  每隔一定的时间  就调用一次画的方法  让蛇移动一次
                }

            }
            //加一个判断  如果是手动关闭的话  就不加提示了
            if (flag) {
                JOptionPane.showMessageDialog(SnackPanel.this, "游戏结束了");
            }
        }

        public void stopIt() {
            flag = false;
        }
    }

总结

总体来说不难,比较适合Java初学者作为一个练手的项目进行夺实基础。

最后放上资源的链接

有任何问题欢迎私信哈。🐷

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pumpkin的玄学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值