以前用java写的贪吃蛇游戏(3)

2008-02-23 09:23:28来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


canvas.setColorFlag(x,y,true);
SnakeNode snakeTail = (SnakeNode)snakeList.getLast();
snakeList.removeLast();
canvas.setColorFlag(snakeTail.getRow(),snakeTail.getCol(),false);
canvas.repaint();
}
return true;
}
return false;
}
/*
*run方法,控制线程运行要处理的事务
*/
public void run()
{
while(running)
{
try
{
sleep(timeInterval-game.getLevel() * PER_LEVEL_SPEED_UP);

}catch(InterruptedException e)
{
e.printStackTrace();
}
if(!pause)
{
if(!moveOn())
{
JOptionPane.showMessageDialog(null,"You Failed","Game Over",
JOptionPane.INFORMATION_MESSAGE);
running = false;
}
}
}
}
}
/*
*控制面板类
*/
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;

class ControlPanel extends JPanel
{
private JPanel infoPanel,buttonPanel;
private SnakePanel snakePanel;
private JTextField levelField;
private JTextField scoreField;
private JButton playButton, pauseButton, stoPButton,
turnEasilyButton, turnHarderButton;
private Timer timer;
private GreedSnakeGame game;
private EtchedBorder border = new EtchedBorder(EtchedBorder.RAISED,Color.white,Color.lightGray);
/*
*构造函数
*/
public ControlPanel(final GreedSnakeGame game)
{
this.game = game;
setLayout(new GridLayout(3,1,0,4));

snakePanel = new SnakePanel();
snakePanel.setBorder(border);
levelField = new JTextField("0");
scoreField = new JTextField("0");
infoPanel = new JPanel(new GridLayout(4,1,0,0));
infoPanel.add(new JLabel("Level:"));
infoPanel.add(levelField);
infoPanel.add(new JLabel("Score:"));
infoPanel.add(scoreField);
infoPanel.setBorder(border);

playButton = new JButton("Play");
pauseButton = new JButton("Pause");
stopButton = new JButton("Stop");
turnEasilyButton = new JButton("Turn Easily");
turnHarderButton = new JButton("Turn Harder");
buttonPanel = new JPanel(new GridLayout(5,1,0,1));
buttonPanel.add(playButton);
buttonPanel.add(pauseButton);
buttonPanel.add(stopButton);
buttonPanel.add(turnEasilyButton);
buttonPanel.add(turnHarderButton);
buttonPanel.setBorder(border);

add(snakePanel);
add(infoPanel);
add(buttonPanel);
playButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
game.playGame();
requestFocus();
}
}
);
pauseButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if(pauseButton.getText().equals("Pause"))
game.pauseGame();
else
game.resumeGame();
requestFocus();
}
}
);
stopButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
game.stopGame();
requestFocus();
}
}
);
turnHarderButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
int level = game.getLevel();
game.setLevel((level 1)%9);
requestFocus();
}
});
turnEasilyButton.addActionListener(
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
int level = game.getLevel();
if(level > 0)
{
game.setLevel(level - 1);
}
requestFocus();
}
});
timer = new Timer(500,
new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
levelField.setText("" game.getLevel());
scoreField.setText("" game.getScore());
}
}
);
timer.start();
addKeyListener(new ControlKeyListener());
}
/*
*设置play按钮的可用性
*/
public void setPlayButtonEnabled(boolean enable)
{
playButton.setEnabled(enable);
}
/*
*设置按钮时Pause还是Resume
*/
public void setPauseButtonLabel(boolean pause)
{
pauseButton.setText(pause ? "Pause" : "Resume");
}
/*
*重置游戏
*/
public void reset()
{
scoreField.setText("0");
levelField.setText("0");
game.setLevel(0);
game.setScore(0);
}
/*
*绘制贪吃蛇图片的面板
*/

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:以前用java写的计算器程序

下一篇:【J2ME】 Debug 笔记(二)