Discuss Scratch

KamGry
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

Metody tworzenia programów na urządzenia mobilne


W tym poradniku chciałbym przedstawić kilka wybranych metod tworzenia programów na urządzenia z ekranem dotykowym.


METODA 1 - PRZYCISKI

Przy zastosowaniu tej metody działanie programu będzie oparte na wyświetlanych na ekranie przyciskach. Najlepiej sprawdza się tam, gdzie potrzeba dużej ilości opcji, ale gra/program nie jest zbyt dynamiczna.
Na początku należy stworzyć duszki - przyciski. Ich skrypty będą wyglądały bardzo podobnie, można dodać ich do programu tyle ile potrzeba.

Skrypt dla takiego duszka powinien wyglądać mniej więcej tak:

kiedy duszek kliknięty
nadaj [tu wpisz nazwę komunikatu v]

Ten skrypt wykrywa gdy użytkownik dotknie przycisku i informuje o tym inne duszki.
Tak naprawdę jest to jedyny skrypt będący niezbędny do działania programu, ale w zależności od wykorzystania mogą być potrzebne skrypty pokazujące i ukrywające przycisk, zmieniające jego wygląd lub położenie na ekranie.

Następnie należy dodać skrypty do duszka (duszków) na które sterowanie ma działać. Ich skrypty też są bardzo proste i podobne do siebie.

Powinny wyglądać mniej więcej w ten sposób:

kiedy otrzymam [komunikat nadany przez odpowiedni przycisk v]
tu dodaj skrypt określający reakcję duszka


Demonstrator metody: https://scratch.mit.edu/projects/400241663/



METODA 2 - WIRTUALNE PRZYCISKI

Metoda ta opiera się na wirtualnych przyciskach - niewidocznych na ekranie. Sprawdza się tam, gdzie potrzeba dużo funkcji, przestrzeni na scenie, ale gra nie jest bardzo dynamiczna.

Należy zacząć od wyznaczenia współrzędnych obszarów mających pełnić funkcje przycisków. Ja przykładowo zrobię skrypty dla “przycisku” x: - 130 do 130, y: -60 do 60 (podane współrzędne to skrajne punkty prostokątnego obszaru).

Później należy zrobić skrypt wykrywający dotknięcie tej strefy:

kiedy kliknięto zieloną flagę
zawsze
jeżeli <wciśnięty klawisz myszy?> to
jeżeli <<<(x myszy) < [131]> i <[-131] < (x myszy)>> i <<(y myszy) < [61]> i <[-61] < (y myszy)>>> to
tu podaj skrypt określający co duszek ma wtedy zrobić
end
end
end

