package snake;
import java.awt.Color;
import java.awt.Font;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JPanel;
public class FramePanel extends JPanel implements KeyListener
{
int[] x=new int[750];//蛇横坐标
int[] y=new int[750];//蛇纵坐标
int len=3;//蛇长度
boolean isStarted = false;
String dir="R";//蛇初始向右
public FramePanel()
{
this.setFocusable(true);
initSnake();
this.addKeyListener(this);;;//添加监听接口
}
public void initSnake()//初始化
{
len=3;
dir="R";
x[0]=100;
y[0]=50;
x[1]=75;
y[1]=50;
x[2]=50;
y[2]=50;
}
public void paint(Graphics g)
{
this.setBackground(Color.BLACK);
g.fillRect(15, 15, 850, 650);
if(dir.equals("R"))//头
{
g.setColor(Color.WHITE);
g.fillRect(x[0], y[0],15,15);
}
else if(dir.equals("L"))
{
g.setColor(Color.WHITE);
g.fillRect(x[0], y[0],15,15);
}
else if(dir.equals("U"))
{
g.setColor(Color.WHITE);
g.fillRect(x[0], y[0],15,15);
}
else if(dir.equals("D"))
{
g.setColor(Color.WHITE);
g.fillRect(x[0], y[0],15,15);
}
for(int i=1;i<len;i++)//身体
{
g.setColor(Color.GRAY);
g.fillRect(x[i], y[i], 15, 15);
}
if(!isStarted)
{
g.setColor(Color.RED);
g.setFont(new Font("Verdana ",Font.BOLD,30));
g.drawString("Pause", 300, 300);
}
}
@Override
public void keyTyped(KeyEvent e) {
int KeyCode = e.getKeyCode();
if(KeyCode == KeyEvent.VK_SPACE) {
isStarted = !isStarted;
repaint();
}
}
public void changeDir(int key) {
switch(key){
case KeyEvent.VK_LEFT :
if(this.dir!="R"){ this.dir = "L";}
break;
case KeyEvent.VK_UP :
if(this.dir!="D"){ this.dir = "U";}
break;
case KeyEvent.VK_RIGHT :
if(this.dir!="L"){ this.dir = "R";}
break;
case KeyEvent.VK_DOWN :
if(this.dir!="U"){ this.dir = "D";}
break;
}
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}