Instrukcje if mogą mieć wiele wymagań, które muszą być spełnione, zanim kod zostanie wykonany. Słowo kluczowe and pozwala na łączenie instrukcji. Poniższy kod najpierw ocenia, czy dwa plus dwa równa się sześć, a następnie czy cztery nie równa się sześciu. Jeśli obie instrukcje są prawdziwe, kod zostanie wykonany.
-- nie zostanie wykonaneif 2 + 2 == 6 and 4 ~= 6 thenprint("Obie instrukcje są prawdziwe")end-- zostanie wykonaneif 4 + 2 == 6 and 4 ~= 6 thenprint("Obie instrukcje są prawdziwe")end
Stwórz powerup
Powerupy to przedmioty w grze, które dają graczom specjalne umiejętności, takie jak latanie, niewidzialność lub szybkość. Ten powerup zwiększy prędkość chodzenia gracza za każdym razem, gdy powerup zostanie dotknięty. Ciągłe stosowanie przyspieszeń może sprawić, że gracz będzie poruszał się zbyt szybko, więc and będzie używane do kontrolowania górnej granicy prędkości chodzenia.
Ustaw powerup
Użyj tego kodu z prostą częścią lub modelem, takim jak kryształ, moneta lub świecąca neonowa kula.
Stwórz nową część o nazwie Powerup i wstaw skrypt o nazwie WalkSpeedManager.
Zdeklaruj zmienną o nazwie speedBoost i przypisz obiekt rodzica skryptu.
-- Daje tymczasowe przyspieszenie prędkości, gdy zostanie dotkniętelocal speedBoost = script.ParentUstaw funkcję o nazwie onTouch i połącz ją z zdarzeniem Touched obiektu rodzica. Następnie przetestuj grę i sprawdź swoją pracę.
local speedBoost = script.Parentlocal function onTouch(otherPart)print("Coś dotknęło speedBoost")endspeedBoost.Touched:Connect(onTouch)Właściwość WalkSpeed znajduje się w obiektach Humanoid. Użyj tego samego wzorca, co podczas tworzenia części pułapki i stwórz warunek, który sprawdza obiekty Humanoid.
Szukaj części Humanoidlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenprint("Znaleziono Humanoid")endend
Przyspiesz graczy
Przyspieszenie prędkości sprawi, że awatary będą chodziły szybciej za każdym razem, gdy powerup zostanie dotknięty. To szybko stanie się bardzo, bardzo szybkie. Słowo kluczowe and zapewni, że gracze nie będą mogli poruszać się zbyt szybko, włączając przyspieszenie tylko wtedy, gdy gracz znajduje się poniżej określonej prędkości.
Jeśli Humanoid zostanie znaleziony, weź wartość bieżącego WalkSpeed i dodaj do niej 10. Przetestuj grę, a twój awatar przyspieszy za każdym razem, gdy dotknie przyspieszenia.
Zwiększa bieżący WalkSpeedlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid thenhumanoid.WalkSpeed += 10endendspeedBoost.Touched:Connect(onTouch)W instrukcji if użyj słowa kluczowego and, aby dodać drugi warunek, że bieżąca wartość WalkSpeed jest mniejsza niż 50. Po dodaniu przyspieszenia, najszybsza wartość WalkSpeed wyniesie 60.
Sprawdza, czy bieżący WalkSpeed wynosi 50 lub mniejif humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10end
Dopracuj przyspieszenie
OnTouch jest wywoływane za każdym razem, gdy powerup zostaje dotknięty. Każdy krok lub najmniejsze odbicie wyzwala zdarzenie Touch i wywołuje połączoną funkcję. Właściwość części CanTouch może powstrzymać zdarzenie Touched od wywołania. Skorzystaj z CanTouch i wyłącz przyspieszenie na jedną sekundę za każdym razem, gdy zostanie aktywowane.
Po zastosowaniu przyspieszenia, ustaw właściwość CanTouch części na false. Przetestuj grę i upewnij się, że przyspieszenie zastosuje się tylko raz.
Wyłącza przyspieszenielocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falseendendspeedBoost.Touched:Connect(onTouch)Użyj task.wait(1), aby wstrzymać skrypt na jedną sekundę, a następnie ustaw CanTouch na true. Przetestuj grę i upewnij się, że przyspieszenie można ponownie zastosować po jednej sekundzie.
Zakończony skryptlocal speedBoost = script.Parentlocal function onTouch(otherPart)local character = otherPart.Parentlocal humanoid = character:FindFirstChildWhichIsA("Humanoid")if humanoid and humanoid.WalkSpeed <= 50 thenhumanoid.WalkSpeed += 10speedBoost.CanTouch = falsetask.wait(1)speedBoost.CanTouch = trueendendspeedBoost.Touched:Connect(onTouch)Zabaw się z wartościami w zakończonym skrypcie. WalkSpeed może wzrosnąć do 100. Domyślna wartość WalkSpeed wynosi 16.
Podsumowanie
Słowo kluczowe and może być używane do wymuszania wielu warunków przed uruchomieniem kawałka kodu, takimi jak wartość większa niż 0 i mniejsza niż 100. Lub że jeśli istnieje Humanoid i jego WalkSpeed jest mniejszy lub równy 50.