Indholdsfortegnelse:
- Eksempelkode for en tastaturbegivenhed for at anvende lokal kraft
- Eksempelkode for venstre og højre tastaturbegivenheder
Video: Fysik: Varmekapacitet og specifik varmekapacitet (repetition) 2024
I GameMaker: Studio får du dit objekt defineret for fysik, du vil muligvis tillade spilleren at flytte objektet rundt i lokalet under spillet. De følgende to afsnit viser, hvordan du tilføjer bevægelse til et objekt, samt gør et objekt drej til venstre eller højre.
Eksempelkode for en tastaturbegivenhed for at anvende lokal kraft
For at anvende kraft til et objekt for at få det til at bevæge sig, skal du oprette en tastaturhændelse som beskrevet i den følgende procedure. Bare følg disse trin:
-
Dobbeltklik på obj_player-objektet eller et andet relevant objekt fra ressource-træet.
Vinduet Objektegenskaber vises.
-
Vælg Tilføj event → Tastatur → Op.
En op tastaturhændelse vises i afsnittet Events.
-
Træk og slip en udfør kodehandling fra fanen Kontrol til Handlinger-vinduet.
Der vises et tomt kodevindue.
-
Indtast følgende kode i kodevinduet:
physics_apply_local_force (0, 0, 0, -50);
-
Klik på den grønne markering.
Kodevinduet gemmes og lukkes.
Denne kode bruger det lokale koordinatsystem til at indstille en vektor til fremdrivning. De lokale koordinater er baseret på Sprite, hvor X- og Y-akserne møder på Origin. Så, uanset hvilken måde objektet roteres i lokalet, ændres oprindelsen af Sprite aldrig. På den måde vil X = 0, Y = -1 altid være lige under Sprite, som vist i denne figur.
Den første værdi i denne funktion er for xlocal, den anden værdi er ylocal, den tredje er xforce_local, og den sidste værdi repræsenterer yforce_local. Ved at bruge værdien -50 som værdien for yforce_local, placerer du kraft bag skibet, der skubber skibet fremad.
Mængden af kraft er baseret på værdien, så et større antal placerer større kraft. Eksperimenter med dette ved at ændre værdien fra -50 til -5000 for at se, hvilken forskel det gør. Hvis du bruger et positivt tal (sige 50) bemærker, at skibet ser ud til at bevæge sig baglæns i stedet for fremad.
Lokale koordinater er baseret på Sprite's Origin som angivet ved den røde cirkel.Eksempelkode for venstre og højre tastaturbegivenheder
For at aktivere afspilleren til at dreje objektet, tilføj venstre og højre tastaturhændelser. For at få spilleren til at dreje objektet til venstre, skal du følge disse trin:
-
Dobbeltklik på obj_player-objektet eller et andet relevant objekt fra ressource-træet.
Vinduet Objektegenskaber vises.
-
Vælg Tilføj event → Tastatur → Venstre.
En venstre tastaturhændelse vises i afsnittet Events.
-
Træk og slip en udfør kodehandling fra fanen Kontrol til Handlinger-vinduet.
Der vises et tomt kodevindue.
-
Indtast følgende kode i kodevinduet:
phy_angular_velocity = 0; phy_rotation- = 10;
-
Klik på den grønne markering.
Kodevinduet gemmes og lukkes.
Under spillet kan afspilleren nu dreje objektet til venstre. Denne kode tilføjer eller trækker fra fysikrotationen, hvilket styrer retnings-og billedvinklen på objektet, når afspilleren trykker på venstrepilstasten.
For at få spilleren til at dreje objektet til højre, skal du følge disse trin:
-
Dobbeltklik på obj_player Object (eller et andet relevant objekt) fra ressource-træet.
Vinduet Objektegenskaber vises.
-
Vælg Tilføj event → Tastatur → Højre.
En højre tastaturhændelse vises i afsnittet Events.
-
Træk og slip en udfør kodehandling fra fanen Kontrol til Handlinger-vinduet.
Der vises et tomt kodevindue.
-
Indtast følgende kode i kodevinduet:
phy_angular_velocity = 0; phy_rotation + = 10;
-
Klik på den grønne markering.
Kodevinduet gemmes og lukkes. Denne kode tilføjer eller trækker fra fysikrotationen, hvilket styrer retnings- og billedvinklen på objektet, når afspilleren trykker på højre piletast.
Du kan give objektet en mere naturlig drejning ved at bruge physics_apply_torque til at rotere objektet ved hjælp af drejningsmoment, som er rotationsstyrken. Drejningsmoment tager højde for objektets masse og gør det langsommere, ligesom et virkeligt objekt; Men i et spil, vil du ikke altid have, at det skal være for rigtigt (det er jo et spil).
En anden forskel mellem fysikverdenen i GameMaker: Studio og de traditionelle funktioner er, at normalt er retnings- og billedvinklen beregnet mod uret, så at tilføje 10 til retningsvariablen vil dreje objektet til venstre. Når man bruger fysik, beregnes retninger og vinkler med uret, så tilføjelse af 10 til rotationsværdien roterer objektet til højre.