?? controller.java
字號:
package org.han.snake.controller;
import java.awt.Point;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.util.Random;
import org.han.snake.SnakeListener.SnakeListener;
import org.han.snake.entities.Food;
import org.han.snake.entities.Ground;
import org.han.snake.entities.ShowScore;
import org.han.snake.entities.Snake;
import org.han.snake.util.Global;
import org.han.snake.view.GamePanel;
public class Controller extends KeyAdapter implements SnakeListener{
private Snake snake;
private Food food;
private Ground ground;
private GamePanel gamepanel;
private ShowScore showScore;
public Controller(Snake snake, Food food, Ground ground, GamePanel gamepanel,ShowScore showScore) {
this.snake = snake;
this.food = food;
this.ground = ground;
this.gamepanel = gamepanel;
this.showScore = showScore;
}
public void keyPressed(KeyEvent e) {
switch(e.getKeyCode()){
case KeyEvent.VK_UP:
snake.changeDirection(Snake.UP);
break;
case KeyEvent.VK_RIGHT:
snake.changeDirection(Snake.RIGHT);
break;
case KeyEvent.VK_DOWN:
snake.changeDirection(Snake.DOWN);
break;
case KeyEvent.VK_LEFT:
snake.changeDirection(Snake.LEFT);
break;
}
}
@Override
public void SnakeMoved(Snake snake) {
if(food.isSnakeEatFood(snake)){
snake.eatFood();
food.newFood(getPoint());
}
if(ground.isSnakeEatRock(snake)||snake.isEatBody()){
snake.die();
}
gamepanel.display(snake, food, ground,showScore);
}
public void newGame(){
snake.start();
food.newFood(getPoint());
}
public void againGame(){
snake.die();
newGame();
}
private Point getPoint() {
Random random = new Random();
int x = random.nextInt(Global.WIDTH);
int y = random.nextInt(Global.HEIGHT);
return new Point(x,y);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -