HT Spellen

Hoe maak je een Mario-spel in Gamemaker?

Het maken van een Mario-game in GameMaker Studio 2 omvat veel stappen en vereist een goed begrip van het platformgenre en de functionaliteiten van GameMaker. Hier volgt een basisoverzicht om u door het proces te begeleiden:

1. Het project opzetten:

* Nieuw project: Maak een nieuw GameMaker-project.

* Bronnen:

* Sprites: Importeer sprites voor Mario, vijanden, blokken, power-ups, achtergronden, enz.

* Geluiden: Importeer geluiden voor springen, rennen, munten verzamelen, power-ups, enz.

* Tegelsets: Mogelijk moet u een tegelset maken voor de niveaukaart als u een op tegels gebaseerd niveauontwerp gebruikt.

* Spelvariabelen:

* `zwaartekracht` (bijvoorbeeld 0,5)

* `mario_speed` (bijvoorbeeld 5)

* `spring_hoogte` (bijvoorbeeld 10)

* `player_lives` (bijvoorbeeld 3)

* `score` (bijvoorbeeld 0)

2. Het spelerobject maken:

* Speler Sprite: Wijs de Mario-sprite toe aan het object.

* Evenement maken:

* Initialiseer spelervariabelen zoals `x`, `y`, `speed`, `is_grounded`, `is_jumping`, enz.

* Stel de initiële levens van spelers in en scoor.

* Stapgebeurtenis:

* Beweging:

* Controleer op linker- en rechtertoetsaanslagen.

* Pas de horizontale snelheid van de speler aan op basis van toetsaanslagen.

* Pas 'zwaartekracht' toe op de verticale snelheid van de speler.

* Springen:

* Controleer of er een sprongtoets is ingedrukt.

* Als 'is_grounded' is, stel dan 'is_jumping' in op true en pas de sprongsnelheid toe.

* botsingsdetectie:

* Controleer op botsingen met grond en muren.

* Als u tegen de grond botst, stelt u `is_grounded` in op true.

* Als u tegen een muur botst, voorkom dan verdere beweging in die richting.

* Trekevenement:

* Teken de speler-sprite.

3. Het niveau creëren:

* Kameropstelling: Creëer een nieuwe kamer voor jouw niveau.

* Niveauontwerp:

* Gebruik tegelsets of teken individuele objecten voor de niveaugeometrie.

* Plaats platforms, blokken, vijanden, power-ups, enz.

* Objectbotsingen:

* Configureer objectbotsingen.

* De speler moet bijvoorbeeld tegen blokken en muren botsen, maar niet tegen power-ups.

* Achtergrond:

* Voeg een achtergrondafbeelding of tegelkaart toe.

4. Vijanden toevoegen:

* Maak vijandelijk object:

* Wijs vijandelijke sprite toe.

* Definieer vijandelijk gedrag in het Step Event (bijvoorbeeld naar links en rechts bewegen, de speler achtervolgen).

* Botsing met speler:

* Detecteer een botsing tussen de speler en vijanden.

* Schadelogica implementeren (bijvoorbeeld een leven verliezen).

5. Power-ups implementeren:

* Maak een power-upobject:

* Wijs power-up-sprite toe.

* Pas in het botsingsevenement met de speler power-upeffecten toe (bijvoorbeeld vergroot de omvang, verkrijg onoverwinnelijkheid).

6. Game Over implementeren en winnen:

* Game voorbij:

* Ontdek wanneer de speler geen levens meer heeft.

* Geef een game-over-scherm weer.

* Winnen:

* Definieer een winnende voorwaarde (bijvoorbeeld het bereiken van het einde van het level).

* Geef een winnend scherm weer of ga door naar het volgende niveau.

7. Geavanceerde functies:

* Geluidseffecten: Voeg geluidseffecten toe voor acties zoals springen, munten verzamelen, enz.

* Muziek: Voeg achtergrondmuziek toe.

* Scrollende achtergrond: Implementeer scrollende achtergrondfunctionaliteit.

* Meerdere niveaus: Creëer meerdere kamers om verschillende niveaus weer te geven.

* Niveau-editor: Overweeg om een ​​niveau-editor te maken, zodat u gemakkelijker niveaus kunt maken.

Codevoorbeeld (spelerbeweging):

```gml

// Evenement maken

snelheid =0;

is_geaard =onwaar;

is_jumping =onwaar;

// Stapgebeurtenis

als (toetsenbordcontrole(vk_left)) {

snelheid =-mario_snelheid;

} anders als (keyboard_check(vk_right)) {

snelheid =mario_snelheid;

} anders {

snelheid =0;

}

// Pas zwaartekracht toe

vsnelheid +=zwaartekracht;

// Springen

if (keyboard_check_PRESS(vk_space) &&is_grounded) {

vsnelheid =-sprong_hoogte;

is_jumping =waar;

}

// Botsing met de grond

if (place_meeting(x, y + vspeed, obj_ground)) {

vsnelheid =0;

is_geaard =waar;

is_jumping =onwaar;

} anders {

is_geaard =onwaar;

}

// Horizontale botsing

if (place_meeting(x + snelheid, y, obj_ground)) {

snelheid =0;

}

// Verplaats de speler

x +=snelheid;

y +=vsnelheid;

```

Dit is een heel eenvoudig voorbeeld, en je zult het aanzienlijk moeten uitbreiden om een ​​volwaardig Mario-spel te creëren.

Vergeet niet dat het ontwikkelen van games tijd en moeite kost. Begin met eenvoudige mechanica en voeg geleidelijk de complexiteit toe. Gebruik de GameMaker-documentatie en online tutorials om je op weg te helpen.


https://nl.htfbw.com © HT Spellen