SkazOff Blog

Programming | Part#15

Вот значит мы и подошли к завершению нашей тренировочной игры с кругами, через две недели начинаем превращать ее в «игру с пиксельным человечеком, монстрами и прочим»=)

А пока что заканчиваем:

В GameManager добавляем следующие проверки:

private void checkCollision() {
    SimpleCircle circleForDel = null;
    for (EnemyCircle circle : circles) {
        if(mainCircle.isIntersect(circle)) {
            if(circle.isSmallerThan(mainCircle)){
                mainCircle.growRadius(circle);
                circleForDel=circle;
                calculateAndSetCirclesColor();
                break;
            } else {
                gameEnd();
                return;
            }
        }
    }
    if (circleForDel!=null) {
        circles.remove(circleForDel);
    }
    if(circles.isEmpty()){
        gameEnd();
    }
}

Что такое growRadius? Вспоминаем геометрию=)

public void growRadius(EnemyCircle circle) {
    rad = (int)Math.sqrt(Math.pow(rad, 2)+Math.pow(circle.rad, 2));
}

Ну и добавим сообщения о результатах игры — вин/луз

Исправим gameEnd’ы

gameEnd("YOU LOSE!");
                return;
            }
        }
    }
    if (circleForDel!=null) {
        circles.remove(circleForDel);
    }
    if(circles.isEmpty()){
        gameEnd("YOU WIN!");
    }
}

private void gameEnd(String text) {
    viewCanvas.showMessage(text);
    mainCircle.initRadius();
    initEnemyCircles();
    viewCanvas.redraw();

Далее showMessage добавляем в наш интерфейс, а прописываем его во viewCanvas

public void showMessage(String text) {
    if (toast !=null) {
        toast.cancel();
    }
    toast=Toast.makeText(getContext(),text,Toast.LENGTH_SHORT);
    toast.setGravity(Gravity.CENTER,0,0);
    toast.show();
}

Запускаем, проверяем, все работает — ура=)

До новых встреч!=)

Оставить комментарий