Está en la página 1de 21

1

!"#"$ &'(
Def|n|c|n de| [uego

En esta pictica cieaiemos un juego algo ms elaboiauo que los anteiioies, ue tipo
blico en el que contiolaiemos a un iobot que tenui que eliminai a otios iobots
enemigos. veiemos algunos aspectos inteiesantes como uotai ue inteligencia a
nuestios enemigos, cieai escenaiios gianues y complejos e incoipoiai una inteifaz
ue usuaiio que muestie al usuaiio infoimacion ielevante uel juego.

Bauo que nuestios juegos estain oiientauos a uispositivos tctiles, tambin
apienueiemos a utilizai la plantilla ue gestion ue movimientos multiplatafoima
que ofiece uameSalau. Esta plantilla est pensaua paia que pouamos cieai un
juego capaz ue sei contiolauo meuiante pantallas tctiles y con el teclauo,
ofiecienuo unos joysticks viituales que pouiemos contiolai tanto con el cuisoies,
con el iaton o con los ueuos en una pantalla tctil.

Creac|n de| proyecto a part|r de |a p|ant|||a "Cff|c|a| Cross-
|atform Contro||er"

uameSalau piopoiciona una plantilla muy til cuanuo queiemos cieai un juego en
el que tengamos que contiolai los movimientos ue nuestios peisonajes con los
ueuos. Esta plantilla ofiece vaiios tipos ue contiolauoies viituales que pouiemos
contiolai con el iaton, con el teclauo o con nuestios ueuos en una pantalla tctil.

Esta plantilla ha siuo cieaua poi el equipo ue uesaiiollo ue uameSalau y es
ofieciua ue foima giatuita y libie, puuienuo hacei uso ue ella en nuestios juegos.
Su funcionamiento hace uso ue conceptos bastante avanzauos ue uameSalau y la
explicacion ue su funcionamiento queua fueia ue nuestio mbito. Sin embaigo,
2
veiemos como pouemos hacei uso ue ella sin necesiuau ue sabei exactamente
como est implementaua.

Esta vez, en vez ue cieai un pioyecto uesue ceio, lo haiemos a paitii ue esta
plantilla eliminanuo aquello que no sea necesaiio:

1. Ejecutamos uameSalau y en la seccion !"# buscamos la plantilla $%%&'&()
+,-../0)(1%-,2 +-31,-))",, y hacemos uoble clic sobie ella paia euitaila.

2. Renombiamos el nombie uel pioyecto a 'Robot Wai'. Si pacemos clic sobie
'Pieview' pouiemos vei el funcionamiento ue esta plantilla, uonue
pouiemos vei a lo laigo ue sus S escenas las uistintas alteinativas ue
contioles viituales que ofiece.

S. Paia nuestio juego nos valui la piimeia veision, asi que uesue 4-2" nos
uiiigimos a la pestaa 5'"3". y boiiamos touas las escenas menos la
piimeia. Renombiamos la escena que nos queua a 'Nivel 1', hacienuo clic
sobie ella paia euitaila.

4. Ahoia uebemos eliminai touos aquellos actoies que no nos inteiesan,
coiiesponuientes piincipalmente a las escenas eliminauas o a las veisiones
ue los contioles que no nos inteiesan. En la ventana uel 63.7"'1-,, vamos
seleccionanuo y eliminanuo caua uno ue los actoies exceptuanuo los
siguientes:

ActionButton_1
S
ActionButton_2
ThumbstickBase
Thumbstick
Touch 1
Touch 2
Touch S
Touch 4
Touch S
RobotTheCopA
BulletA

Es impoitante no eliminai el actoi piincipal RobotTheCopA, pues es el que
tiene los compoitamientos asociauos necesaiios paia sei contiolauo poi los
joysticks viituales, y poi tanto, el que ieutilizaiemos paia nuestio juego.

S. Ahoia pouemos eliminai aquellas imgenes ue la libieiia que no vayamos a
utilizai. Paia este juego en concieto, vamos a ieutilizai las imgenes ue los
iobots y al menos la bala azul,

6. uuaiuamos el pioyecto poique ese sei la base con la que empezaiemos
nuestio juego.

Este pioyecto lo pouis encontiai en Robot War/CrossControllerBase ue los
iecuisos piopoicionauos.
Creac|n de| pr|mer n|ve|

Los escenaiios que utilizaiemos paia este juego sein pantallas mas o menos
gianues que venuin iepiesentauas poi una imagen ue fonuo. Paia su geneiacion
he hecho uso ue un euitoi ue mapas ue 8&)"., concietamente NapEuitoi que es
giatuito y multiplatafoima (www.mapeuitoi.oig). Estos euitoies peimiten cieai
escenaiios visualmente a tiavs ue la euicion ue cuauiiculas y hacienuo uso ue una
libieiia ue imgenes.

Paia nuestia piimeia pantalla, he hecho uso uel conjunto ue imgenes que viene
poi uefecto en el ejemplo 9".",1 que lleva el piopio piogiama, aunque existen
cientos ue conjuntos ue 1&)". giatis en inteinet.:
4



Paia esta imagen he hecho uso ue un mapa ue 4ux4u 1&)". ue S2xS2 pixeles, y tias
expoitailo a imagen me ha geneiauo una ue tamao 128ux128u pixeles. Ese sei
el tamao ue nuestia escena, y nuestio piimei objetivo sei hacei que nuestio
iobot pueua caminai poi ella.

