|
autor: BROO
1. PCT?
Wielu z nas zdarzyło się mieć problem z działaniem zdarzenia. Okazywało się, że nie działały one, bądź działały w dobry sposób. Zakładając, że twórca nie popełnił błędu merytorycznego, należy zastanowić się nad bardzo ważnym zagadnieniem: kolejnością warunków. Właśnie od niej zależy, czy będziemy pobierać informacje od odpowiednich obiektów.
2. Trochę teorii
Na potrzeby tekstu wprowadzam pojęcie najmłodszego obiektu (NOwy), oraz skrót obiektu aktywnego (OA). Otóż, NOwy to jest OA danego rodzaju, który został utworzony na planszy jako ostatni (można by rzec - świeżo upieczony). Właśnie ten najmłodszy reprezentuje wszystkie wybrane obiekty danego rodzaju.
3. Zasady selekcji obiektów
3.1. Zasada poboru informacji od OA:
Dla danego rodzaju OA, pobór informacji obiektu oznacza pobór informacji od NOwy.
Dowód:
ściągnij materiał
Masz pięć OA "klocek" (zielony kwadrat) oraz tyle samo OA "detektor" (czerwony kwadrat), są one stworzone w kolejności podanej na planszy.

rys.1: rozmieszczenie i kolejność tworzenia obiektów
"Detektor" ma ustawiony ruch na odbijany skierowany w dół. W zdarzeniach ma ustawiony warunek:
1. jeżeli pozycja Y "detektor" >= pozycja Y "klocek"
-> zniszcz "detektor"
Na pierwszy rzut oka "detektor" powinien zostać zniszczony, gdy znajdzie się niżej od obiektu "klocek" z numerkiem "2". Tak się jednak nie stanie. "Detektor" zostanie zniszczony dopiero, gdy będzie poniżej obiektu "klocek" z numerkiem "5"! Jak wiadomo, obiekt ten ("klocek" z "5") został stworzony jako ostatni, czyli jest NOwy-m.
cnd.
3.2. Zasada "compare two general values"
Wybór informacji obiektów nie powoduje ich selekcji
Dowód:
ściągnij materiał
Selekcja oznacza wybranie tych OA, którymi naprawdę jesteśmy zainteresowani (tych, które spełniają warunki w zdarzeniu). Funkcja "compare two general values" z zakładki "special" nie ma jakiegokolwiek wpływu na ich wybór, lecz pobiera informacje (od NOwego).
Test2 jest niemalże kopią pierwszego przykładu. Jednak zmieniłem warunek jedynego zdarzenia: teraz opiera się on na "compare two general values". Co otrzymujesz: nagle wszystkie "detektory" znikają. Kiedy to się dzieje? Gdy NOwy "detektor" będzie poniżej NOwego "klocka".

rys.2: jeden z "detektorów" nie zniknął pomimo tego, że jest
niżej od NOwego "klocka"
Jak to udowodnić? Po prostu przesuń "detektor" znajdujący się po samej lewej (tak, ten "detektor" jest NOwy) w taki sposób, byś nie miał(a) problemów z wykazaniem, że właśnie od niego zależy to, kiedy wszystkie "detektory" zostaną zniszczone (np.: umieść ten NOwy "detektor" niedaleko od "klocka" z "5").
Zmusza nas to do przemyślenia: dlaczego w pierwszym przykładzie "detektory" niszczyły się w odpowiedni sposób, a dlaczego w drugim nie? Więc czas na trzecią zasadę...
3.3. Zasada selekcji OA
Tworzenie warunku "opartego" na OA powoduje selekcję tych OA.
Dowód:
ściągnij materiał
Jest to wniosek wynikający z poprzednich dwóch zasad. Strzałki - ruch "detektorami". Jeżeli warunek zaczynasz od wyboru własności "od obiektu" (czyli klikasz prawym przyciskiem myszy na obiekt i wybierasz, co chcesz sprawdzić), to program automatycznie utworzy listę OA, którymi ma się zająć przy wykonywaniu akcji i sprawdzaniu kolejnych warunków. W tym przykładzie za pomocą klawiszy "1" i "2" wybierasz metodę sprawdzania, czy warunki są prawdziwe.

rys.3: "detektory" zmieniają kolory,
jeśli spełniają
dany warunek (na rysunku
metoda "1")
Metoda "1" jest lepsza, ponieważ wykonuje warunki dla wszystkich "detektorów", których pozycja X>120 i pozycja Y>200.
Metoda "2" wykonuje warunki, jeśli pozycja X NOwego>120 i pozycja Y NOwego>200.
3.4. Związek wartości stałej i NOwego
NOwy OA danego rodzaju to taki, który posiada największą wartość stałą spośród OA swojego rodzaju.
Dowód:
ściągnij materiał
W tym przykładzie za pomocą myszy możesz zobaczyć, jaką wartość stałą ma obiekt "klocek" (po najechaniu na niego pokazuje się w wartości licznika na dole), a także (za pomocą kliknięcia) utworzyć nowy "klocek". "Detektory" poruszasz za pomocą strzałek. Jeżeli ich pozycja Y będzie większa od Y NOwego "klocka" - zostaną zniszczone.

rys.4: stworzono więcej "klocków" (te dwa najwyżej),
to one są teraz NOwsze od tego
z "5"
(jeden "detektor" już
przepadł)
Zauważ, że każdy nowo-utworzony (NOwy) "klocek" ma większą wartość stałą do innych "klocków".
4. Po słowie
Ten kurs zawiera tylko podstawy na temat zagadnienia poprawnej selekcji OA. Nie zapewniam, że jest on w 100% ścisły, gdyż skupiłem się na najbardziej potrzebnych do omówienia problemach. Aby zrozumieć sposoby selekcji OA, należy znać sposób pobierania informacji, jakim kliki się posługują. Polecam zastanowić się jeszcze nad kolejnymi zasadami:
3.5. Nowo utworzony jeden obiekt staje się od razu obiektem wybranym (z racji tego, że jest NOwy? nie sprawdzałem)
3.6. Warunki selekcji spod grupy "New objects" także dokonują właściwej selekcji OA
W kolejnym kursie postaram się przytoczyć kilka kolejnych własności selekcji/poboru informacji OA
bądź zająć się istotą czasu, w jakim zostają wykonane niektóre z akcji (również
przysparza wielu kłopotów), albo po prostu lepszym podejściu do dzisiejszego
zagadnienia .
|