/ / Przenieś ciało fizyki zestawu duszka do miejsca, w którym użytkownik dotknął bez przechodzenia - iOS, zestaw duszka, fizyka

Przenieś ciało fizyki Kit Sprite do miejsca, w którym użytkownik dotknął bez przechodzenia przez niego - ios, zestaw sprite, fizyka

Mam ciało fizyki zestawu duszka, które chcębyć kontrolowanym przez dotykanie, przesuwając go w kierunku miejsca, w którym użytkownik dotknął dotknięcia Rozpoczął i dotknął Przeniesiony. Wypróbowałem ruch SKAction i po prostu zobaczyłem, że to nie pasuje do moich celów. Próbowałem zastosować Impuls i pasowało to do mojego celu, ale za każdym razem, gdy jest przekroczone, prędkość powoduje, że przechodzi on przez lokalizację za każdym razem, a jeśli wykonałem nowe lokalizacje, obiekt latał w obie strony. Chciałbym, aby nieco szybciej podążał za bieżącym dotykiem, a nie powoli czołgał się w kierunku palca użytkownika. Czy istnieje prosty sposób, aby obiekt podążał za dotykiem, gdy użytkownik dotyka, i przestał się poruszać, gdy użytkownik puścił, to pozwoli dobrze współpracuje z silnikiem fizyki zestawu psrite? Chcę, aby obiekt odbijał się od innych obiektów, ale sam się nie odbijał.

Odpowiedzi:

1 dla odpowiedzi № 1

Dodaj kilka rzeczy:

  1. flaga logiczna określająca, czy duszka otrzymała nową lokalizację

  2. punkt CGPoint przechowujący nową pożądaną lokalizację

  3. metoda, która sprawdza, czy lokalizacja duszka jest wystarczająco blisko CGPoint, aby uznać ją za dostarczoną

Po wydaniu dotyku zapisz punkt i ustaw wartość logiczną na TAK, a następnie zainicjuj siłę duszka.

Wewnątrz metody aktualizacji umieść wywołanie tej metody sprawdzania, która jest wywoływana, jeśli wartość logiczna, którą wykonałeś, to TAK.

Jeśli ta kontrola zwróci wartość true, ustaw prędkość na zero (lub w inny sposób zatrzymaj duszka według własnego uznania) i ustaw wartość logiczną z powrotem na NIE, aby metoda sprawdzania przestała strzelać.