Nederlandse Game Maker Community

Werken met Game Maker => Tutorials en Uitbreidingen => Topic gestart door: lucb1e op 14 Mei 2009, 21:18:33



Titel: [Tut] Scores
Bericht door: lucb1e op 14 Mei 2009, 21:18:33
Score(s) gebruiken
GM-versie:  :gm6: en  :gm7:
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 :)
edit: Op verzoek kan ik de D&D manier ook toevoegen! /edit.

Succes, Luc.


Titel: Re: [tut] scores
Bericht door: sanderpsdd 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 :P

Grtz,

Sander :)


Titel: Re: [tut] scores
Bericht door: mastersem 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 ;)

;) voor de rest mooie tutorial, goed uitgelegt voor beginners ;)


Titel: Re: [tut] scores
Bericht door: lucb1e 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 ;)

;)
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 :)
Citaat
voor de rest mooie tutorial, goed uitgelegt voor beginners ;)
Maar bedankt voor het compliment :D


Titel: Re: [tut] scores
Bericht door: olaf-pim 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?


Titel: Re: [tut] scores
Bericht door: legend hoods 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;


Titel: Re: [tut] scores
Bericht door: lucb1e op 11 Juni 2009, 13:59:08
60 moet normaal 30 zijn hoor ;)
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 :)


Titel: Re: [tut] scores
Bericht door: legend hoods op 11 Juni 2009, 14:22:50
60 moet normaal 30 zijn hoor ;)
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 :)
Whoops sorry dat klopt  :)

Maarja, jij ownt mij met jouw roomspeed  :angel:


Titel: Re: [tut] scores
Bericht door: lucb1e op 11 Juni 2009, 17:09:25
Nouja het kan zelfs nog beter :P
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 ;)


Titel: Re: [tut] scores
Bericht door: Danderend 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 (http://www.funnygames.nl/spel/lawine_klimmer.html)


Titel: Re: [tut] scores
Bericht door: miesmiesmies 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.


Titel: Re: [tut] scores
Bericht door: Danderend 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


Titel: Re: [tut] scores
Bericht door: lucb1e op 19 Februari 2010, 22:32:37
Je kunt bijvoorbeeld zoiets doen score+=(ystart-y)/500;
Bedoel je zoiets?


Titel: Re: [Tut] Scores
Bericht door: wesleycoomans op 23 December 2010, 14:27:02
Ik heb een paar van jullie code's geprobeerd maar krijg steets error pls help  

Foto's
(http://easy-upload.nl/f/44QTMNwR.png) (http://easy-upload.nl/f/44QTMNwR)


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


Titel: Re: [Tut] Scores
Bericht door: lucb1e 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 ;)
Als er punten afgaan gebruik je dezelfde code, maar dan vervang += door -=.

Ik hoop dat het een beetje duidelijker is :)


Titel: Re: [Tut] Scores
Bericht door: wesleycoomans op 10 Maart 2013, 15:01:47
Ik zie dat je meer kan maken maar kan je uitleggen waarom gm denkt dat scoore het zelfde is als score, en waarom het zelfde manier werkt?


Titel: Re: [Tut] Scores
Bericht door: Laloeka op 10 Maart 2013, 15:44:36
GML:
score
is een ingebouwd variabele van GameMaker. Dat betekent dat GameMaker hier automatisch al wat dingetjes mee doet / kan doen.

Als je zelf een andere score bij wilt houden, maak je zelf een variabele aan. In dit geval scoore, maar die naam kun je zelf kiezen.

GameMaker zal niet, omdat jij de variabele als een score ziet, er automatisch dingen mee doen. GameMaker ziet het namelijk gewoon als een normaal variabele (wat het ook is).

Je moet dus zélf de score bijhouden en de dingen met de score doen die je ermee wilt doen.

Zie het kopje #2 hier (http://www.game-maker.nl/forums/topic,77192.msg536880/topicseen#msg536880) voor meer uitleg over het gebruik van variabelen.


Titel: Re: [Tut] Scores
Bericht door: wesleycoomans op 10 Maart 2013, 16:13:23
Dankje ik snap nu :)


Titel: Re: [Tut] Scores
Bericht door: Jumping Mammoth Games op 25 Juni 2013, 14:41:35
ik heb nu met score gedaan maar ik zie nergens je score staan


Titel: Re: [Tut] Scores
Bericht door: Laloeka op 25 Juni 2013, 15:36:06
In de titelbalk van de window staat de score. Als je de score op het scherm wilt tekenen moet je een functie als draw_text gebruiken:
GML:
draw_text(x, y, <variabele | string>)

Of in D&D: :GM110:


Titel: Re: [Tut] Scores
Bericht door: PiJoKra op 25 Juni 2013, 15:50:48
In de titelbalk van de window staat de score. Als je de score op het scherm wilt tekenen moet je een functie als draw_text gebruiken:
GML:
draw_text(x, y, <variabele | string>)

Of in D&D: :GM110:
Oftewel:
GML:
draw_text(x,y,"Jouw score is: " + String(score));


Titel: Re: [Tut] Scores
Bericht door: Ruud Verbeek op 25 Juni 2013, 15:59:59
Oftewel:
GML:
draw_text(x,y,"Jouw score is: " + String(score));
Foutje:
GML:
draw_text(x,y,"Jouw score is: " + string(score));
Jij had String met een hoofdletter S :o


Titel: Re: [Tut] Scores
Bericht door: PiJoKra op 25 Juni 2013, 16:57:27
Foutje:
GML:
draw_text(x,y,"Jouw score is: " + string(score));
Jij had String met een hoofdletter S :o
Oeps, komt doordat het in JavaScript String() is en ik daar veel meer mee werk. :P


Titel: Re: [Tut] Scores
Bericht door: lucb1e op 25 Juni 2013, 22:06:06
Dat is zo handig hier, als een van mijn tutorials een nieuwe reactie krijgt zijn er meestal al éen of twee anderen die gereageerd hebben en het probleem al hebben beantwoord zoniet opgelost ^^.


www.game-maker.nl © 2003, 2007 Nederlandse Game Maker Community