Contents

Jak tworzyć ulepszenia i przedmioty kolekcjonerskie w Godot

Dodawanie ulepszeń i elementów kolekcjonerskich do gry Godot może znacznie poprawić wrażenia gracza, czyniąc ją bardziej wciągającą i ekscytującą. Wzmocnienia mogą zapewniać graczowi specjalne zdolności lub tymczasowe korzyści, podczas gdy przedmioty kolekcjonerskie mogą służyć jako nagrody, zwiększając wynik gracza lub zapewniając inne korzyści.

Na szczęście tworzenie ulepszeń i przedmiotów kolekcjonerskich w Godot okazuje się bezproblemowym procesem dzięki przyjaznemu dla użytkownika językowi skryptowemu i wbudowanemu silnikowi fizyki.

Konfigurowanie gry Godot

Aby zainicjować ten proces, użyj silnika gry Godot, aby stworzyć dwuwymiarowe środowisko gry. Rozpocznij od utworzenia nowej sceny w silniku i dodania do niej węzła „CharacterBody2D”. W tym węźle umieść komponent „CollisionShape2D” o prostokątnym kształcie symbolizującym fizyczne granice gracza, a także element „Sprite2D” do przedstawiania wyglądu głównego bohatera.

Dostęp do kodu źródłowego tej demonstracji można uzyskać za pośrednictwem repozytorium w serwisie GitHub, które jest udostępniane bezpłatnie na warunkach licencji MIT, umożliwiając użytkownikom korzystanie z niego bez żadnych kosztów ani ograniczeń nałożonych przez opłaty licencyjne.

Aby zaimplementować funkcjonalność obsługi ruchu gracza i wykrywania kolizji z granicami ekranu w wyrafinowany sposób za pomocą GDScript, można wykorzystać następujący fragment kodu jako punkt wyjścia: gdscriptextends Nodevar speed_x=10 * (input.is_pressed(“left”)-input.is_pressed(“right”))var speed_y=10 * (input.is_pressed(“up”)-input.is_pressed(“down”))var przyspieszenie=Vector2(speed_x, speed_y)var maxSpeed ​​=50var onGround=falsevar groundedTime=0func _process(_delta: float): void{move_and_slide()}

 extends CharacterBody2D

var speed = 200

func _physics_process(delta):
    var velocity = Vector2()

    if Input.is_action_pressed('ui_right'):
        velocity.x \+= 1

    if Input.is_action_pressed('ui_left'):
        velocity.x -= 1

    if Input.is_action_pressed('ui_down'):
        velocity.y \+= 1

    if Input.is_action_pressed('ui_up'):
        velocity.y -= 1

    velocity = velocity.normalized() * speed
    move_and_collide(velocity * delta)

Dostarczony kod umożliwia użytkownikowi nawigację w różnych kierunkach za pomocą klawiszy strzałek. Dodatkowo reguluje prędkość ruchu poprzez normalizację wektora prędkości i zastosowanie regulowanego parametru prędkości.

Dodatkowo konieczne jest generowanie podmiotów kontradyktoryjnych wyposażonych w zindywidualizowane strefy kolizji oraz reprezentacje graficzne. Aby uregulować poruszanie się wrogów, można zastosować porównywalne podejście do funkcji przetwarzania fizyki zastosowanej dla głównego bohatera.

/pl/images/simple-game-for-collectibles-in-godot.jpg

Tworzenie przedmiotów kolekcjonerskich

Zbieranie przedmiotów, takich jak monety, często odgrywa integralną rolę w grach wideo, a te wirtualne żetony służą poprawie ogólnego doświadczenia graczy. W tym kontekście rozsądne byłoby wprowadzenie unikalnej i atrakcyjnej wizualnie monety kolekcjonerskiej, która po zdobyciu przyczynia się do zwiększenia wyniku gracza. Ta dodatkowa wartość punktowa może potencjalnie sięgnąć nawet dwudziestu punktów, zapewniając w ten sposób namacalną nagrodę dla tych, którzy aktywnie poszukują tych specjalnych przedmiotów kolekcjonerskich.

Aby stworzyć monetę kolekcjonerską w swojej grze, najpierw wprowadź nową scenę w edytorze Unity. Następnie zaimportuj obiekt Area2D, który posłuży jako fizyczna reprezentacja monety. W obrębie tego obszaru Area2D , włącz komponent CollisionShape2D z okrągłym konturem, aby zdefiniować granice obszaru kolidującego. Dodatkowo dołącz zasób Sprite2D, aby wizualnie przedstawić wygląd monety na ekranie.

