贪吃蛇java源代码

这个贪吃蛇是我学完Java之后的课程设计作业,做了有挺久的,做完这个小游戏,自己对Java的一些知识也更了解了些。其中包括按完按钮后焦点的处理啊,还有就是图形的闪烁问题。我当时做的时候基本是在自己电脑上完成的,后来才放到学校机房测试的。说来也奇怪,这个代码开始在我自己电脑上运行的时候并没有闪烁,所以我也就没想过要处理闪烁的问题,可是后来在学校机房闪烁的十分严重,所以才又用双缓冲来处理闪烁。

双缓冲解决图形闪烁源代码:

@Override
    public void update(Graphics g) {
        // TODO Auto-generated method stub
        ImageBuffer = createImage(this.getWidth(), this.getHeight());
        GraImage = ImageBuffer.getGraphics(); // 获取图形缓冲区的图形上下文
        paint(GraImage); // 用paint方法中编写的绘图过程对图形缓冲区绘图
        GraImage.dispose(); // 释放图形上下文资源
        g.drawImage(ImageBuffer, 0, 0, this); // 将图形缓冲区绘制到屏幕上
    }

运行效果:

下面是贪吃蛇完整源代码:

SnakeBody.java

package com.java.snake;

import java.awt.Color;

public class SnakeBody {
   
    private int x;
    private int y;
    private Color color;
    public int getX() {
        return x;
    }
    public void setX(int x) {
        this.x = x;
    }
    public int getY() {
        return y;
    }
    public void setY(int y) {
        this.y = y;
    }
    public Color getColor() {
        return color;
    }
    public void setColor(Color color) {
        this.color = color;
    }
}

GameUi.java

package com.java.snake;

import java.awt.BasicStroke;
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.LinkedList;
import java.util.Random;

import javax.swing.*;

public class GameUi extends JFrame {
   
    int flag = 1;
    JLabel jl = new JLabel();
    JLabel fs = new JLabel();
    JButton start = 
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值