How to change screen orientation in Godot?

Skift Skærmretning i Godot: En Komplet Guide

02/04/2025

Rating: 4.74 (6164 votes)
Indholdsfortegnelse

Styr Skærmens Orientering i Godot Engine

I spiludvikling, især når man arbejder med mobile platforme eller spil, der skal tilpasses forskellige skærmstørrelser, er evnen til at kontrollere skærmens orientering afgørende. Godot Engine tilbyder en fleksibel tilgang til dette, der giver udviklere mulighed for at definere, hvordan deres spil skal præsentere sig på forskellige enheder. Uanset om du ønsker et spil, der kun kører i portræt- eller landskabstilstand, eller et der dynamisk kan skifte, guider denne artikel dig gennem processen.

How to change screen orientation in Godot?
1. How do I change the screen orientation in Godot using code? To change the screen orientation in Godot using code, you can use the set_screen_orientation () function. This function takes in a constant value that represents the desired orientation, such as SCREEN_PORTRAIT or SCREEN_LANDSCAPE.

Grundlæggende Indstillinger for Skærmretning

Det første skridt til at styre skærmretningen i Godot er at forstå de indstillinger, der er tilgængelige i projektindstillingerne. Disse indstillinger giver dig mulighed for at definere den foretrukne orientering for dit spil globalt.

For at få adgang til disse indstillinger skal du navigere til Projekt -> Projektindstillinger i Godot-editoren. I vinduet Projektindstillinger finder du en sektion kaldet Display. Under Display er der en indstilling kaldet Orientation.

Her har du typisk følgende valgmuligheder:

  • Portrait: Tvinger spillet til at køre i portrætstilstand.
  • Landscape: Tvinger spillet til at køre i landskabstilstand.
  • Sensor Portrait: Tillader spillet at rotere mellem portræt og omvendt portræt, baseret på enhedens sensorer.
  • Sensor Landscape: Tillader spillet at rotere mellem landskab og omvendt landskab, baseret på enhedens sensorer.
  • Sensor: Tillader spillet at rotere frit i alle fire retninger (portræt, omvendt portræt, landskab, omvendt landskab) baseret på enhedens sensorer.

Valget af disse indstillinger vil påvirke, hvordan dit spil opfører sig på mobile enheder og andre platforme, der understøtter skærmrotation.

Programmatisk Kontrol af Skærmretning

Mens projektindstillingerne er gode til at sætte en global standard, er der situationer, hvor du måske ønsker at ændre skærmretningen dynamisk under spillet. Dette kan være nyttigt for at tilpasse oplevelsen baseret på specifikke spilsituationer eller brugerinput.

Godot giver dig mulighed for at ændre skærmretningen ved hjælp af GDScript. Hovedfunktionen til dette er OS.set_screen_orientation(). Denne funktion tager et argument, der angiver den ønskede orientering.

Her er et eksempel på, hvordan du kan bruge denne funktion:

# Skift til landskabstilstand os.set_screen_orientation(OS.SCREEN_ORIENTATION_LANDSCAPE) # Skift til portrætstilstand os.set_screen_orientation(OS.SCREEN_ORIENTATION_PORTRAIT) # Tillad sensorbaseret rotation os.set_screen_orientation(OS.SCREEN_ORIENTATION_SENSOR) 

Du kan kalde denne funktion fra ethvert script i dit spil. Det er ofte en god idé at placere disse kald i funktioner, der udløses af bestemte begivenheder, f.eks. når en spiller starter et nyt niveau, eller når en bestemt menu åbnes.

Overvejelser ved Skærmrotation

Når du implementerer skærmrotation i dit spil, er der flere vigtige overvejelser, du skal tage højde for:

Brugeroplevelse (UX)

Det er afgørende at tænke over, hvordan skærmrotation påvirker brugeroplevelsen. Tvinger du brugeren til at rotere deres enhed? Eller lader du dem vælge? En god UX betyder, at rotationen føles naturlig og ikke forstyrrer spillets flow.

Layout og UI

Når skærmen roterer, skal dit spils layout og brugergrænseflade (UI) tilpasses. Knapper, tekst og andre elementer skal placeres hensigtsmæssigt i både portræt- og landskabstilstand. Godot har indbyggede værktøjer som Control Nodes, der kan hjælpe med at skabe responsive layouts.