Ten skrypt sprawdza czy kliknięty został wybrany obszar poprzez sprawdzenie współrzędnych myszy (palca) w momencie kliknięcia. W celu zmienienia współrzędnych obszaru należy zmienić zakres x i y (należy podawać liczby o 1 większe przy prawej lub górnej krawędzi i o 1 mniejsze przy krawędziach dolnej i lewej. Stref może być tyle ile potrzeba, ale należy uważać, żeby strefy na siebie nie zachodziły!!!

Demonstrator metody: https://scratch.mit.edu/projects/381214060/


METODA 3 - JOYSTICK

Metoda ta najlepiej sprawdza się w dynamicznych grach z niezbyt rozbudowanym sterowaniem. W tym poradniku przedstawię 2 wersje.

Na początku należy stworzyć duszka będącego joystickiem. W obu przypadkach będzie wyglądał on tak samo.
Jego skrypt powinien wyglądać mniej więcej tak:

kiedy duszek kliknięty 
zawsze
jeżeli <wciśnięty klawisz myszy?> to
ustaw [ruch v] na [1]
idź do x: ( ) y: ( )
ustaw w stronę [wskaźnik myszy v]
przesuń o ( ) kroków
w przeciwnym razie
idź do x: ( ) y: ( )
ustaw [ruch v] na [0]
zatrzymaj [ten skrypt v]
end
end

Dzięki zastosowaniu bloku “Kiedy duszek kliknięty” oraz pętli “zawsze” i bloku warunkowego “jeżeli…to; w przeciwnym razie” Joystick zostaje aktywowany w momencie dotknięcia i jest aktywny do momentu oderwania palca od ekranu niezależnie od tego, czy palec jest go dotyka, czy nie. dzięki blokowi “zatrzymaj ten skrypt” natychmiast po oderwaniu palca od ekranu joystick jest dezaktywowany. Powtarzany w pętli powrót do pozycji początkowej sprawia, że joystick porusza się w ograniczonym zakresie. Zmienna ruch jest komunikatem dla duszka, którym sterujemy za pomocą joysticka, czy w danej chwili joystick jest aktywny czy nie. Oczywiście można dodawać skrypty pojawiania się/znikania joysticka i tym podobne w zależności od wymagań konkretnego projektu.

Dalej można wyróżnić dwie wersje.


Wersja uproszczona

Przydaje się gdy duszek jest na przykład okrągły lub z innego powodu jego kierunek nie ma znaczenia. W tej wersji wystarczy jeden skrypt i jeden duszek.

Skrypt dla duszka powinien wyglądać tak:

kiedy kliknięto zieloną flagę
zawsze
jeżeli <(ruch) = [1]> to
ustaw kierunek na ([kierunek v] z [Joystick v])
przesuń o ( ) kroków
end
end

Skrypt sprawiający, że duszek porusza się w tą samą stronę co joystick. Blok “jeżeli…to” i zmienna “ruch” zabezpiecza przed ruchem gdy joystick jest nieaktywny. Uwaga duszek będzie cały czas się obracał w kierunku ruchu!!!

Demonstrator metody: https://scratch.mit.edu/projects/400316409/


Wersja zaawansowana

W tej metodzie kierunek duszka będzie niezależny od kierunku ruchu, ale będzie to wymagało zastosowania dwóch duszków.

Najpierw należy zrobić duszka “pilota”. Powinien być on jak najmniej widoczny. Jego skrypt jest identyczny jak skrypt głównego duszka w metodzie uproszczonej:

kiedy kliknięto zieloną flagę
zawsze
jeżeli <(ruch) = [1]> to
ustaw kierunek na ([kierunek v] z [Joystick v])
przesuń o ( ) kroków
end
end

Następnie należy przygotować głównego duszka. Jego skrypt sterowania jest bardzo prosty.

Wygląda on mniej więcej tak:

kiedy kliknięto zieloną flagę
zawsze
idź do [pilot v]
end

Całe sterowanie jest w skrypcie duszka pilota, więc wystarczy sprawić, żeby główny duszek za nim chodził.

Demonstrator metody: https://scratch.mit.edu/projects/400246413/



Niezależnie od zastosowanej metody tworząc gry na telefon należy pamiętać, że Scratch nie obsługuje jednoczesnego dotknięcia w więcej niż jednym punkcie.




W przyszłości dodam jeszcze kolejne metody.

Last edited by KamGry (June 1, 2020 12:48:55)

AANNTTOONNII
Scratcher
1000+ posts

Metody tworznia programów na urządzenia mobilne

Niezły poradnik.
Wilamaxin
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

Dodaj joystick

PL_DkD_PL
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

Wilamaxin wrote:

Dodaj joystick

KamGry wrote:

Jak będę miał wolny czas dodam jeszcze kilka metod.
Edit: a no tak, mogłeś zaproponować

Last edited by PL_DkD_PL (May 29, 2020 16:28:49)

KamGry
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

Wilamaxin wrote:

Dodaj joystick
Mam taki plan
paczekwmasle
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

Fajny poradnik
Masz literówkę w tytule

podpisano @paczekwmasle
__Ktos__Ktos
Scratcher
58 posts

Metody tworznia programów na urządzenia mobilne

Naprawdę niezły poradnik

Podpisano
@__Ktos__Ktos
Antek_W
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

ok,


Podpisano: Antek_W



HappyCat460
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

Fajny poradnik
Filip_Brajczewski
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne


<(mi się najbardziej podoba joystick)
/||\
/\

Last edited by Filip_Brajczewski (June 22, 2020 16:43:50)


░░░░░░░░░░░░░░░░░░░░
░▄▀▄▀▀▀▀▄▀▄░░░░░░░░░
░█░░░░░░░░▀▄░░░░░░▄░
█░░▀░░▀░░░░░▀▄▄░░█░█
█░▄░█▀░▄░░░░░░░▀▀░░█
█░░▀▀▀▀░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
█░░░░░░░░░░░░░░░░░░█
░█░░▄▄░░▄▄▄▄░░▄▄░░█░
░█░▄▀█░▄▀░░█░▄▀█░▄▀░
░░▀░░░▀░░░░░▀░░░▀░░░
Grzybiasz_Tomek
Scratcher
8 posts

Metody tworznia programów na urządzenia mobilne

kiedy kliknięto zieloną flagę
zawsze
jeżeli <spodoba mi się> to
pomyśl [bardzo fajne] przez (3) s
end
end
Janinainfa
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

Filip_Brajczewski wrote:

<(mi się najbardziej podoba joystick)
/||\
/\
<(mi też!)

Podpisano Janinainfa
 wolna :: motion
ukraina :: control
HappyCat460
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

Janinainfa
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

<(nawet nie wiedziałem o takich metodach, zawsze robiłem strzałki)

Last edited by Janinainfa (June 23, 2020 12:15:13)


Podpisano Janinainfa
 wolna :: motion
ukraina :: control
HappyCat460
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

Janinainfa wrote:

Filip_Brajczewski wrote:

<(mi się najbardziej podoba joystick)
/||\
/\
<(mi też!)
<(Mi też)
HeroGulki
Scratcher
44 posts

Metody tworznia programów na urządzenia mobilne

HappyCat460 wrote:

Fajny poradnik
Dokładnie

Heyo my doggos B)
AANNTTOONNII
Scratcher
1000+ posts

