[Java] Рисование и передвижение единорога
Задание:
1) Создать пустой проект “UnicornsDrawing”. Строгое правило: ниоткуда не копируйте ни единой строчки кода. Это в ваших же интересах. Если вы вдруг не знаете как что-то сделать - вы можете найти как раньше вы это делали в прошлых проектах, посмотреть, и написать в новом проекте так же. Но пожалуйста, не копируйте ни символа. И не берите из старого кода сразу все подряд, ваш код в этом задании должен получиться довольно маленьким. Если что-то не помните или не понимаете - спросите у меня на уроке или в телеграме.
2) В main
-функции создайте объект JFrame
, сделайте его видимым, какого-то разумного размера и т.п.. Запустите программу чтобы убедиться что окошко появляется.
3) Создать свой класс MyPanel
наследованный от JPanel
и переопределяющий метод protected void paintComponent(Graphics g) { ... }
4) Создайте объект вашей панели и добавьте его в окно.
5) Сохраните на диск картинку, загрузите ее и сделайте так чтобы она рисовалась в середине панели (в методе paintComponent
). (подробнее в предыдущей статье) Запустите программу и убедитесь что картинка рисуется.
6) Сделайте так, чтобы координаты единорога хранились в полях панели int unicornX; int unicornY;
, а затем добавьте обработчик кликов мышки, который будет менять эти координаты на координаты клика. Убедитесь что теперь вы передвигаете единорога мышкой при работе вашей программы.
7) Сделайте так чтобы единорог был повернут на 30 градусов против часовой стрелки. (см. в предыдущей статье) Запустите программу и убедитесь что теперь единорог немноговстал на дыбы.
8) Добавьте обработку клавиатуры - сделайте так, чтобы при нажатии на пробел единорог вращался против часовой стрелки. (см. в предыдущей статье) Запустите программу и проверьте.
9) Сделайте так, чтобы единорог вращался на 10 градусов при зажатом пробеле лишь один раз. Иначе говоря - чтобы каждое нажатие на пробел обрабатывалось ровно один раз, а не пропорционально времени нажатия.
10) Сделайте FlappyBird - игру аналогичную этой. Вдохновение и подсказки можно черпать из старого задания для JavaScript: основная часть, улучшения.