Innholdsfortegnelse:
- Eksempelkode for en tastaturhendelse for å bruke lokal styrke
- Eksempelkode for venstre og høyre tastaturhendelser
Video: LIBGDX para Android - Tutorial 20 - Box2D - How to make games Android 2024
I GameMaker: Studio får du objektet ditt definert for fysikk, du vil kanskje tillate spilleren å flytte objektet rundt i rommet under spillet. Følgende to seksjoner viser hvordan du legger til bevegelse til et objekt, så vel som å gjøre et objekt sving til venstre eller høyre.
Eksempelkode for en tastaturhendelse for å bruke lokal styrke
For å bruke kraft til et objekt for å få det til å bevege seg, opprett en tastaturhendelse som beskrevet i følgende fremgangsmåte. Bare følg disse trinnene:
-
Dobbeltklikk på obj_player-objektet eller et annet relevant objekt fra ressurs-treet.
Objektegenskaper-vinduet vises.
-
Velg Legg til hendelse → Tastatur → Opp.
En opp tastaturhendelse vises i delen Events.
-
Dra og slipp en utfør kodeutgave fra kontrollfanen til handlingsvinduet.
Et tomt kodevindu vises.
-
Skriv inn følgende kode i kodevinduet:
physics_apply_local_force (0, 0, 0, -50);
-
Klikk på det grønne merket.
Kodevinduet lagres og lukkes.
Denne koden bruker lokalt koordinatsystem for å sette en vektor for fremdrift. De lokale koordinatene er basert på Sprite, hvor X- og Y-aksene møtes ved Origin. Så, uansett hvilken måte objektet roteres i rommet, endres spritets opprinnelse aldri. På den måten vil X = 0, Y = -1 alltid være like under Sprite, som vist i denne figuren.
Den første verdien i denne funksjonen er for xlocal, den andre verdien er ylocal, den tredje er xforce_local, og den siste verdien representerer yforce_local. Ved å bruke verdien -50 som verdien for yforce_local, plasserer du kraft bak skipet som skyver skipet fremover.
Mengden er basert på verdien, så et større antall plasserer større kraft. Eksperimenter med dette ved å endre verdien fra -50 til -5000 for å se hvilken forskjell det gjør. Hvis du bruker et positivt nummer (si 50) merk at skipet ser ut til å bevege seg bakover i stedet for fremover.
Lokale koordinater er basert på Sprite's Origin som betegnet av den røde sirkelen.Eksempelkode for venstre og høyre tastaturhendelser
For å aktivere spilleren til å snu objektet, legg til venstre og høyre tastaturhendelse. For å få spilleren til å dreie objektet til venstre, følg disse trinnene:
-
Dobbeltklikk obj_player-objektet eller et annet relevant objekt fra ressurs-treet.
Objektegenskaper-vinduet vises.
-
Velg Legg til hendelse → Tastatur → Venstre.
En venstre tastaturhendelse vises i delen Events.
-
Dra og slipp en utfør kodeutgave fra kontrollfanen til handlingsvinduet.
Et tomt kodevindu vises.
-
Skriv inn følgende kode i kodevinduet:
phy_angular_velocity = 0; phy_rotation- = 10;
-
Klikk på det grønne merket.
Kodevinduet lagres og lukkes.
Under spillet kan spilleren nå dreie objektet til venstre. Denne koden legger til eller trekker fra fysikkrotasjonen, noe som styrer retnings- og bildevinkelen til objektet når spilleren trykker på venstre piltast.
For å få spilleren til å dreie objektet til høyre, følg disse trinnene:
-
Dobbeltklikk obj_player-objektet (eller et annet relevant objekt) fra ressurs-treet.
Objektegenskaper-vinduet vises.
-
Velg Legg til hendelse → Tastatur → Høyre.
En høyre tastaturhendelse vises i delen Hendelser.
-
Dra og slipp en utfør kodeutgave fra kontrollfanen til handlingsvinduet.
Et tomt kodevindu vises.
-
Skriv inn følgende kode i kodevinduet:
phy_angular_velocity = 0; phy_rotation + = 10;
-
Klikk på det grønne merket.
Kodevinduet lagres og lukkes. Denne koden legger til eller trekker fra fysikkrotasjonen, noe som styrer retnings- og bildevinkelen til objektet når spilleren trykker på høyre piltast.
Du kan gi objektet en mer naturlig sving ved å bruke physics_apply_torque for å rotere objektet ved å bruke dreiemoment, som er rotasjonskraften. Dreiemoment tar hensyn til objektets masse og gjør at det blir tregere, som et virkelighetsobjekt; Men i et spill vil du ikke alltid at det skal være for ekte (det er et spill, tross alt).
En annen forskjell mellom fysikkverdenen i GameMaker: Studio og de tradisjonelle funksjonene er at normalt blir retnings- og bildevinkelen beregnet mot klokken, så det legges 10 til retningsvariabelen vil rotere objektet til venstre. Men når du bruker fysikk, beregnes retninger og vinkler med klokken, så legger 10 til rotasjonsverdien roterer objektet til høyre.