Подскажите пожалуйста, что такое Key? Это как enum Direction? Почему в switch в onKeyPress(Key) я не могу после case написать Key.LEFT, а работает только с LEFT? Может в классе Key переменные LEFT, RIGHT... не статические? При этом, когда мы пишем лево у объекта direction, мы прописываем Direction.LEFT (например, в классе createNewHead() вот такая запись работает (direction == Direction.LEFT) ).
package com.javarush.games.snake;
import
com.javarush.engine.cell.*;
public class SnakeGame extends Game {
public static final int WIDTH = 15;
public static final int HEIGHT = 15;
private Snake snake;
private int turnDelay;
public void initialize()
{
setScreenSize(WIDTH,HEIGHT);
createGame();
}
private void createGame()
{
snake = new Snake(WIDTH / 2, HEIGHT / 2);
drawScene();
snake.draw(this);
turnDelay = 300;
setTurnTimer(turnDelay);
}
private void drawScene()
{
for (int x = 0; x < WIDTH; x++)
{
for (int y = 0; y < HEIGHT; y++)
{
setCellValueEx(x, y, Color.DARKSEAGREEN, "");
}
}
snake.draw(this);
}
public void onTurn(int a)
{
snake.move();
drawScene();
}
public void onKeyPress(Key key)
{
super.onKeyPress(key);
switch(key){
case LEFT: snake.setDirection(Direction.LEFT);
case RIGHT: snake.setDirection(Direction.RIGHT);
case UP: snake.setDirection(Direction.UP);
case DOWN: snake.setDirection(Direction.DOWN);
}
}
}