Metody tworznia programów na urządzenia mobilne

@KamGry
Wiesz co to jest “demonstrator”?

SJP wrote:

osoba dokonująca demonstracji doświadczenia, urządzenia lub produktu
KamGry
Scratcher
100+ posts

Metody tworznia programów na urządzenia mobilne

@AANNTTOONNII To jest jedno ze znaczeń. Może być też np. demonstrator technologii (urządzenie służące do przetestowania i/lub zaprezentowanka nowej technologii), co wskazuje, że słowo “demonstrator ” nie musi dotyczyć osoby. Jeśli masz jakiś pomysł jakie słowo tam lepiej pasuje to zaproponuj.
AANNTTOONNII
Scratcher
1000+ posts

Metody tworznia programów na urządzenia mobilne

KamGry wrote:

[…] To jest jedno ze znaczeń. Może być też […]

Kiedy wudaje ci się, że jesteś mądrzejszy od SJP…

KamGry wrote:

Jeśli masz jakiś pomysł jakie słowo tam lepiej pasuje to zaproponuj.

Możesz po prostu napisać “przykładowy projekt”.

Last edited by AANNTTOONNII (Sept. 6, 2020 14:13:29)

PL_DkD_PL
Scratcher
500+ posts

Metody tworznia programów na urządzenia mobilne

AANNTTOONNII wrote:

KamGry wrote:

[…] To jest jedno ze znaczeń. Może być też […]

Kiedy wydaje ci się, że jesteś mądrzejszy od SJP…

KamGry wrote:

Jeśli masz jakiś pomysł jakie słowo tam lepiej pasuje to zaproponuj.

Możesz po prostu napisać “przykładowy projekt”.
nie chcę się kłócić, ale raczej przykładowy projekt to jest zwykły projekt (jakaś gra) z tym skryptem. A demonstrator z nazwy demonstruje tą metodę, i w tym przypadku tylko tyle. Nie wiem, może jestem głupi, ale wydaje mi się że to tak jest

Powered by DjangoBB