Rzeczywiście, aby zaimplementować tę funkcję, będziesz musiał włączyć wspomniany fragment kodu GDScript do swojego skryptu odtwarzacza. Umożliwi to graczowi wykrywanie i interakcję z pobliskimi interaktywnymi obiektami.

 extends CharacterBody2D

var score = 0

func _on_area_2d_body_entered(body):
    get_parent().get_node("Collectibles").queue_free()
    score \+= 20 

Ten fragment kodu wykorzystuje sygnał \_on\_area\_2d\_body\_entered do identyfikowania, kiedy postać gracza penetruje kolidujące pole monety do kolekcjonowania. W takim przypadku uważa się, że gracz odebrał monetę, co następnie prowadzi do jej usunięcia z wyświetlacza wizualnego za pomocą metody queue\_free(). W rezultacie wynik gracza zostaje powiększony o dwadzieścia punktów.

/pl/images/collectibles-in-godot.jpg

Tworzenie ulepszeń

Ulepszenia mogą potencjalnie zwiększyć emocje związane z grą, zapewniając graczom tymczasowe korzyści lub zdolności. Rozważ zastosowanie wzmocnienia, które uruchamia 10-sekundowe odliczanie po uzyskaniu. Kiedy gracz wejdzie w kontakt z przeciwnikiem w tym okresie, musi go wyeliminować.

Aby wygenerować wzmocnienie w naszym silniku gry, musimy najpierw utworzyć nową Scenę w hierarchii projektu. Następnie powinniśmy utworzyć instancję obiektu Area2D w ramach tej nowo utworzonej sceny, która będzie służyć jako kontener przestrzenny dla wzmocnienia. W obszarze Area2D możemy następnie wstawić komponent CollisionShape2D, który definiuje właściwości geometryczne zderzacza zasilania. Ponadto ważne jest, aby dołączyć atrakcyjną wizualnie reprezentację wzmocnienia, dodając instancję Sprite2D do tej samej właściwości komponentu obszaru 2D. Ta kombinacja komponentów razem utworzy obiekt wzmacniający w naszym silniku gry.

Włącz wspomniany fragment kodu do skryptu odtwarzacza, dołączając go pod istniejącym kodem.

 extends CharacterBody2D

var timer_duration = 10
var power_up_active = false

func _on_powerups_body_entered(body):
    get_parent().get_node("Powerups").queue_free()
    power_up_active = true

    # Start the timer
    await get_tree().create_timer(10.0).timeout
    power_up_active = false

func _on_enemy_body_entered(body):
    if power_up_active:
        get_parent().get_node("Enemy").queue_free()
    else:
        queue_free() 

Obecny kod wykorzystuje

Funkcja inicjuje licznik czasu za pomocą await i create\_timer , który ma czas trwania wynoszący dziesięć sekund. Jeśli w tym okresie postać gracza zetknie się z przeciwnikiem, spowoduje to jego zniszczenie.

Wyświetlanie zebranych przedmiotów kolekcjonerskich

Włączenie wizualnej reprezentacji zgromadzonych elementów kolekcjonerskich w interfejsie gry może wywołać u użytkownika poczucie spełnienia i postępu. Odpowiednim podejściem do osiągnięcia tego celu jest zainicjowanie tworzenia atrakcyjnego wizualnie i skutecznie umieszczonego elementu Label w lewym górnym kwadrancie wyświetlacza.

Aby zmodyfikować tekst etykiety, gdy gracz zbiera przedmiot kolekcjonerski, prosimy o włączenie następującego fragmentu kodu GDScript do swojego projektu:

 extends Label

func _ready():
    self.text = "Collectibles: 0" 

W skrypcie Player.gd:

 extends CharacterBody2D

var bar

func _ready():
    bar = get_parent().get_node("Label")

func _physics_process(delta):
    bar.text = "Collectibles: " \+ str(score/20) 

Obecny kod modyfikuje wygląd etykiety, aby odzwierciedlić całkowitą liczbę zdobytych przedmiotów kolekcjonerskich, którą można określić, dzieląc zgromadzone przez daną osobę punkty przez dwadzieścia.

/pl/images/display-collectibles-in-godot.jpg

Zawiera dodatkowe funkcje

Można rozważyć włączenie dodatkowych atrybutów lub cech do swojego systemu ulepszeń i kolekcjonowania, aby podnieść ogólne wrażenia z gry. Niektóre potencjalne koncepcje obejmują:

Wiele poziomów ulepszeń

Zamiast ograniczać wybór do jednego poziomu ulepszeń, możliwe jest włączenie różnych stopni mocy dla tych ulepszeń. Aby to zilustrować, standardowy akcelerator może zostać podniesiony do wersji zastępczej programisty, która zapewnia użytkownikowi jeszcze bardziej znaczący wzrost prędkości.

