Część trzecia projektu ćwiczebnego.

Poniżej  wszystkie zadania:

  1. Określenie sterowania, czyli możliwość zmiany masy kuli, siły wyrzucania
  2. Zmiana kamery na taką, która pozwoli zobaczyć w którym miejscu kula uderzyła w tarczę
  3. Wyświetlenie prędkości ruchu kuli, odległości na jaką spadła
  4. Animacja uderzenia w tarcze
  5. Zliczanie punktów za uderzenie w odpowiedni obszar
  6. Losowanie pozycji ściany z tarczą na platformie, na przycisk
  7. Ruch na boki katapulty
  8. Wzięcie pod uwagę siły wiatru
  9. Restart gry, powrót kuli na pozycje startowe
  10. Kamera podążająca za kulą
  11. Ponowne wyrzucenie kuli
  12. Zrobienie prostego Menu, podpowiedzi na temat klawiszy
  13. Z powodu generowania pozycji celu na płaszczyźnie trzeba zmieniać pozycje celu kamery
  14. Mała refaktoryzacja metody losującej (nie mogłem wytrzymać)
  15. Nowy hamulec ramienia katapulty
  16. Zmiana celu, na cel wiszący na sznurku
  17. Ściana którą da się zniszczyć
  18. Brama rusza się do przodu lub tyłu i nie wypada za plansze
  19. Losowanie pozycji bramy i celu zawieszonego na bramie
  20. Poruszanie punktem po obszarze, oprócz tego trzeba ten ruch zintegrować z ruchem ramienia katapulty, zrobić ograniczenia zasięgu
  21. Refaktoryzacja – porządki w kodzie

Odp. 20

Punkt do celowo miał być miejscem w które uderzy kula, póki nie mam jakiejś mądrzejszej fizyki. Punkt do tej pory był na stałe przywiązany do jednej lokalizacji. Postanowiłem go ruszyć.  Wykorzystałem do tego funkcje Translate, nie dodawałem bryły sztywnej.

W tym momencie punkt jest powiązany z ruchem katapulty ale nie jest ograniczony przez pole. Kolejny krok w tym kierunku to wykonanie ograniczeń dla ruchu, kolejny krok to zmian fizyki wyrzucania kuli i powiązanie z punktem ruchu na obszarze głównym.

Refaktoryzacja

Krok1

Przeniesienie do osobnej metody

Nie wygląda na zmianę zbyt imponującą ale wywołanie już tak. Przy wywołaniu tej metody musiałem wspomóc się pomocą  ze StackOverFlow

Trying to detect keypress

Wywołanie metody z klasy statycznej.

Krok 2

Kontakt z metodą za pomocą interfejsu, odwrócenie zależności i wrzutka do konstruktora.

Nie będę prezentował kodu z klasy i interfejsu bo nie zmienił się on. Dodałem tylko parametr określający GameObject na którym aktualnie pracuję.

Pozostała kwestia ograniczenia pola ruchu dla celu.

Odp.21 Refaktoryzacja i wnioski.

Uznałem, że czas na wnioski. Na scenie coraz więcej obiektów, coraz więcej zależności między nimi. Kodu przybywa, a wraz z tym coraz większy bałagan. Czas na sprzątanie za nim zrealizuje kolejne pomysły.

Właściwie to jest refaktoryzacja

  • sprawdzenie nazw,
  • sprawdzenie i usunięcie nie potrzebnych zależności i kodu,
  • sprawdzenie czy kod się duplikuje
  • sprawdzenie czy można coś uprościć i zastosować już istniejące rozwiązania
  • dołożyć kilka katalogów w miarę potrzeb do lepszej segregacji zagadnień

Odp. 9

Punkt zrobiony wcześniej ale z powodu  dodania ruchu kółka na płaszczyźnie jego powrót do pozycji startowej.

Odp.20

Kolejna zmiana w ruchu celu na polu. Komplikacja to moje drugie imię.

Definicje klawiszy przeniosłem do innej klasy, z opcją klawiszy domyślnych.  Definicja klasy:

Klasa odpowiadająca za drugi skrypt podłączony do obiektu TargetCircle (tego na ziemi)

Dodatkowo klasa statyczna sprawdzająca kod klawisza

 

Kategorie: Unity