该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
package snake;
import java.awt.*;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import java.awt.event.*;
import javax.swing.*;
public class SnakeFrame extends JFrame implements ActionListener{
JButton jb1,jb3,jb4,jb2;
JPanel jp1;
JMenu nandu;
JMenuItem jian,zhong,nan;
PlaySnake playPane = new PlaySnake();
int speed = 100;
PlaySnake thread = new PlaySnake();
public SnakeFrame(){
Container cp = this.getContentPane();
this.setTitle("贪吃蛇 作者;你卢大哥");
this.setSize(800,600);
JMenuBar menubar = new JMenuBar();
JMenu nandu=new JMenu("难度");
this.setJMenuBar(menubar);
JMenuItem jian= new JMenuItem("简单");
JMenuItem zhong= new JMenuItem("中等");
JMenuItem nan= new JMenuItem("困难");
ButtonGroup group = new ButtonGroup();//使按钮里的按键选项变成排他法
group.add(jian);
group.add(zhong);
group.add(nan);
jian.setSelected(true);
nandu.add(jian);
nandu.add(zhong);
nandu.add(nan);
menubar.add(nandu,BorderLayout.NORTH);
jb1=new JButton("开始");
jb2=new JButton("暂停");
jb3=new JButton("结束");
jb4=new JButton("帮助");
jp1=new JPanel();
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);
jp1.add(jb4);
this.add(jp1);
cp.add(jp1,BorderLayout.NORTH);
cp.add(playPane,BorderLayout.CENTER);
jb1.setFocusable(false);
jb2.setFocusable(false);
jb3.setFocusable(false);
jb4.setFocusable(false);
jb2.setEnabled(false);
jb3.setEnabled(false);
jb1.addActionListener(this);
jb2.addActionListener(this);
jb3.addActionListener(this);
jb4.addActionListener(this);
jian.addActionListener(this);
zhong.addActionListener(this);
nan.addActionListener(this);
}
class SnakeThread extends Thread{
public void run(){
while(true){
try{
Thread.sleep(100/speed);
playPane.moveSnake();
if(playPane.isLost()){
JOptionPane.showMessageDialog(null, "游戏结束!");
playPane.clear();
jb1.setEnabled(true);
jb2.setText("暂停");
jb2.setEnabled(false);
jb3.setEnabled(false);
}
}
catch(Exception ex){}
}
}
}
public static void main(String[] args) {
// TODO 自动生成的方法存根
SnakeFrame ta=new SnakeFrame();
ta.setVisible(true);
ta.setResizable(false);
}
//class MainFrameActListener implements ActionListener{
public void actionPerformed(ActionEvent e)
{
//if(e.getSource()==jb1){
初始化状态
//isEnd = false;
//isPause = false;
创建贪吃蛇
//playPane.createSnake();
随机摆放食物
//playPane.createFood();
//try{
// //启动游戏
//thread.start();
//}
//catch(Exception ex){
//
//}
//jb1.setEnabled(false);
//jb2.setEnabled(true);
//jb3.setEnabled(true);
if(e.getSource()==jb1){
playPane.moveSnake();
//playPane.createSnake();
//playPane.createFood();
jb1.setEnabled(false);
jb2.setEnabled(true);
jb3.setEnabled(true);
}
if(e.getSource()==jb2){
if(jb2.getText()=="暂停"){
jb2.setText("继续");
}else if(jb2.getText()=="继续"){
jb2.setText("暂停");
}
}
if(e.getSource()==jb3){
jb1.setEnabled(true);
jb2.setEnabled(false);
jb3.setEnabled(false);
jb2.setText("暂停");
playPane.clear();
}
if(e.getSource()==jb4){
JDialog help=new HelpDialog();
help.setModal(true);
help.setSize(150,150);
help.setVisible(true);
}if(e.getSource() == jian){
speed = 300;
}if(e.getSource() == zhong){
speed = 200;
}if(e.getSource() == nan){
speed = 100;
}
}
public void keyPressed(KeyEvent e){
//判断游戏状态
//if(!jb3 && !jb2){
//根据用户按键,设置蛇运动方向
if(e.getKeyCode() == KeyEvent.VK_W){
playPane.setSnakeDirection(PlaySnake.UP);
}
if(e.getKeyCode() == KeyEvent.VK_S){
playPane.setSnakeDirection(PlaySnake.DOWN);
}
if(e.getKeyCode() == KeyEvent.VK_A){
playPane.setSnakeDirection(PlaySnake.LEFT);
}
if(e.getKeyCode() == KeyEvent.VK_D){
playPane.setSnakeDirection(PlaySnake.RIGHT);
}
//}
}
}