package eatsnake;
import com.sun.javafx.scene.traversal.Direction;
import com.sun.org.apache.regexp.internal.REDebugCompiler;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
/**
* @Auther: Du Yushun
* @Date: 2020/10/25 - 10 - 25 - 9:46
* @Description: eatsnake
* @version: 1.8
*/
public class GamePanel extends JPanel {
//定义
int[] snakeX = new int [100];
int[] snakeY = new int [100];
int length;
//方向
String direction ;
//定义暂停
boolean isStart = !false;
public void init(){
length = 3;
//初始第一节
snakeX[0] = 125;
snakeY[0] = 225;
//初始身体
for (int i = 1; i < length; i++) {
snakeX[i] = 100-(i-1)*25;
snakeY[i] = 225;
}
//初始化方向
direction = "R";
}
public GamePanel(){
//调用初始
init();
//焦点放在面板
this.setFocusable(true);
//添加键盘监听
this.addKeyListener(new KeyAdapter() {
@Override
public void keyPressed(KeyEvent e) {
super.keyPressed(e);
int keyCode = e.getKeyCode();
System.out.println(keyCode);
}
});
}
//paintComponent:所以画全部在这里面
@Override
protected void paintComponent(Graphics g) {//g:画笔
super.paintComponent(g);
//设置背景颜色
this.setBackground(new Color(227,253,255));
//画头
images.headImg.paintIcon(this,g,10,10);
//设置画笔颜色
g.setColor(new Color(237,233,255));
//画矩形
g.fillRect(10,70,770,685);
//花蛇头
switch (direction)
{
case"U": images.upImg.paintIcon(this,g,snakeX[0],snakeY[0]);
break;
case"R": images.rightImg.paintIcon(this,g,snakeX[0],snakeY[0]);
break;
case"D": images.downImg.paintIcon(this,g,snakeX[0],snakeY[0]);
break;
case"L": images.leftImg.paintIcon(this,g,snakeX[0],snakeY[0]);
break;
}
//画蛇身
for (int i = 1; i <length ; i++) {
images.bodyImg.paintIcon(this,g,snakeX[i],snakeY[i]);
}
//如果暂停
if (isStart==false){
//字色
g.setColor(new Color(165,102,236));
//字体,加粗,字号
g.setFont(new Font("微软雅黑",Font.BOLD,40));
g.drawString("点击空格开始游戏",250,330);
}
}
}
package eatsnake;
import javax.swing.*;
import java.awt.*;
/**
* @Auther: Du Yushun
* @Date: 2020/10/25 - 10 - 25 - 9:06
* @Description: eatsnake
* @version: 1.8
*/
public class StartGame {
public static final int SSIZE = 800;
public static void main(String[] args) {
//1.创建窗口
JFrame jf = new JFrame();
//设置题目
jf.setTitle("贪吃蛇_西安信息职业大学");
//求屏幕宽高
int width = Toolkit.getDefaultToolkit().getScreenSize().width;
int height = Toolkit.getDefaultToolkit().getScreenSize().height;
//设置宽高,和起点坐标
jf.setBounds((width-SSIZE)/2,(height-SSIZE)/2,SSIZE,SSIZE);
//手动显示窗口
jf.setVisible(true);
//窗口是否可以变化
jf.setResizable(false);
//窗口关闭同时
jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//面板对象
GamePanel gp = new GamePanel();
//放入窗体中
jf.add(gp);
}
}