实验内容:
1)实现贪吃蛇游戏基本功能,屏幕上随机出现一个“食物”,称为豆子。玩家能利用上下左右键控制“蛇”的移动,“蛇”吃到“豆子”后“蛇”身体加长一节,得分增加,“蛇”碰到边界或蛇头与蛇身相撞,“蛇”死亡,游戏结束。
2)进行交互界面的设计,要有开始键、暂停键和停止退出的选项,能够控制游戏进程。对蛇吃到豆子进行分值计算,可以设置游戏速度,游戏音乐等拓展元素。
逻辑构图
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_SPACE){ //判断是否为空格键
if(isFall){
isFall = false;
init(); //失败条件下重新初始化游戏
}else {
isStart =! isStart; //若没有失败,只是暂停游戏
}
repaint(); //刷新界面
}
if(keyCode == KeyEvent.VK_LEFT){
fx = "L";
}else if(keyCode == KeyEvent.VK_RIGHT){
fx = "R";
}else if(keyCode == KeyEvent.VK_UP) {
fx = "U";
}else if(keyCode == KeyEvent.VK_DOWN) {
fx = "D"; //键盘监听控制
}
}
键盘监听方式
空格控制开关
public void keyPressed(KeyEvent e) {
int keyCode = e.getKeyCode();
if(keyCode == KeyEvent.VK_SPACE){ //判断是否为空格键
if(isFall){
isFall = false;
init(); //失败条件下重新初始化游戏
}else {
isStart =! isStart; //若没有失败,只是暂停游戏
}
repaint(); //刷新界面
}
if(keyCode == KeyEvent.VK_LEFT){
fx = "L";
}else if(keyCode == KeyEvent.VK_RIGHT){
fx = "R";
}else if(keyCode == KeyEvent.VK_UP) {
fx = "U";
}else if(keyCode == KeyEvent.VK_DOWN) {
fx = "D"; //键盘监听控制
}
}
其他待完善