Els events, pas a pas

“Create event” (Event de Creació)
Això succeeix quan una instància d’objecte es crea, és a dir, just en el moment anterior a la seva creació. És normalment utilitzat per donar moviment a la instància o control dins del nivell o room

“Destroy event” (Event de Destrucció)
Això succeeix quan una instància d’objecte és destruïda. Per ser precís, succeeix just abans de la seva destrucció; doncs una instància encara existeix amb totes les seves propietats si hi ha events executant-se (un objecte fora de la pantalla si no l’hem destruït encara està actiu i consumint memòria, un altre tema és que no el veiem: ull viu!, cal desfer-se de tot allò innecessari)

“Alarm events” (Event d’Alarma)
Cada instància disposa de vàries alarmes [0-11]. Podem iniciar aquestes alarmes de moltes maneres, com per exemple, per començar

un compte enrere o per definir que passarà al transcórrer aquest temps (canvis de direcció, canvis d’instàncies, creació de nous recursos, etc.). L’única cosa que hem de tenir present és que són d’un sol ús i, al ser utilitzades, si no diem una altra cosa, quedaran inactives

“Step events” (Event de “Pas” del joc)

Els events de pas (step) succeeixen a cada pas del joc (el pas és la unitat de mesura de temps a Game Maker i 30 passos equivalen a 1 segon). Aquí pots posar accions que necessitis que s’executin contínuament (has de ser curós doncs abusar d’aquest event fa que la memòria s’empleni i que el joc s’alenteixi)
Existeixen tres tipus d’aquests events:

“Begin Step” (Inici de Pas) s’executa al inici de cada pas del joc, just abans de qualsevol altre event
“Step” (Pas normal) s’executa abans que les instàncies es col.loquin a les noves posicions
“End Step” (Fi de Pas) s’executa al final de cada pas en el joc, just abans de dibuixar la pantalla (és típicament usat per canviar la imatge depenent de la direcció del moviment)

“Collision events” (Event de Col.lisió o xoc)
Es produeix aquest event quan dues instances topen, és a dir, quan les seves imatges es toquen o es sobreposen. Per ser precisos, dos events de col.lisió són generats; un per a cada instance. Al seleccionar aquest botó ens mostrarà, en un menú secundari, tots els objectes definits a l’arbre de recursos per poder triar la instància que reaccionarà davant d’aquest event (per exemple, si el personatge principal volem que topi amb una paret haurem de seleccionar-la, des del quadre de propietats del propi personatge, fent que aquest no pugui continuar tot perdent vida i la paret quedi inerta o canviï la instància per una que es mostri desgastada). El control d’aquest moment és imprescindible perquè el joc funcioni i llueixi, doncs per fer-ho hem de seleccionar primer l’event de col.lisió i desprès associar-hi les accions: hi ha una gran diferència si topa un objecte que és sòlid amb un que no ho és, o si ho fan dos que són sòlids o dos que no ho són (de la mateixa manera que no cal definir, l’event de col.lisió, als dos objectes si no volem)

Anem a pams, si l’altre objecte és sòlid, la instància sòlida del primer topa i es situa més allunyada del que es trobava; fruit de l’efecte rebot (si enllacés amb un altre objecte tornaria a rebotar i així fins a quedar aturat). Per contra, si l’altre objecte no és sòlid, la instància del primer no es situa a la posició anterior per topar si no que passa de través desplaçant-se (si no hem definit res més)
En resum, dominar aquest moment de col.lisió, és garantia d’una correcta implantació doncs n’hi ha molts, poden anar intercalats i són els responsables de les diferents accions, entre personatges, que es duen a terme durant el joc. Per exemple: com bé sabeu en conegut Pac-man és un menja cocos, doncs, quan la figura principal topa amb un coco (d’aquells grocs) es produeix aquest event; el personatge avança, es fabrica un so característic, el coco desapareix i es sumen punts al marcador (el responsable de tot d’això és l’event de col.lisió; bé del personatge, bé del coco o de tots dos)

“Keyboard events” (Event del Teclat)
Quan el jugador prem una tecla diem que un event de teclat s’està executant. Existeixen tants events com a tecles definides presents a qualsevol teclat internacional i, per activar-ne un, només cal assignar la

tecla en qüestió i arrossegar les acciones desitjades des de la llibreria d’eines. Al fer clic sobre el botó apareixen totes les tecles i seleccionant-les queden definides, òbviament només uns objectes necessitaran aquest event: els protagonistes
Existeixen dos events associats especials el No key (Cap tecla) quan a cada pas del joc cap tecla es prem i el Any key (Qualsevol tecla) quan es prem qualsevol sense especificació (aquests events no cal definir-los directament doncs, al deixar anar una tecla, normalment deixa de produir-se l’acció original)
Cal dir que hi ha un funcionament especial en aquesta versió del Game Maker sobre les tecles, si premem vàries tecles s’executen els events alhora i, amb ells, les accions prèviament definides… ull viu!, també cal dir que si definim avents pel teclat numèric només funcionaran quan aquest s’activi des del NumLock (BloqNum)

“Mouse events” (Event del Ratolí)
Un event del Mouse es produeix, per a una instància, quan el cursor del mateix està dins de la imatge que representa al objecte (quadre extern original definit al sprite). Depenent del botó del Mouse que sigui podem obtenir: No Button (Cap Botó), Left Button (Botó Esquerre), Right Button (Botó Dret) o