Spilmekanik

Nogle spilmekanikker fungerer bedre i en bestemt orientering. For eksempel kan et spil, der kræver præcise bevægelser med en virtuel controller, være lettere at styre i landskabstilstand. Overvej, hvordan orienteringen påvirker spillets kerneoplevelse.

Platformspecifikke Overvejelser

Selvom Godot abstraherer meget af platformspecifikke detaljer, kan der stadig være forskelle i, hvordan skærmrotation håndteres på iOS og Android. Det er altid en god idé at teste dit spil grundigt på begge platforme.

Eksempel: Dynamisk Rotation ved Knaptryk

Lad os se på et simpelt eksempel, hvor vi bruger en knap til at skifte mellem portræt og landskab.

Forestil dig, at du har en scene med et Button node og et Label node.

Her er et GDScript, der kan tilknyttes knappen:

extends Button var is_landscape = false func _ready(): connect("pressed", self, "_on_Button_pressed") func _on_Button_pressed(): if is_landscape: os.set_screen_orientation(OS.SCREEN_ORIENTATION_PORTRAIT) $Label.text = "Skift til Landskab" is_landscape = false else: os.set_screen_orientation(OS.SCREEN_ORIENTATION_LANDSCAPE) $Label.text = "Skift til Portræt" is_landscape = true 

I dette eksempel skifter knappen mellem portræt og landskab, hver gang den trykkes. Et label opdateres også for at give brugeren feedback om den aktuelle tilstand.

Opsummering af Orientationsmuligheder

Det er nyttigt at have en oversigt over de tilgængelige orientationsindstillinger og deres effekter:

KonstantBeskrivelse
OS.SCREEN_ORIENTATION_PORTRAITTvinger portrætvisning.
OS.SCREEN_ORIENTATION_LANDSCAPETvinger landskabsvisning.
OS.SCREEN_ORIENTATION_SENSOR_PORTRAITTillader rotation mellem portræt og omvendt portræt.
OS.SCREEN_ORIENTATION_SENSOR_LANDSCAPETillader rotation mellem landskab og omvendt landskab.
OS.SCREEN_ORIENTATION_SENSORTillader fri rotation i alle retninger.

Ofte Stillede Spørgsmål (FAQ)

Hvordan sikrer jeg, at mit UI ser godt ud i begge orienteringer?

Brug Godots Control Nodes og deres indbyggede layout-systemer, såsom HBoxContainer, VBoxContainer og GridContainer. Du kan også bruge Anchor Presets til at positionere elementer relativt til skærmens kanter. Overvej at have separate UI-layouts til portræt og landskab, som du kan skifte imellem ved hjælp af kode, når orienteringen ændres.

Kan jeg forhindre brugeren i at rotere skærmen?

Ja, ved at sætte projektindstillingen Display -> Orientation til enten Portrait eller Landscape. Hvis du har brug for at gøre det dynamisk under kørsel, skal du simpelthen undlade at kalde os.set_screen_orientation() med sensor-relaterede værdier.

Hvad er forskellen på SENSOR og SENSOR_LANDSCAPE?

SENSOR_LANDSCAPE tillader rotation mellem de to landskabsretninger (normal og omvendt), mens SENSOR tillader rotation i alle fire retninger (portræt, omvendt portræt, landskab, omvendt landskab).

Hvordan håndterer jeg ændringer i skærmstørrelse, når orienteringen ændres?

Godot genberegner automatisk mange af dine UI-elementers positioner og størrelser baseret på den nye skærmstørrelse og DPI. Du skal dog muligvis justere specifikke elementer eller layouts manuelt i din kode eller i editoren for at sikre optimal visning. Brug get_viewport().get_visible_rect() til at få den aktuelle synlige skærmstørrelse.

At mestre skærmorientering i Godot er en vigtig færdighed for enhver spiludvikler. Ved at forstå de grundlæggende indstillinger og de programmatiske muligheder kan du skabe spil, der ser fantastiske ud og føles intuitive på enhver enhed.

Hvis du vil læse andre artikler, der ligner Skift Skærmretning i Godot: En Komplet Guide, kan du besøge kategorien Teknologi.

Go up