game maker
Gebruikersnaam:
Wachtwoord:
Home Info Forums Help
Welkom, Gast. Alsjeblieft inloggen of registreren.
De activerings e-mail gemist?
+  Forums
|-+  Werken met Game Maker
| |-+  Tutorials en Uitbreidingen (Moderator: Maarten Baert)
| | |-+  [Tut] Scores
Pagina's: [1] 2
« vorige volgende »
Print
Advertenties

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Gepost op: 14 Mei 2009, 21:18:33 »

Score(s) gebruiken
GM-versie:  Game Maker 6 en  Game Maker 7
Registratie vereist: Nee
Niveau: Beginner

Inleiding
Ik heb deze tutorial geschreven omdat er redelijk wat vragen komen over score. Eigenlijk werkt het precies hetzelfde als bij een variabele, dus als je variabelen kent is het niet echt meer nodig. Maar voor degenen die nog niet met GML willen gaan werken maar wel scores willen gebruiken: deze tutorial.
Ik heb het verdeeld in twee hoofdstukken: een score bijhouden en meerdere scores bijhouden.

Een score bijhouden
GameMaker heeft voor een enkele score een ingebouwd score systeem (net als voor health en lives). Het kan met drag&drop, maar dat is lastiger uitleggen. Daarom doe ik het toch in GML, maar maak je geen zorgen er komt bijna geen code aan te pas.
Btw, gml code of een scriptje moet hier:  GM069

Stel je voor een spelletje pacman. In het begin is de score 0, bij een bolletje krijg je er 2 punten bij, en als je door een spookje geraakt wordt gaat er in dit geval niet alleen een leven af, maar ook 10 punten. Tot slot heb je een bonus, die verdubbelt je score.
Nu dit stap voor stap uitwerken:

'het begin' is dus create event. Zet in het create event
GML:
score = 0

Dan bij een bolletje, dat is een collision event. Dus in het collision event van pacman met een bolletje zet
GML:
score = score + 2
//of korter, maar doet hetzelfde:
score += 2
//een van de twee dus, niet beide gebruiken

Dan komt er een spookje aan, collision event met een spookje:
GML:
score = score - 10
//of korter, maar doet hetzelfde:
score -= 10

En tot slot als je een powerup raakt (collision event van pacman met powerup):
GML:
score = score*2
//of weer korter:
score *= 2

Vergeet echter niet ook het object waar pacman een collision event mee maakt te verwijderen, anders verdubbelt je score 30 keer per seconde, of krijg je er opeens 30 keer per seconde 2 punten bij ofzo!


Meerdere scores bijhouden
Dit werkt vrijwel precies hetzelfde als bij één score, maar dan moet je het woordje 'score' in de code vervangen door een andere variabele.
Neem weer hetzelfde pacmanspelletje, maar dan voor 2 spelers.

In het create event van beide spelers moeten we een andere variabele maken als score. Score is namelijk een ingebouwde variabele van gamemaker, en is in elk object hetzelfde. Als je het in object A veranderd, is het ook anders in object B. Dit is echter niet als je een variabele gebruikt als scoore (ik noem maar wat).
Dus in alle events weer hetzelfde, voor beide spelers, maar dan score vervangen door scoore (of iets anders).
GML:
//create event
scoore=0
//collision met bolletje
scoore += 2
//collsion met spookje
scoore -= 10
//collision event met powerup
scoore *= 2

Ook kan je dingen gebruiken als 'score_speler1' en 'score_speler2' als je die van speler 1 in het create event van speler 1 zet, en die van speler 2 in het create event van speler 2.

Slot
Zoals je ziet is een variabele gebruiken eigenlijk precies hetzelfde als score bijhouden, alleen is 'score' toevallig ingebouwd in gamemaker en een variabele als 'scoore' niet.
Ik hoop dat jullie er wat aan hebben, en misschien is de stap naar GML gebruiken nu ook minder groot Gemoedelijk
edit: Op verzoek kan ik de D&D manier ook toevoegen! /edit.

Succes, Luc.

« Laatste verandering: 21 December 2010, 13:05:01 door lucb1e »

Naar boven Gelogd

sanderpsdd
Gebruiker


Offline Offline

Berichten: 294

Never to late! ~Pro~


« Antwoord #1 Gepost op: 20 Mei 2009, 22:07:33 »

Voor beginners handige tutorial.. Ook heel ruimte besparend op het Beginners forum.. Er worden namelijk elke dag 1/2 vragen gesteld Tong

Grtz,

Sander Gemoedelijk


Hmm upload > download? Twijfelachtig

Naar boven Gelogd

mastersem
Gebruiker


Offline Offline

Berichten: 472

Proness comes from skillz, not postcount :)


WWW
« Antwoord #2 Gepost op: 21 Mei 2009, 08:45:48 »

ook slim is een array maken voor meerdere scores:
GML:
punten[0] = 0; //speler 1
punten[1] = 0; //speler 2
punten[2] = 100; //Ik neem lekker voorsprong hehehe ;)

Knipoog voor de rest mooie tutorial, goed uitgelegt voor beginners Knipoog


Listen to my sister singing Make you feel my love!

^ make her famous! spread the word! ^
Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Antwoord #3 Gepost op: 21 Mei 2009, 12:35:01 »

ook slim is een array maken voor meerdere scores:
GML:
punten[0] = 0; //speler 1
punten[1] = 0; //speler 2
punten[2] = 100; //Ik neem lekker voorsprong hehehe ;)

Knipoog
Ik denk dat echte beginners die nog geen variabele kennen al helemaal niet overweg kunnen met arrays, of het anders later door elkaar gaan halen met andere dingen ofzo. Gewone variabelen werken ook wel Gemoedelijk
Citaat
voor de rest mooie tutorial, goed uitgelegt voor beginners Knipoog
Maar bedankt voor het compliment Blij


Naar boven Gelogd

olaf-pim
Gebruiker

Offline Offline

Berichten: 3


« Antwoord #4 Gepost op: 11 Juni 2009, 12:58:59 »

iemand hier enig idee hoe ik dit toepas dat je per seconde 1 punt bij je score opkrijgt?

Naar boven Gelogd

legend hoods
Gebruiker


Offline Offline

Berichten: 476


« Antwoord #5 Gepost op: 11 Juni 2009, 13:14:54 »

iemand hier enig idee hoe ik dit toepas dat je per seconde 1 punt bij je score opkrijgt?

Create event:

GML:
alarm[0] = 60;

Alarm 0 event:

GML:
score += 1;
alarm[0] = 60;

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Antwoord #6 Gepost op: 11 Juni 2009, 13:59:08 »

60 moet normaal 30 zijn hoor Knipoog
room_speed gebruiken is eigenlijk het beste. Dan maakt het niet uit of je 30 of 60 gebruikt.

create event
GML:
alarm[0]=room_speed;
alarm 0 event
GML:
score += 1;
alarm[0]=room_speed;

Met wat geluk wordt mn tutorial over timing straks geplaatst, daar staat ook uitleg in over current_second Gemoedelijk


Naar boven Gelogd

legend hoods
Gebruiker


Offline Offline

Berichten: 476


« Antwoord #7 Gepost op: 11 Juni 2009, 14:22:50 »

60 moet normaal 30 zijn hoor Knipoog
room_speed gebruiken is eigenlijk het beste. Dan maakt het niet uit of je 30 of 60 gebruikt.

create event
GML:
alarm[0]=room_speed;
alarm 0 event
GML:
score += 1;
alarm[0]=room_speed;

Met wat geluk wordt mn tutorial over timing straks geplaatst, daar staat ook uitleg in over current_second Gemoedelijk
Whoops sorry dat klopt  Gemoedelijk

Maarja, jij ownt mij met jouw roomspeed  Engel

Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Antwoord #8 Gepost op: 11 Juni 2009, 17:09:25 »