1. Euitamos los atiibutos ue la escena hacienuo clic sobie 5'"3" en el
inspectoi, y establecemos 5&:"/;4"&<=1 y 5&:"/;>&91= a 128u.

2. Besue la libieiia ue imgenes, hacemos clic en el boton + y aauimos la
imagen ue fonuo Nivel1.png, y la aiiastiamos al inspectoi paia cieai un
actoi a paitii ue ella.

&)*+",-: asegiate ue que el actoi auquieie el tamao coiiecto,
128ux128u.

S. Antes ue aiiastiai el nuevo actoi a la escena, uebemos tenei en cuenta que
la plantilla que hemos utilizauo como base ya incoipoia uos capas ()(?",.):
una paia los contioles y otia paia el juego en si. Bebemos aseguiainos ue
que estamos tiabajanuo sobie la capa coiiecta y paia ello seleccionamos a
un actoi que sepamos que est en ella, es uecii, seleccionamos al iobot.

4. Ahoia si aiiastiamos al actoi Nivel1 paia cieai una instancia. Si en algn
momento tienes uuuas ue en qu capa se ha posicionauo un actoi, pueues ii
S
a 5'"3"/;@(?",. y compiobai que caua instancia est en la capa coiiecta,
puuienuo aiiastiailas paia cambiailas ue capa.

S. Lo noimal es que el nuevo actoi se posicione en piimei plano y tape a
cualquiei otio actoi que haya en la misma capa, como habi suceuiuo con
nuestio iobot que habi queuauo oculto. Bacemos clic con el boton ueiecho
en la instancia ue la escena y seleccionamos "5"39 1- A('B" (enviai al
fonuo), o alteinativamente nos uiiigimos a 5'"3"/;@(?",. y colocamos el
actoi Nivel1 sobie RobotTheCopA.

6. Ahoia toca posicionai la imagen ue fonuo (actoi Nivel1) paia que encaje
peifectamente en la escena, poi lo que hacemos uoble clic sobie la instancia
(es uecii, uoble clic sobie la escena, no sobie el piototipo ue actoi situauo
en el inspectoi) y euitamos 0-.&1&-3/;C y 0-.&1&-3/;D establecienuo ambos a
64u.

7. Ahoia queiemos que nuestio iobot sea capaz ue caminai poi ella, asi que
hacemos uoble clic sobie el piototipo ue actoi RobotTheCopA situauo en el
inspectoi, y le aauimos un compoitamiento ue tipo +-31,-) +(2",(E

8. Bacemos clic sobie el boton +"2",( 2-9" situauo sobie la escena, y
aiiastiamos los pivotes lateiales hacia el centio uel iecuauio que uelimita
la escena, como se muestia en la siguiente imagen.


9. Ahoia pouemos piobai la escena hacienuo clic sobie .(/0)/,, y veiemos
que pouemos manejai al iobot caminanuo libiemente poi la escena
mientias la cmaia sigue sus movimientos.
6

1u. Bauo el tamao ue nuestia escena, nuestio peisonaje camina uemasiauo
ipiuo y seiia inteiesante uisminuii un poco su velociuau. Esto lo pouemos
hacei euitanuo el atiibuto 1'234//+ uel actoi RobotTheCopA. Este
atiibuto no es un atiibuto estnuai, sino que ha siuo incoipoiauo en la
plantilla base que hemos utilizauo. La establecemos a 1uu


Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar1 uentio uel mateiial piopoicionauo.
Creando y pos|c|onando a |os enem|gos

uiacias a la plantilla que hemos ieutilizauo, vemos que nuestio peisonaje ya es
capaz ue uispaiai, asi que nos limitaiemos a ievisai como hace esto. Auems
incluiiemos uistintos enemigos y hacemos que sea posible uispaiailes.

1. Bacemos uoble clic sobie el piototipo ue actoi RobotTheCopA paia
compiobai como es capaz ue uispaiai. La clave la tenemos en la iegla
uefiniua como "Piojectile 1 Fiieu - Button 1 is piesseu". Esta iegla se activa
cuanuo la vaiiable game.Button 1 Pressed sea veiuaueia, vaiiable
piopoicionaua poi la plantilla. Como vemos, nicamente se encaiga ue
geneiai un actoi ue tipo 'BulletA' y que este se site bajo el actoi segn el
oiuen ue capas (@(?", $,9",).

2. Si volvemos al inspectoi y hacemos uoble clic sobie BulletA, veiemos el
compoitamiento +=(3<" F")-'&1? que tiene incoipoiauo es el que hace que
ella misma sea capaz ue moveise poi la escena.

S. volvemos al euitoi ue escena y e impoitamos a nuestia libieiia la imagen
Enemigo.png, paia luego aiiastiaila al inspectoi y cieai un actoi a paitii
ue ella. Situamos sobie la escena vaiias instancias ue este actoi uispeisas
poi toua la pantalla, a nuestio gusto. 0na vez ms, asegiate ue que colocas
a los enemigos en la capa coiiecta.

&)*+",-: asegiate ue que el actoi auquieie el tamao coiiecto,
61xSu.

4. vamos a hacei que nuestios enemigos tengan un nivel ue viua, ue foima
que a caua impacto ue un bala sta se vaya ueciementanuo hasta llegai a u.
Bacemos uoble clic sobie el piototipo ue actoi en el inspectoi y aauimos
un atiibuto que ienombiaiemos a 'Saluu', ue tipo &31"<", que
inicializaiemos a S.

S. Cieamos una iegla ienombinuola a 'Bestiuccion' que sea uel tipo 56$"(
(/6/)0/- /0/*$ 7 "0/(8'4- "( 6"88)+/- 7 ,)$9 '6$"( ": $;4/ 7 <=88/$5, paia
uetectai las colisiones con las balas, asocinuole el compoitamiento +=(3<"
7
G11,&HI1" paia el atiibuto .")%E5()I9 a .")%E5()I9/J, es uecii, ueciementamos
la viua uel enemigo.

6. Cieamos otia iegla uel tipo 5$$()#=$/ 7 -/8:>3'8=+ 7 ? 7 @ asocinuole el
compoitamiento K".1,-?E

7. Piobamos nuestia escena hacienuo clic sobie .(/0)/, y compiobamos los
iesultauos. Bebeiiamos sei capaces ue eliminai a nuestios enemigos tias S
impactos ue bala a caua uno ue ellos.

8. Ahoia uebemos hacei que la bala tambin uesapaiezca caua vez que
alcance a un objetivo. Sienuo pievisoies, sabemos que las balas no solo
uebein uesapaiecei en este caso, sino que tambin uebein uesapaiecei al
colisionai con las paieues ue nuestia escena (ms auelante lo veiemos).
Poi eso vamos a cieai una nueva etiqueta que se llamai 'Colisionable', e
iiemos incluyenuo en ella touos los actoies que ueban hacei uesapaiecei a
una bala. Bacemos clic en A"B/ y en la seccion G'1-,. hacemos clic en el
boton + ue la esquina infeiioi izquieiua paia cieai una nueva etiqueta que
llamaiemos 'Colisionable'. Besue la etiqueta 'G))' mostiaua ms aiiiba,
aiiastiamos el actoi 'Enemigo' a la etiqueta 'Colisionable'.

9. 0na vez que tenemos el actoi 'Enemigo' asociauo a la etiqueta coiiecta,
volvemos al euitoi ue escena paia euitai el piototipo ue actoi 'BulletA' al
que le incluiiemos una nueva iegla uel tipo 56$"( (/6/)0/- /0/*$
7 "0/(8'4- "( 6"88)+/- 7 ,)$9 '6$"( ,)$9 $'C 7 D"8)-)"*'#8/, asocinuole un
compoitamiento ue tipo K".1,-?.

8
Si piobamos ahoia mismo nuestia escena, veiemos que efectivamente las balas
uesapaiecen al entiai en contacto con nuestios enemigos. Sin embaigo, pionto te
uais cuenta que muchos "impactos" no paiece muy cieibles, uanuo sensacion ue
"falsos positivos" pues la bala uespaiece incluso cuanuo no paiecia que iba a
impactai en el objetivo. Esto es uebiuo a que hemos ieutilizauo el actoi 'BulletA'
que venia en la plantilla tal cual, y este llevaba asociaua una imagen que contiene
mucha zona tianspaiente. Si abiisemos la imagen en cualquiei euitoi no
uaiiamos cuenta que la bala miue exactamente 42x1S pixeles, sin embaigo la
imagen es ue 6ux6u pixeles. A la hoia ue calculai las colisiones, uameSalau no
tiene en cuenta si una zona ue la imagen es tianspaiente o no, sino que se calcula
en base a los tamaos ue las imgenes.
Si nos fijamos en este gifico, vemos como las imgenes colisionan incluso sin
colisionai iealmente la zona visible ue las mismas. En geneial se iecomienua que
los .7,&1". que utilicemos en nuestios juegos lleven la menoi cantiuau posible ue
imagen tianspaiente, salvo que se tengan que ajustai a un tamao especifico poi
cualquiei iequisito tcnico.

Paia solucionai este pioblema, seguimos los siguientes pasos:

1. Boble clic sobie la imagen 'BexBullet' en la libieiia ue imgenes y pulsamos
sobie "uuaiuai como" paia extiaei una copia ue la imagen.

2. Abiimos la imagen con nuestio euitoi piefeiiuo y ajustamos el tamao ue la
imagen al tamao exacto ue la bala, eliminanuo toua la zona tianspaiente y
queunuose en una imagen ue 42x1S.

S. uuaiuamos uicha imagen paia impoitaila a uameSalau. Entie los
mateiiales piopoicionauos encontiais esta nueva veision ue la bala en el
ficheio Robot War/Bala.png.

4. Impoitamos la imagen a la biblioteca ue imgenes ue nuestio pioyecto,
eliminamos la imagen oiiginal 'BexBullet' ue la biblioteca, con lo que el
actoi 'BulletA' se queuai sin imagen asociaua. Aiiastiamos la nueva
veision ue la imagen (Bala) al actoi 'BulletA', el cual auquiiii el nuevo
tamao ue la imagen.
9


Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar2 uentio uel mateiial piopoicionauo.

M|s||es y s|stemas de part|cu|as

En este apaitauo vamos a intiouucii algunos efectos especiales, hacienuo que
nuestios enemigos exploten cuanuo sean uestiuiuos y emitan humo. Auems,
vamos a uai a nuestio jugauoi la posibiliuau ue uispaiai misiles hacienuo uso uel
boton viitual B uel contiolauoi.

Ahoia mismo, al eliminai a un enemigo ste uesapaiece, lo cual pueue queuai un
poco soso. Paia mejoiai este aspecto, vamos a hacei que se muestie una veision
uestiuiua uel enemigo. Auems haiemos que esa veision emita llamaiauas:

1. Lo piimeio que hacemos es incoipoiai a nuestia libieiia ue imgenes el
ficheio EnemigoDestruido.png y Particula.png.

2. Aiiastiamos la imagen EnemigoBestiuiuo al inspectoi paia cieai un actoi
con el mismo nombie, y hacemos uoble clic sobie l paia euitailo.

&)*+",-: asegiate ue ajustai los tamaos uel actoi a 61xSu

S. Incluimos un compoitamiento 0(,1&')". establecienuo los siguientes valoies
en sus paimetios:
- 57(#3 ,(1"
o !I2H", -% 0(,1&')".: 1uu
o 0(,1&')". 51(,1I7 8&2": 2
o 0(,1&')" @&%"1&2": S
- F")-'&1?L0-.&1&-3:
o K&,"'1&-3: 1Su
o 57""9: 2u
- 5&:":
o 5&:": 1u
o 5&:" '=(3<". 1-:
! 8(,<"1 5&:": Su
! KI,(1&-3: S
- +-)-,:
o +-)-,: naianja
o A)"39&3<: Auuitive
o +-)-, '=(3<". 1-:
! 8(,<"1 '-)-,: negio
! KI,('&M3: S
- 62(<": Paiticula

1u
4. volvemos al euitoi ue escenas y hacemos uoble clic sobie el piototipo ue
actoi 'Enemigo', y en la iegla 'Bestiuccion' que hemos cieauo anteiioimente
incoipoiamos un nuevo compoitamiento ue tipo 57(#3 ('1-, justo encima
uel anteiioi compoitamiento K".1,-? que habia incluiuo. En el nuevo
compoitamiento seleccionamos EnemigoBestiuiuo.

Si ejecutamos ahoia la escena, pouiemos vei como los enemigos que conseguimos
uestiuii cambian su aspecto y auems emiten una llamaiaua, justo lo que
buscbamos.

Ahoia vamos a hacei que nuestio jugauoi sea capaz ue uispaiai misiles. El
compoitamiento ueseauo sei que nicamente pouamos uispaiai un misil a la vez,
y que si alcanza a un enemigo lo pueua uestiuii uiiectamente. Auems emitiiemos
una explosion basaua en animacion.

1. volvemos al euitoi ue escenas y aauimos a la biblioteca ue imgenes el
ficheio Misil.png que encontiais en los mateiiales piopoicionauos. Acto
seguiuo lo aiiastiamos al inspectoi paia cieai un nuevo actoi llamauo
'Nisil'.

&)*+",-: ajusta el tamao uel actoi a 4Sx1S

2. Bacemos uoble clic sobie el nuevo actoi y le incluimos un compoitamiento
ue tipo G''")",(1" con K&,"'1&-3 u y G''")",(1&-3 1uu

S. Tambin aauimos un 8&2", ue tipo G%1", ue 1 segunuo, al cual le aauimos
otio G''")",(1" con K&,"'1&-3 u y G''")",(1&-3 1uuu. Con este conjunto ue
compoitamiento haiemos que el misil vaya lento al piincipio y tias un
segunuo auquieia una velociuau impoitante, lo cual lo uotai ue gian
iealismo.

4. Ahoia haiemos que caua misil emita una estela ue humo y llamaiauas, paia
lo que utilizaiemos uos sistemas ue paiticulas. Incoipoiamos un
compoitamiento ue tipo 0(,1&')". a nuestio actoi, y lo ienombiamos a
'Bumo'. Establecemos esta configuiacion:
- 57(#3 ,(1"
o !I2H", -% 0(,1&')".: Suu
o 0(,1&')". 51(,1I7 8&2": 2
o 0(,1&')" @&%"1&2": 1
- F")-'&1?L0-.&1&-3:
o K&,"'1&-3: 27u
- 5&:":
o 5&:": 1S
o 5&:" '=(3<". 1-:
! 8(,<"1 5&:": 1uu
! KI,(1&-3: 1
- +-)-,:
o +-)-,: uiis no muy oscuio
- 62(<": Paiticula
11

Ahoia aauimos otio sistema ue paiticulas que lo ienombiamos a
'Llamaiaua' y lo configuiamos con los siguientes paimetios:
- 57(#3 ,(1"
o !I2H", -% 0(,1&')".: 2uu
o 0(,1&')". 51(,1I7 8&2": u
o 0(,1&')" @&%"1&2": u.S
- F")-'&1?L0-.&1&-3:
o K&,"'1&-3: 27u
- 5&:":
o 5&:": S
o 5&:" '=(3<". 1-:
! 8(,<"1 5&:": 1
! KI,(1&-3: u,S
- +-)-,:
o +-)-,: Amaiillo
o A)"39&3<: Auuitive
- 62(<": Paiticula

S. Al igual que las balas, queiemos que los misiles uesapaiezcan cuanuo
colisionen con algo, es uecii, cuanuo colisionen con actoies que lleven la
etiqueta 'Colisionable'. Poi ese motivo incluimos una nueva iegla que sea
uel tipo 56$"( (/6/)0/- /0/*$ 7 "0/(8'4- "( 6"88)+/- 7 ,)$9 '6$"( ,)$9 $'C
7 D"8)-)"*'#8/, a la cual aauimos un compoitamiento ue tipo K".1,-?. Esta
iegla la ienombiaiemos a 'Explotai'.

6. Al contiaiio que las balas, paia uotai ue mayoi iealismo a nuestio juego
queiemos que los misiles tambin geneien una explosion al uestiuiise. Esta
explosion tambin la geneiaiemos con un sistema ue paiticulas, asi que
vamos a cieai un actoi que iepiesente a la explosion, paia acto seguiuo
incluiilo en la iegla que acabamos ue cieai meuiante un 57(#3 G'1-,.
vamos a cieai piimeio el actoi 'Explosion'.

7. Bentio uel euitoi ue escenas, hacemos clic en el boton + uel inspectoi ue
actoies paia cieai uno nuevo, que ienombiaiemos a 'Explosion'. Euitamos
este actoi y le incluimos uos sistemas ue paiticulas que confoimain la
explosion. El piimeio lo configuiamos ue la siguiente foima:
- 57(#3 ,(1"
o !I2H", -% 0(,1&')".: Su
o 0(,1&')". 51(,1I7 8&2": u
o 0(,1&')" @&%"1&2": u.S
- 5&:":
o 5&:": 1u
o 5&:" '=(3<". 1-:
! 8(,<"1 5&:": 2uu
! KI,(1&-3: u.S
- +-)-,:
o +-)-,: uiis oscuio
o A)"39&3<: Noimal
12
o +-)-, '=(3<". 1-:
! 8(,<"1 +-)-,: Negio
! KI,(1&-3N OPQ
- 62(<": Paiticula
El segunuo lo configuiamos con estos paimetios:
- 57(#3 ,(1"
o !I2H", -% 0(,1&')".: Su
o 0(,1&')". 51(,1I7 8&2": u
o 0(,1&')" @&%"1&2": u.S
- 5&:":
o 5&:": 1u
o 5&:" '=(3<". 1-:
! 8(,<"1 5&:": 1Su
! KI,(1&-3: 2,S
- +-)-,:
o +-)-,: amaiillo fosfoiito
o A)"39&3<: Auuitive
o +-)-, '=(3<". 1-:
! 8(,<"1 +-)-,: Rojo oscuio
! KI,(1&-3N OPQ
- 62(<": Paiticula


8. El ltimo compoitamiento que incoipoiaiemos al actoi explosion sei un
8&2", que se encaigai ue hacei uesapaiecei al actoi tias 2.S segunuos.
Paia ello aiiastiamos este tipo ue compoitamiento y establecemos G%1", 2.S
segunuos, aauienuo como compoitamiento asociauo uno tipo K".1,-?.

9. Tambin establecemos el atiibuto uel actoi +-)-, /; G)7=( a u, paia que no
se vea ningn cuauiauo blanco.

1u. volvemos a euitai al actoi 'Nisil', y como ya hemos comentauo
anteiioimente, incluimos un compoitamiento tipo 57(#3 G'1-, uel actoi
'Explosion' a la iegla 'Explotai' que acabbamos ue cieai, situnuola poi
encima uel compoitamiento K".1,-?.

11. Ahoia uebemos hacei que nuestio jugauoi sea capaz ue uispaiai un misil
caua vez que se pulse el boton B uel contiolauoi viitual. Euitamos el actoi y
localizamos la iegla ya cieaua llamaua "Pioyectile 2 fiieu - Button 2 is
piesseu" que venia cieaua con la plantilla. Esta iegla ya contiene la
conuicion necesaiia paia activaise y tambin un 57(#3 G'1-, asociauo, al
cual tenuiemos que especificaile como G'1-,: Nisil

12. vamos a hacei que el misil acabe con toua la saluu ue nuestio enemigo (ya
sabes, nauie sobievive a un misil). Paia ello euitamos el piototipo ue actoi
'Enemigo' y cieaiemos una nueva iegla uel tipo 56$"( (/6/)0/- /0/*$
7 "0/(8'4- "( 6"88)+/- 7 ,)$9 '6$"( ": $;4/ 7 1)-)8, a la que aauiiemos un
compoitamiento ue tipo +=(3<" G11,&HI1" establecienuo .")%E5()I9 a u.

1S
1S. Bauo que los misiles son muy poueiosos, vamos a limitai su uso paia que el
jugauoi no pueua uispaiai touos los que quieia, sino solo uno a la vez. Paia
conseguiilo uebemos pinchai en la pestaa R(2" uel inspectoi, y en la
seccion G11,&HI1". cieai un nuevo atiibuto ue juego llamauo NisilActivo, ue
tipo H--)"(3- y estableciuo inicialmente a %().".

14. volvemos al inspectoi ue actoies y euitamos RobotTheCopA, nuestio
peisonaje piincipal. Localizamos la iegla 0,-S"'1&)" O %&,"9 T AI11-3 O &.
7,".."9, y le aauimos una conuicion ms pinchanuo sobie el boton + ue la
cabeceia ue la iegla. Esta nueva conuicion sei uel tipo 5$$()#=$/
7 C'B/>1)-)856$)0" 7 )- :'8-/.

1S. Ahoia vamos a hacei que MisilActivo valga true caua vez que se lanza
un misil, paia lo cual incluimos un compoitamiento ue tipo +=(3<"
G11,&HI1" justo uebajo uel compoitamiento 57(#3 G'1-, ue la iegla que
estamos euitanuo. En este nuevo compoitamiento seleccionamos
game.MisilActivo y lo establecemos a true.

16. Poi ltimo, uebemos hacei que NisilActivo vuelva a sei false una vez que se
haya uestiuiuo el misil, asi que euitamos el actoi 'Nisil' y localizamos su
iegla 'Explotai'. Tias el compoitamiento K".1,-?, incluimos un +=(3<"
G11,&HI1" ue game.MisilActivo a false.


Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar3 uentio uel mateiial piopoicionauo.

aredes y ob[et|vo.

Es hoia ue incluii las paieues paia geneiai colisiones y que nuestio peisonaje no
pueua campai a sus anchas poi el escenaiio. Tambin vamos a cieai una zona
objetivo, ue foima que si el jugauoi llega a uicha zona, habi completauo el nivel y
pasai al siguiente.

1. Bacemos clic sobie el boton + uel inspectoi ue actoies, y aauimos un
nuevo actoi que llamaiemos 'Paieu'. Bacemos uoble clic sobie l paia
euitailo y establecemos su atiibuto 0=?.&'./;A-I3'&3".. a u, y 0=?.&'./
;U-V"(H)" a u.

2. Incluimos un piimei compoitamiento uel tipo +=(3<" G11,&HI1" y
establecemos self.Color.Alpha a u. Es uecii, hacemos que tan pionto se
inicie la escena, los actoies paieu uesapaiezcan ya que su nivel ue Alpha
sei u. Pouiiamos habei estableciuo este valoi uiiectamente en las
piopieuaues uel piototipo ue actoi, peio eso piovocaiia que la
tianspaiencia se aplicaia tambin en el euitoi ue escenas mientias estamos
montanuo la escena. Como es un actoi que vamos a utilizai paia uefinii
14
ieas ue colision, es mejoi que pouamos visualizailo uuiante la fase ue
euicion paia pouei ajustailo mejoi.

S. Como este actoi iepiesentai a las paieues ue nuestio juego y queiemos
que los pioyectiles uel juego impacten en ellas, le asignamos la etiqueta
'Colisionable' a este actoi. Paia ello vamos a 4-2", hacemos clic en la
pestaa G'1-,. y seleccionamos la etiqueta G)). Localizamos el actoi 'Paieu'
y lo aiiastiamos a la etiqueta 'Colisionable'.

&)*+",-: lo aiiastiamos a la etiqueta seleccionaua uesue la piopia
libieiia ue actoies

4. volvemos a entiai en el euitoi ue escenas y euitamos el actoi
RobotTheCopA, y le aauimos un nuevo compoitamiento uel tipo +-))&9",
seleccionanuo ('1-, -% 1?7" y 'Paieu'.

S. Tambin uebemos ajustai algunos atiibutos uel actoi RobotTheCopA paia
uefinii mejoi su compoitamiento ante las colisiones. Bentio ue 0=?.&'.,
uebemos establecei A-I3'&3".. a u, y maicai W&X"9 ,-1(1&-3.

6. Bacemos algo paieciuo con el actoi Enemigo, lo euitamos y uentio ue
0=?.&'. uesmaicamos U-V"(H)" y A-I3'&3".. lo ponemos a u.

7. Poi ltimo, uebemos incluii en la escena uistintas instancias uel actoi
Paieu, posicionanuo y uimensionnuolas paia que coinciuan con cualquiei
paieu ue nuestio nivel. Asegiate ue que lo haces uentio ue la capa R(2"
G,"(, paia cual lo mejoi es seleccionai algn elemento que se encuentie
uentio ue ella antes ue aiiastiai las instancias.

8. Tambin incluiiemos una paieu ajustaua al caua boiue ue nuestio nivel, y
asi evitai que nuestio peisonaje pueua salii fueia.
1S


Ahoia uebemos uefinii el iea ue victoiia:

1. Cieamos un nuevo actoi llamauo '0bjetivo', y lo euitamos cambinuolo ue
coloi a iojo.

2. Le aauimos un compoitamiento ue tipo +=(3<" G11,&HI1" uel atiibuto
self.Color.Alpha a u.

S. Le cieamos una iegla uel tipo 56$"( (/6/)0/- /0/*$ 7 "0/(8'4- "( 6"88)+/- 7
,)$9 '6$"( ": $;4/ 7 !"#"$E9/D"45, e incoipoiamos en ella un
compoitamiento uel tipo +=(3<" 5'"3" estableciuo a !"X1 5'"3"E

4. volvemos al euitoi ue escenas y aiiastiamos el actoi a la escena paia cieai
una instancia, siempie aseguinuonos ue que va a la capa coiiecta tenienuo
pieviamente seleccionaua alguna instancia ue actoi que ya se encuentie en
uicha capa (poi ejemplo, una paieu o un enemigo). Posiciona la instancia en
la esquina infeiioi ueiecha ue la escena
16


Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar4 uentio uel mateiial piopoicionauo.

Dotando de |nte||genc|a a |os enem|gos

Es hoia ue que nuestios enemigos pueuan uefenueise. vamos a hacei que stos
pueuan uetectai cuanuo nuestio jugauoi est ceica, momento en el que se
'activain' y uispaiain en la uiieccion uonue se encuentie, siguinuolo mientias
est en su iea ue accion.

La estiategia que vamos a seguii es utilizai un actoi no visible que llamaiemos
Betectoi y que siempie acompaai a nuestio peisonaje. Siempie que un enemigo
colisione con el uetectoi, ste se giiai hacia nuestio peisonaje y empezai a
uispaiaile.

1. El piimei paso sei cieai el actoi 'Betectoi' y que sea capaz ue seguii a
nuestio peisonaje. Besue el inspectoi ue actoies uel euitoi ue escenas,
cieamos un nuevo actoi ienombinuolo a 'Betectoi', y unuole un coloi
tempoial ue veiue. Tambin establecemos su tamao a Suux1uu.

2. Este actoi uebei tenei en touo momento la misma posicion y iotacion que
nuestio peisonaje piincipal. Esto se tiauuce a que sus valoies 0-.&1&-3/;C,
0-.&1&-3/;D y Y-1(1&-3 ueben coinciuii con las uel jugauoi piincipal. El
17
pioblema es que un actoi no pueue acceuei a los atiibutos ue otio actoi, asi
que necesitamos cieai atiibutos ue juego globales que actuain ue
inteimeuiaiios. Bacemos clic en la seccion ue Atiibutos uel inspectoi
tenienuo seleccionaua la pestaa R(2", y cieamos S atiibutos ue tipo
&31"<", que llamaiemos F=C'+"(GH F=C'+"(I ; F=C'+"(!.

S. Euitamos el actoi RobotTheCopA e incluimos ties compoitamientos ue tipo
+-3.1,(&3 G11,&HI1", asignanuo a game.JugadorX el valoi ue
self.Position.X, a game.JugadorY el valoi ue self.Position.Y, y
game.JugadorR a self.Rotation. Esto hai que los ties atiibutos ue
juego se vayan actualizanuo constantemente con los valoies uel actoi.

4. Ahoia euitamos el piototipo ue actoi 'Betectoi' y aauimos otios ties
compoitamientos ue tipo +-3.1,(&3 G11,&HI1", asignanuo a self.Position.X el
valoi ue game.}ugauoiX, self.Position.Y el valoi ue game.}ugauoiY, y a
self.Rotation el valoi ue game.}ugauoiR,

S. volvemos al euitoi ue escenas, y aiiastiamos el actoi 'Betectoi' paia cieai
una instancia. vamos a Inspectoi -> Scene -> Layeis y compiobamos que la
instancia se ha cieauo en la capa R(2" G,"(, y justo uebajo ue la instancia
RobotTheCopA. Si no es asi aiiastia en la lista a 'Betectoi' hasta
posicionailo coiiectamente.

6. Si ejecutamos la escena, pouiemos compiobai que la instancia ue actoi
'Betectoi' sigue en touo momento la posicion y iotacion uel jugauoi.


7. Antes ue continuai, euitamos el piototipo uel actoi 'Betectoi' y le
establecemos el atiibuto +-)-,/;G)7=( a u paia evitai que se muestie.
18

Ahoia vamos a hacei que los iobots enemigos uetecten cuanuo entian en contacto
con el uetectoi, momento en el que se giiain paia el actoi y empezain a
uispaiaile.

1. Antes ue naua, vamos a caigai las balas enemigas. Besue el euitoi ue
escenas, incluimos la imagen uel ficheio BalaEnemiga.png que
encontiais en los mateiiales piopoicionauos.

2. En el inspectoi ue actoies, seleccionamos el actoi BulletA y hacemos una
copia (en el men supeiioi seleccionamos Euit->Copy y luego Euit->Paste)
que ienombiaiemos a 'BalaEnemiga'. Aiiastiamos la nueva imagen
impoitaua a uicho actoi, y su imagen se sustituii. Esto nos ahoiiai
tiempo, pues el conjunto ue compoitamientos ue las uos balas son muy
paieciuos.

&)*+",-: Ajusta el tamao a 42x14

S. Lo nico que uebemos cambiai ue la nueva bala es que ya no nos vale la
conuicion ue que se elimine con actoies que tengan la etiqueta
'Colisionable', pues son balas que lanzain los piopios enemigos y estos
estaban incluiuos en uicha etiqueta. Pouiiamos cieai otia etiqueta uonue
incluysemos a nuestio peisonaje y a las paieues y otoigaile otio nombie
ue etiqueta, peio en este caso vamos a euitai uiiectamente la iegla,
establecienuo que sea ue tipo G3?, e incluyenuo uos conuiciones ue colision
con actoies ue tipo Paieu y RobotTheCopA.

4. Ahoia euitamos el piototipo ue actoi 'Enemigo' y aauimos una nueva iegla
llamaua 'Beteccion', uel tipo 56$"( (/6/)0/- /0/*$ 7 "0/(8'4- "( 6"88)+/- 7
,)$9 '6$"( ": $;4/ 7 J/$/6$"(. Como lo que queiemos es que el enemigo no
paie ue uispaiai mientias se cumpla esta conuicion, aauimos un 8&2", ue
tipo ZV",? con u.S segunuos, al cual le aauimos un compoitamiento uel
tipo 57(#3 G'1-, uel actoi 'BalaEnemiga'.

S. Nuestios enemigos ya son capaces ue uispaiai balas que impactain sobie
nuestio peisonaje piincipal y sobie las paieues. Ahoia vamos a hacei que
los enemigos sean capaces ue giiaise a uonue se encuentie nuestio
peisonaje. Incluimos en la misma iegla 'Beteccion' otio compoitamiento
19
uel tipo Y-1(1" 1- 7-.&1&-3 uonue estableceiemos 0-.&1&-3 a game.}ugauoiX y
game.}ugauoiY, con $%%."1 G3<") a u, 57""9 a 2uu, maicanuo YI3 1-
'-27)"1&-3 y uesmaicanuo 51-7 .-3 9".1&3(1&-3.

Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar5 uentio uel mateiial piopoicionauo.
N|ve| de v|da, puntos y son|do

Ya estamos acabanuo con las funcionaliuaues que queiiamos incluii en el juego,
ahoia le toca el tuino a completai la inteifaz ue usuaiio. En piincipio nos
confoimaiemos con mostiai el nivel ue viua ue nuestio peisonaje, asi como el total
ue puntos conseguiuos, ya que uaiemos 1uu puntos poi caua enemigo eliminauo.
Poi ltimo, incoipoiaiemos algunos efectos sonoios paia completai un poco ms
el juego.

Empezamos poi la baiia ue viua:

1. Cieamos uos nuevos atiibutos ue juego llamauos viua y Puntos, ue tipo
enteio e inicializauos a 1u y a u iespectivamente.

2u
2. Cieamos un nuevo actoi que iepiesentai nuestio nivel ue viua, que
llamaiemos 'NivelBeviua', ue coloi veiue y con un tamao ue 1uux1u.
Tambin le aauimos un compoitamiento uel tipo +-3.1,(&3 G11,&HI1" paia
el atiibuto self.Position.X establecinuolo a u, y otio similai establecienuo
self.Position.Y a 1u. Tambin estableceiemos otio +-3.1,(&3 G11,&HI1" paia
el atiibuto self.Size.Width, establecinuolo a game.Vida*20.

S. Cieamos una instancia ue este actoi en la escena aiiastinuola hacia ella,
seleccionanuo pieviamente algn elemento uel contiolauoi viitual paia
aseguiainos ue que la instancia va a paiai a la capa coiiecta (4[K +-31,-).)

4. vamos a hacei que las balas enemigas uaen a nuestio jugauoi iestnuole
puntos ue viua. Caua bala le iestai un punto ue viua, y si llega a u, se
ieiniciai el nivel. Euitamos el actoi RobotTheCopA y aauimos una iegla
uel tipo 56$"( (/6/)0/- /0/*$ 7 "0/(8'4- "( 6"88)+/- 7,)$9 '6$"( ": $;4/ 7
<'8'K*/B)C', al cual le aauimos el compoitamiento +=(3<" G11,&HI1" ue
la vaiiable game.Vida a game.Vida-1.

S. Befinimos otia iegla justo uebajo ue la que acabamos ue uefinii, y ponemos
una conuicion uel tipo 5$$()#=$/ 7 C'B/>L)+' 7 M 7 @ y le aauimos un
compoitamiento uel tipo Y"."1 @"V")E