Middle Button (Botó central del Mouse). Si aquest disposa d’una “Mouse wheel” es produeix al prémer la roda com si d’un botó es tractés
Els anteriors events es generen a cada pas del joc sempre i quan premem aquests botons, per contra els events pressed (premut) i release (alliberat) són generats una sola vegada i només si el cursor es troba a sobre de la pròpia instància… si volem activar o utilitzar els events anteriors de forma general (per tota la pantalla) hem d’emprar els que trobem definits com a globals dins d’un menú particular de la pròpia eina
Existeixen dos events particulars d’aquest dispositiu: el Mouse Enter i el Mouse Leave que s’executen quan el cursor entra o surt del objecte respectivament, s’utilitzen normalment per canviar la imatge sprite de la instància o per activar algun so
Finalment també tenim alguns events relacionats amb el Joystick (quina passaaaaada!) en aquest mateix apartat. Podem definir events per a les quatre direccions diagonals i fins a una vuitena dels mateixos pels botons de control (si els teniu al dispositiu). Aquestes accions produïdes pels events controlen un Joystick primari i un de secundari, suportats alhora pel programa en qüestió (Game Maker)
Mirant això pensareu: Ostres, puc fer un joc per a 5 jugadors!, doncs la resposta és SI, però pareu compte: el jugador 1 i el 2 han d’anar amb el teclat, el ratolí l’ha d’utilitzar el participant número 3 quedant els Joystick’s pels darrers 4 i 5. Si no es respecta aquesta norma no funciona doncs, originalment, només podien jugar dues persones; i que ara ho facin cinc es tracta d’un bug del programari: ningú és perfecte!

“Other events” (Altres events)
Existeixen uns events extra que poden ser útils en alguns jocs i que trobem en aquest menú particular:

Outside room (Fora de la room) la instància del objecte surt completament de la habitació o nivell de joc. És un bon moment per destruir-la o per fer-la aparèixer per un altre costat, cal anar en compte amb l’ús de la memòria dispnible
Intersect boundary (Al límit o frontera) la instància intercepta o arriba al límit de la room però encara la veiem podent fer que reboti, s’aturi o canvií
Game start (Inici del joc) s’executa en el primer nivell del joc quan el joc s’inicia just després del event room start, però abans del event de creació de las instàncies del objecte a l’habitació. És un event típicament definit en un objecte controlador i és emprat, per exemple, per iniciar alguna música, variables o carregar informació d’ajuda
Game end (Fi del joc) s’executa per a totes las instàncies quan el joc conclou (o tu hi surts). De nou, típicament es defineix aquest event en un únic objecte i es usat, per exemple, per guardar alguna informació a un arxiu
Room start (Inici de Room) aquest s’executa per a totes les instàncies que inicialment es situïn a la room o nivell del joc, al ser iniciada. Succeeix just després dels events de creació (Creation) de las instàncies
Room end (Fi de Room) s’executa per a totes les instàncies existents quan el nivell del joc conclou
No more lives (No més vides) Game Maker disposa d’un sistema definit de vides (lives – hi ha una acció per establir-les i canviar-les a mode de variable interna). Quan el seu identificador és menor o igual a zero, l’event es genera i s’utilitza típicament per cloure o reiniciar el joc
No more health (No més energia) Game Maker també disposa d’un sistema definit d’energia (health – hi ha una acció per establir i canviar l’energia). Quan l’energia és menor o igual a zero, l’event es genera; sent típicament usat per reduir el nombre de vides o per reiniciar el joc
Animation end (Fi de l’animació) Com indicàvem, una animació consisteix en un cert número d’imatges que són mostrades en cadena. De la primera a l’última en el que anomenem subimatges actives, aquest event s’executa un cop hem vist l’última imatge i abans de canviar-la, un altre cop, per la primera
End of path (Final de camí o trajectòria) Es genera quan la instància està seguint un camí o path en el seu final
User defined (Event definits pel usuari) Tenim una vuitena d’events que normalment no es generen si no ho fem, via codi, nosaltres mateixos sota GML

“Draw event” (Event de dibuix)

Les instàncies quan són visibles dibuixen automàticament la seva imatge a cada pas del joc. Quan s’especifiquen accions en aquest event, la imatge no es dibuixa, però aquestes accions són executades en el seu lloc (normalment ens ensenyarà el programa un interrogant de color blau, en lloc d’un sprite corrent). Això pot ser emprat per dibuixar alguna cosa més que la imatge a pantalla… existeixen doncs vàries accions de dibuixat que estan disponibles per ser utilitzades especialment aquí, com el text a pantalla amb el nom dels jugadors, informació extra pels participants o pantalles de felicitació o benvinguda

“Key Press” (Event al prémer una tecla)

Aquest event és similar al event Keyboard però aquest succeeix una única vegada quan la tecla es pressiona, en lloc de funcionar contínuament. És útil quan necessites que les accions s’executin una única vegada

“Key Release” (Event al no prémer una tecla o alliberar-la)

Aquest event és similar al No key (Cap tecla) del event Keyboard, és útil quan necessites que les accions deixin d’executar-se o passi alguna cosa quan deixis de prémer un tecla concreta

És important comprendre l’ordre en el que Game Maker processa els events doncs aquest et donarà una idea general del procés estructurat (programació base)

1.- Event d’inici de pas (Begin step event)
2.- Event d’alarma (Alarm events [0-11])
3.- Event del teclat (‘Keyboard’, ‘Key press’ i ‘Key release’)
4.- Event del ratolí (Mouse events)
5.- Event de pas normal (totes les instàncies són col.locades a la seva nova posició)
6.- Event de col.lisió
7.- Event de final de pas (End step events)
8.- Event de dibuix (Draw)

La resta dels events de creació, destrucció i els del menú altres són generats quan les corresponents accions o causes succeeixen. No cal dir que a la fase de planificació del joc heu de tenir present no carregar en excés els primers vuit, doncs la memòria del PC con bé sabeu és limitada

« Previ «

Comentaris tancats a Els events, pas a pas