Nouja het kan zelfs nog beter Tong
Room speed is alleen wat het spel probeert te halen. Het kan zijn dat je game 28fps haalt ofzo. (ik gebruik in plaats van roomspeed geen fps omdat deze in het begin 0 is en niet altijd klopt na messages ofzo).
2fps minder is natuurlijk geen groot probleem voor normale spellen, maar als het om een langere periode gaat kan het best wat schelen. Met current_second kun je op de seconde nauwkeurig zijn zelfs als je 2fps haalt Knipoog


Naar boven Gelogd

Danderend
Gebruiker


Offline Offline

Berichten: 150

SoortVanWeb.tk


WWW
« Antwoord #9 Gepost op: 18 Februari 2010, 16:35:46 »

Ey weten jullie ook hoe je je score in hoogte kan rekenen bijv bij dit spel hoe hoger je gaat hoe meer punten

http://www.funnygames.nl/spel/lawine_klimmer.html


Naar boven Gelogd

miesmiesmies
Gebruiker


Offline Offline

Berichten: 210

Army in Fight


« Antwoord #10 Gepost op: 18 Februari 2010, 17:39:56 »

Dan zou het handig zijn om een var van je hoogte te hebben, maar wil je dan dat je elke keer meer seconden meer punten krijgt, of dat je al ben je 500 meter, dat je dan 750 punten hebt b.v.


Naar boven Gelogd

Danderend
Gebruiker


Offline Offline

Berichten: 150

SoortVanWeb.tk


WWW
« Antwoord #11 Gepost op: 18 Februari 2010, 17:56:49 »

Dan zou het handig zijn om een var van je hoogte te hebben, maar wil je dan dat je elke keer meer seconden meer punten krijgt, of dat je al ben je 500 meter, dat je dan 750 punten hebt b.v.
Hoe bedoel je een var in je hoogte en idd elke seconde hoogte meer punten dan meters ja


Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Antwoord #12 Gepost op: 19 Februari 2010, 22:32:37 »

Je kunt bijvoorbeeld zoiets doen score+=(ystart-y)/500;
Bedoel je zoiets?


Naar boven Gelogd

wesleycoomans
Gebruiker


Offline Offline

Berichten: 201


« Antwoord #13 Gepost op: 23 December 2010, 14:27:02 »

Ik heb een paar van jullie code's geprobeerd maar krijg steets error pls help  

Foto's



GML:
punten[0] = 0; //onj_speler
punten[1] = 0; //obj_speler2
punten[2] = 100; //Ik heb meer vlag gestolen ;)

Mijn spel http://easy-upload.nl/f/nGGKPgHH

« Laatste verandering: 23 December 2010, 14:29:51 door wesleycoomans »

Ik maak een birdview game van de spel dayz, van arma 2. Dit is een remake in gm,  en gaat nog lang tijd aan werken hoop eind 2014 al een beta te kunnen releasen. Er komt een klein 3d effect in zodat wat beter uit gaat zien.
Naar boven Gelogd

lucb1e
Gebruiker


Offline Offline

Berichten: 4556


WWW
« Antwoord #14 Gepost op: 23 December 2010, 23:52:29 »

Ik heb je spel even vlug doorgekeken, maar zie niet veel van scores staan.

Het idee is dus dit, je moet zodra de spelers gemaakt worden hun lokale score instellen. Niet de ingebouwde variabele score hiervoor gebruiken, als je deze aanpast verandert de score voor beide spelers. Je kan dit doen door in de spelers objecten te zetten, create event: score_aantal = 0;
Zodra iemand een punt krijgt (de ander raakt, collision event bijvoorbeeld):
speler_die_punten_krijgt.score_aantal += 1;
(+= doet het erbij optellen, hetzelfde als relative in D&D doet).
Let op dat je de speler_die_punten_krijgt veranderd in het goede object Knipoog
Als er punten afgaan gebruik je dezelfde code, maar dan vervang += door -=.

Ik hoop dat het een beetje duidelijker is Gemoedelijk


Naar boven Gelogd

Advertenties
« vorige volgende »
Pagina's: [1] 2
Print


Topic Informatie
0 geregistreerde leden en 1 gast bekijken dit topic.

Ga naar:  

Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines
www.game-maker.nl © 2003-2020 Nederlandse Game Maker Community