Zmiany

Skocz do: nawigacji, wyszukiwania

MoleMash

Dodane 393 bajty, 15:23, 13 mar 2015
==Aplikacja Molemash dla App Inventor 2==
W tej grze kret pojawia się w przypadkowych miejscach planszy, a gracz zdobywa punkty, dotykając go, zanim ten odskoczy. Jest to przykład prostej gry z wykorzystaniem animacji.
 
[[Plik:t4-1.png]]
 
===Zaczynamy!===
Połącz się z witryną internetową App Inventor i załóż nowy projekt. Nazwij go Molemash", tak samo zatytułuj ekran (Title). Połącz się z telefonem. Pobierz również ten obrazek kreta ([http://appinventor.mit.edu/explore/sites/all/files/ai2tutorials/moleMash/mole.png http://appinventor.mit.edu/explore/sites/all/files/ai2tutorials/moleMash/mole.png]) i zapisz go na komputerze.
Wszystkie komponenty są już wybrane. Projektant powinien wyglądać tak, jak na poniższej ilustracji. Zauważ, że element Kret (Mole) jest umieszczony wewnątrz elementu MojaKanwa (MyCanvas) w strukturze komponentów. To oznacza, że duszek jest elementem podrzędnym wobec kanwy.
 
[[Plik:t4-2.png]]
===Zachowanie komponentu i obsługa zdarzeń===
W Edytorze bloków (Blocks), w obszarze Wbudowane (Built-In) otwórz kategorię procedur. Przeciągnij blok procedury (to procedure do) i zmień wartość tekstową pola procedure na MoveMole.
 
[[Plik:info.png]]''Uwaga: Istnieją dwa podobne bloki: procedura to... do (wykonuje czynności) i procedura to... result... (zwraca wynik). Tutaj należy zastosować procedurę to... do.''
Gotowa definicja powinna wyglądać następująco:
[[Plik:t4-3.png]]
Procedura MoveMole nie przyjmuje żadnych argumentów, dlatego nie trzeba używać funkcji mutator bloku procedury. Zwróć uwagę, jak bloki łączą się ze sobą: pierwsza instrukcja używa bloku set Mole.X do ustawiania położenia kreta w poziomie. Wartość podłączona do otworu w bloku jest wynikiem iloczynu:
Oto jak powinna wyglądać zmienna Score i procedura UpdateScore:
 
[[Plik:t4-4.png]]
===Dodaj licznik czasu===
Skonfiguruj blok MoleTimer, aby wywoływał procedurę MoveMole przy każdym uruchomieniu licznika czasowego, tworząc obsługę zdarzenia w następujący sposób:
 
[[Plik:t4-5.png]]
''Zauważ, że kret zaczyna skakać na ekranie telefonu, gdy tylko zdefiniujesz obsługę zdarzenia. Oznacza to, że działania w projekcie App Inventor podejmowane są natychmiast po ich zdefiniowaniu.''
===Dodaj obsługę dotknięcia kreta===
<li>Wywołuje procedurę MoveMole, aby kret został przesunięty natychmiast, bez czekania na licznik czasu.</li></ol>
Zestaw ze sobą bloki, tak jak pokazano na ilustracji:
 
[[Plik:t4-6.png]]
[[Plik:info.png]]''Podpowiedź: do szybkiego tworzenia bloków możesz użyć funkcji ich wpisywania (typeblocking):''<ul><li>Aby utworzyć blok wartości zawierający 100, wystarczy w obszarze roboczym wpisać 100 i nacisnąć Enter.</li><li>Aby utworzyć blok MoveMole, po prostu wpisz MoveMole i wybierz żądany blok z listy.</li></ul>===Reset wyniku===
Końcowa czynność to resetowanie wyniku. Celem ten czynności jest sprawienie, aby przycisk ResetButton zmieniał wynik na 0 i wywoływał procedurę UpdateScore.
===Kompletny program===
Oto kompletny program MoleMash:
 
[[Plik:t4-7.png]]
===Modyfikacje===
Gra już działa, ale może zechcesz wprowadzić pewne zmiany?
<ul><li>Możesz sprawić, aby gra zmieniała tempo w zależności od tego, jak dobrze gracz sobie radzi. Aby to zrobić, zmodyfikuj właściwość Interval licznika czasu MoleTimer.</li><li>Możesz śledzić trafione (w kreta) oraz chybione dotknięcia kanwy i pokazywać wynik dla obu przypadków. Aby to zrobić, zdefiniuj obsługę zdarzenia dotknięcia dla komponentu Kret (Mole), i dla kanwy MyCanvas. Odpowiedź na pytanie, czy dotknięcie Kreta traktowana będzie tak samo, jak dotknięcie kanwy MyCanvas jest twierdząca.</li></ul>===Podsumowanie===
Oto niektóre zagadnienia omówione w tym projekcie:
<ul><li>Duszki to kształty reagujące na dotyk, które można zaprogramować tak, aby poruszały się po Kanwie.</li><li>Komponent zegara (Clock) może służyć jako zegar do wywoływania zdarzeń, które występują w regularnych odstępach.</li><li>Procedury definiuje się za pomocą bloków to .</li><li>Utworzenie bloku ułamka losowego (random fraction) tworzy liczbę między 0 i 1.</li><li>Typeblocking to sposób szybkiego tworzenia bloków przez wpisanie nazwy bloku.</li></ul>===Zeskanuj telefonem próbną aplikację===
Aby zainstalować i uruchomić aplikację próbną, zeskanuj telefonem poniższy kod kreskowy:
 
[[Plik:t4-8.png]]
===Pobierz kod źródłowy===
Jeżeli chcesz pracować z tą próbką w programie App Inventor:
<ul><li>pobierz na komputer kod źródłowy ([appinventor.mit.edu/explore/sites/all/files/ai2tutorials/moleMash/MoleMash.aiaappinventor.mit.edu/explore/sites/all/files/ai2tutorials/moleMash/MoleMash.aia])</li><li>otwórz program App Inventor, </li><li>kliknij opcję Projects (Projekty), </li><li>wybierz Import project (.aia) from my computer... (Import projektu z komputera)</li><li>znajdź i zatwierdź pobrany kod źródłowy</li></ul>
353
edycje