Ta strona stosuje pliki cookies. Poczytaj co to jest w polityka cookies

Kursy i tutoriale wideo informatyczne


Kącik początkującego
Dobre programy - tutoriale
Programy biznes
Programowanie PHP

nauczycieli Jak usuwać obiekty przez dotyk Android

Jak usuwać dotknięte obiekty

    Zróbmy teraz miniprogramik, który sprawi, że gdy dotkniemy piłkę to ona zniknie a gdy zabierzemy rękę to ona się znowu pojawi.

Nie będziemy musieli wprowadzać zbyt wiele zmian w porównaniu do poprzedniego przykładu - zobaczmy sami:

local pilka_plazowa display.newImage("pilka_plazowa.png")

function  
odczyt(event
)
  if 
event.phase=="began" 
then 
    pilka_plazowa.isVisible=false

 
end

  if event.phase=="ended" then
    pilka_plazowa.isVisible=false
  
end

end
pilka_plazowa
:addEventListener("touch"odczyt)

 W funkcji obsługującej dodajemy tylko informację o tym, że przy fazie dotyku należy wyłączyć wyświetlanie piłki ustawiając parametr isVisible na false. To działa znakomicie. Po uruchomieniu i kliknięciu na piłkę ona faktycznie znika. Jest jednak problem z tym, żeby się pojawiła... Puszczenie ekranu lub lewego klawisza myszy nie sprawia, że piłka wróci na ekran. Wiecie już dlaczego?

Ano dlatego, że linijka:

pilka_plazowa:addEventListener("touch"odczyt)

obsługuje zdarzenie dotyczące piłki ale skoro piłka zniknęła to nasz szpieg przestał się tym interesować a on przecież reaguje tylko na piłkę a przy puszczaniu kliknięcie jej już tam nie ma... Wiec nic druga część nie zadziała niestety...

Jak można ten problem rozwiązać? W naszym przykładzie możemy sobie pozwolić na banalne rozwiązanie bo wystarczy dodać:

Runtime:addEventListener("touch"odczyt

i piłka będzie pojawiać się z powrotem gdy puścimy kliknięcie czy dotyk. Nie zawsze możemy sobie pozwolić na takie rozwiązanie, bo przecież w tej sytuacji każdy dotyk w ekran będzie owocował pojawieniem się piłki w przypadku upuszczenia dotyku no ale to już problem na inny temat ja go tylko tu sygnalizuję...

Jak całkowicie usunąć obiekty z ekranu w Corona SDK?

Niekiedy będziemy chcieli się całkowicie pozbyć obiektów z ekranu wówczas trzeba zastosować inną funkcję czyli zamiast:

pilka_plazowa.isVisible=false

Trzeba wstawić w kod:

pilka_plazowa:removeSelf()




Zobacz inne:

copyright © Pcwiedza.pl