StartGames.java文件
package com.xiao.snake;
import javax.swing.*;
public class StartGames {
public static void main(String[] args) {
//绘制一个静态窗口 JFrame
JFrame frame = new JFrame();
frame.setBounds(10,10,900,720);//设置界面的大小
frame.setResizable(false);//窗口大小则不可以改变
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭事件,游戏可以关闭了
//2.面板JPanel 可以加入到JFrame
frame.add(new GamePanel());
frame.setVisible(true);//让窗口能够展现出来
}
}Date.java文件
package com.xiao.snake;
import javax.swing.*;
import java.net.URL;
//存放外部数据
public class Date {
//头部的图片 URL:定位图片的地址 ImageIcon:图片
public static URL headerURL=Date.class.getResource("/com/xiao/statics/header.png");
public static ImageIcon header=new ImageIcon(headerURL);
//蛇的身体和各个方向的头部
public static URL bodyURL=Date.class.getResource("/com/xiao/statics/body.png");
public static URL downURL=Date.class.getResource("/com/xiao/statics/down.png");
public static URL leftURL=Date.class.getResource("/com/xiao/statics/left.png");
public static URL rightURL=Date.class.getResource("/com/xiao/statics/right.png");
public static URL upURL=Date.class.getResource("/com/xiao/statics/up.png");
public static ImageIcon body=new ImageIcon(bodyURL);
public static ImageIcon down=new ImageIcon(downURL);
public static ImageIcon left=new ImageIcon(leftURL);
public static ImageIcon right=new ImageIcon(rightURL);
public static ImageIcon up=new ImageIcon(upURL);
//蛇的食物
public static URL foodURL=Date.class.getResource("/com/xiao/statics/food.png");
public static ImageIcon food=new ImageIcon(foodURL);
}GamePanel.java文件
com.xiao.snakejavax.swing.*java.awt.*java.awt.event.ActionEventjava.awt.event.ActionListenerjava.awt.event.KeyEventjava.awt.event.KeyListenerjava.util.RandomGamePanel JPanel KeyListenerActionListener {
[] =[][] =[]String =Timer =Timer()Random =Random()=() {
init().setFocusable().addKeyListener().start()}
(){
=[]=[]=[]=[]=[]=[]===+*.nextInt()=+*.nextInt()= }
(Graphics g) {
.paintComponent(g).setBackground(Color.)g.fillRect()(.equals()){
Date..paintIcon(g[][])}(.equals()){
Date..paintIcon(g[][])}(.equals()){
Date..paintIcon(g[][])}(.equals()){
Date..paintIcon(g[][])}
(i = i < i++) {
Date..paintIcon(g[i][i])}
(==){
g.setColor(Color.)g.setFont(Font(Font.))g.drawString()}
Date..paintIcon(g)g.setColor(Color.)g.setFont(Font(Font.))g.drawString(+ )g.drawString(+ )(){
g.setColor(Color.)g.setFont(Font(Font.))g.drawString()}
}
(KeyEvent e) {
keyCode = e.getKeyCode()(keyCode==KeyEvent.){
(){
= init()}{
= !}
repaint()}
(keyCode==KeyEvent.){
=}(keyCode==KeyEvent.){
=}(keyCode==KeyEvent.){
=}(keyCode==KeyEvent.){
=}
}
(ActionEvent e) {
(){
(i = -i >i--) {[i]=[i-][i]=[i-]}
(.equals()){
[]=[]+([]>){
[]=}
}(.equals()){
[]=[]-([]<) []=}(.equals()){
[]-=([]<) []=}(.equals()){
[]+=([]>) []=}
([]==&&[]==){
++= + =+*.nextInt()=+*.nextInt()}
(i = i < i++) {
([i]==[] && [i]==[] ){
= }
}
repaint()}
}
(KeyEvent e) {
}
(KeyEvent e) {
}
}跟着狂神一起敲的
微信扫码关注
更新实时通知