Gmaou 2019-06-23 16:38
浏览 371

贪吃蛇想弄一个暂停键按空格键不消失是为什么?

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

}

}

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 树莓派与pix飞控通信
    • ¥15 自动转发微信群信息到另外一个微信群
    • ¥15 outlook无法配置成功
    • ¥30 这是哪个作者做的宝宝起名网站
    • ¥60 版本过低apk如何修改可以兼容新的安卓系统
    • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
    • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
    • ¥50 有数据,怎么用matlab求全要素生产率
    • ¥15 TI的insta-spin例程
    • ¥15 完成下列问题完成下列问题