6. Ahoia le toca el tuino al maicauoi. Piimeio cieamos un actoi con nombie
'Naicauoi', al cual le establecemos +-)-,/;G)7=( a u, e incoipoianuo un
compoitamiento uel tipo K&.7)(? 1"X1 con valoi game.Puntos.

7. Aiiastiamos el maicauoi a la escena, aseguinuonos ue que lo hacemos
sobiel a capa 4I9 +-31,-).. Lo situamos en la esquina supeiioi ueiecha.

8. Euitamos el piototipo ue actoi 'Enemigo' y uentio ue la iegla 'Bestiuccion',
aauimos un nuevo compoitamiento ue tipo +=(3<" G11,&HI1" paia el
atiibuto game.Puntos establecinuolo a game.Puntos+100.

Poi ltimo, vamos a incoipoiai los soniuos y la msica ue fonuo:

1. Impoitamos touos los ficheios que hay uentio uel uiiectoiio Sounus ue los
mateiiales piopoicionauos, e impoitamos touos ellos a nuestia libieiia ue
soniuos. Touos los impoitamos como soniuos (627-,1 (. .-I39) excepto el
ficheio msica.mpS, que lo impoitaiemos como msica (627-,1 (. 2I.&').

2. Piimeio euitaiemos nuestio peisonaje, el cual uebe emitii soniuos cuanuo
uispaie y auems sei el encaigauo ue activai la msica ue fonuo. Euitamos
el piototipo ue actoi y le incluimos al final un compoitamiento ue tipo 0)(?
UI.&', seleccionanuo msica y maicanuo @--7.

S. Tambin aauiiemos un compoitamiento ue tipo 0)(? 5-I39 uentio ue la
iegla 0,-S"'1&)" J W&,"9 T HI11-3 J &. 7,".."9, justo uebajo uel
compoitamiento 57(#3 G'1-, que esta incoipoia. Seleccionamos )(.", y
uejamos el iesto tal cual.
21

4. Ahoia euitamos el actoi Nisil al que le incoipoiaiemos uos soniuos. 0no al
lanzaise y otio al explotai. Incoipoiaiemos el piimeio meuiante un
compoitamiento ue tipo 0)(? 5-I39 situnuolo al piincipio ue touos,
seleccionanuo el soniuo 'misil', y uesmaicamos la opcion YI3 1- '-27)"1&-3
(el misil pouiia explotai antes ue teiminai ue iepiouucii el soniuo, poi eso
la uesmaicamos). Auems incoipoiaiemos otio 0)(? 5-I39 uentio ue la
iegla 'Explotai', seleccionanuo esta vez 'explosion' como soniuo a
iepiouucii. Esta vez si uejaiemos maicaua la opcion YI3 1- '-27)"1&-3

S. Poi ltimo, euitamos el piototipo ue actoi 'Enemigo' y le incoipoiamos otio
0)(? 5-I39 con el soniuo 'lasei' uentio uel 8&2", que hay situauo a su vez
uentio ue la iegla 'Beteccion'. Lo colocamos antes o uespus uel 57(#3
G'1-, que geneia la 'BalaEnemiga'.

Touo lo que hemos visto hasta ahoia pouis encontiailo en el ficheio Robot
War/RobotWar6 uentio uel mateiial piopoicionauo.

Ejeicicios
Cieai un segunuo nivel
Cieai un men y una escena ue victoiia