Combo power-upy

Zastanów się nad opracowaniem różnych synergicznych kombinacji wzmocnień, z których każda ma charakterystyczne i groźne konsekwencje podczas akumulacji. Zainspiruj graczy do rozważenia i przetestowania różnych zestawów tych ulepszeń w celu osiągnięcia optymalnych korzyści.

Ograniczanie ulepszeń

Rozważ wprowadzenie okresu karencji lub ograniczenia częstotliwości, z jaką gracze mogą uzyskać określone wzmocnienie. Takie środki wprowadziłyby do rozgrywki aspekt wyboru, zmuszając użytkowników do wybrania optymalnego czasu na zastosowanie tego ulepszenia.

Odmiany kolekcjonerskie

Opracuj różnorodne przedmioty do kolekcjonowania w grze platformowej, które oferują różne korzyści po zdobyciu. Może to obejmować asortyment elementów kolekcjonerskich, które zapewniają dodatkowe życia, chwilowe ulepszenia lub aktywują unikalne funkcje rozgrywki po zebraniu.

Sprawdzone metody wdrażania ulepszeń i elementów kolekcjonerskich

Podczas włączania ulepszeń i elementów kolekcjonerskich do gry Godot konieczne jest przestrzeganie pewnych najlepszych praktyk w celu uzyskania optymalnej wydajności i zadowolenia użytkownika.

Równowaga i testowanie gry

Aby zachować równowagę i uczciwość w grze, ważne jest, aby dokładnie przetestować wszystkie ulepszenia i elementy kolekcjonerskie, upewniając się, że ich efekty i nagrody są odpowiednio dostosowane, aby zapewnić graczom przyjemne wrażenia z gry.

Opinia wizualna i dźwiękowa

Wykorzystaj estetyczne symbole lub grafikę, aby zaznaczyć ulepszenia i przedmioty kolekcjonerskie. Ponadto włącz odpowiednie sygnały dźwiękowe wolne od praw autorskich, aby zapewnić satysfakcjonującą informację zwrotną po zdobyciu przez gracza tych elementów.

Interfejs użytkownika (UI)

Stwórz elegancki i prosty interfejs użytkownika, który w przejrzysty sposób przedstawia istotne dane dotyczące ulepszeń i elementów kolekcjonerskich. Zawiera elementy wizualne wskazujące czas trwania aktualnie aktywowanych ulepszeń, a także skumulowaną liczbę przedmiotów kolekcjonerskich zdobytych przez gracza. Dodatkowo dołącz wszelkie dodatkowe istotne informacje, które uznasz za niezbędne do poprawy ogólnych wrażeń z gry.

Konsystencja

Zapewnienie spójności między power-upami i przedmiotami kolekcjonerskimi ma kluczowe znaczenie dla zachowania jednolitego doświadczenia z gry, ponieważ odzwierciedla przestrzeganie głównego motywu i zasad rządzących mechaniką gry.

Zapisz i załaduj

Aby zapewnić płynną rozgrywkę i zachęcić do dalszej gry, ważne jest włączenie funkcji zapisywania i wczytywania postępów gracza w odniesieniu do wszelkich trwałych elementów gry, takich jak ulepszenia lub elementy kolekcjonerskie. Pomoże to zapewnić, że postępy gracza zostaną zachowane, nawet jeśli zdecyduje się tymczasowo wyjść z gry, promując w ten sposób chęć ponownego odwiedzenia gry w przyszłości.

Postępowanie zgodnie z tymi zalecanymi metodami pozwoli na opracowanie wyjątkowego systemu ulepszeń i kolekcjonowania, który po zintegrowaniu z rozgrywką Godota może potencjalnie podnieść jego ogólną wartość rozrywkową i zapewnić graczom wyższy poziom satysfakcji.

Uatrakcyjnianie gier Godot dzięki ulepszeniom i elementom kolekcjonerskim

Wykazano, że włączenie ulepszeń i przedmiotów kolekcjonerskich do gry Godot zwiększa zaangażowanie graczy i wartość powtórki, oferując ekscytujące, krótkoterminowe korzyści dla graczy.

Dzięki przemyślanemu planowaniu i wykonywaniu ulepszeń i przedmiotów kolekcjonerskich można zapewnić graczom coraz bardziej wciągające i satysfakcjonujące wrażenia z gry. Zdolność adaptacji i prostota Godota ułatwiają tworzenie atrakcyjnych ulepszeń i elementów kolekcjonerskich, które uzupełniają podstawową mechanikę gry i ogólną satysfakcję.