You are on page 1of 20

Proposta Índex Treball de Recerca :

1. Inquietuds i Motivacions Personals.


2. Requeriment ( Introducció al treball, cal fer una descripció i cal deixar
molt clar quin és l’objectiu final del treball. Dins d’aquest punt cal
anomenar quins són els passos que s’han seguit per aconseguir
aquests objectius per explicar-los a continuació )
3. Procés de disseny del joc : ( en aquest punt expliquem tot el que s’ha
fet durant tot aquest temps; en cadascun dels apartats que venen a
continuació cal explicar acuradament les característiques, els
problemes que han sorgit i les solucions que s’han pres )
3.1. Disseny dels gràfics. (disseny de dibuixos fixes, caldria posar
un parell o tres de dibuixos i explicar com s’han fet )
3.2. Disseny d’escenaris. (estructura dels nivells)
3.3. Animacions. ( Explicació de l’animació, igual que en el punt
3.1 caldria posar alguns exemples i explicar com s’ha fet )
3.4. Programació. ( explicació de tot l’apartat referent a la
programació del joc,…. )
3.5. Àudio i Música. ( explicació de com s’ha fet la música )

1. Avaluació : ( aquest punt és d’autoavaluació, cal fer una conclusió


sobre els resultats obtinguts, quins aspectes es podrien millorar ; en
aquest punt es pot introduir l’enquesta sobre la versió demo
penjada )
2. Recursos utilitzats. ( en aquest punt cal fer un llistat de tots i
cadascun dels recursos que s’han utilitzat en el joc, programes, web
oficial, etc)
3. Annexos ( fotos, vídeos, esquemes, etc )
1-Inquietuds i Motivacions Personals
El món dels videojocs cada vegada s’està fent més conegut a la societat
actual. Ni ha una gran quantitat de categories de jocs. Per exemple, podem
trobar-ne de conducció, d’esports, de dispars i fins i tot alguns per a fer
exercici de forma interactiva. Però encara perduren els jocs clàssics de
plataformes, aquells en els quals havies de controlar un personatge per tal
d’arribar al final de cada fase saltant i esquivant enemics.

Sempre m’han atret els videojocs i he mirat de crear-ne. Des de que vaig
tenir el primer ordinador he intentat crear jocs de qualsevol manera. El
programa que més vaig utilitzar va ser el Power Point, amb el qual vaig
aconseguir bons resultats, però aquest programa comptava amb moltes
limitacions a l’hora de crear jocs, ja que cal recordar que no es per fer jocs,
sinó presentacions. També vaig modificar jocs originals de videoconsoles
antigues amb editors com per exemple Lunar Magic, que permet fer els
teus propis nivells de Super Mario World. Però encara hi havia limitacions
a l’hora de fer les fases, ja que estava modificant un joc ja existent i no
creant un de nou. A més, per a jugar calia un emulador de la videoconsola
SNES (Super Nintendo Entertainment System), cosa que no facilitava
la distribució del joc. Per això vaig buscar una nova forma de crear jocs que
em donés total llibertat a l’hora de desenvolupar-los i em permetés
distribuir-lo fàcil i còmodament.

Durant les vacances d’hivern del 2008 vaig aprendre a utilitzar el


Macromedia Flash Professional. Aquest programa compleix tots els
requeriments que necessitava: permet programar lliurement, sense
necessitat d’utilitzar un model inicial i em permet distribuir-ho fàcilment, ja
que la majoria de gent té instal·lat al seu ordinador el complement per a
navegadors de flash i aquest fa que no tinguin que descarregar el joc, o
sigui, que poden jugar online, des de la pròpia web.

Amb aquest projecte podré adquirir coneixements sobre programació,


disseny gràfic i sobre la resta d’elements que formen un videojoc. Penso
que aprendre programació em servirà, ja que voldria ser enginyer informàtic
al futur.

2-Requeriment
L’objectiu d’aquest treball es crear un videojoc des de zero de tipus
plataformes que sigui de qualitat. Una vegada tenim l’idea del que es vol
realitzar s’ha de decidir com es farà:
Per a la creació d’un videojoc d’aquest tipus s’ha de tenir en compte molts
aspectes, com la programació, els gràfics (que inclouen el disseny dels
escenaris, personatges i objectes) la música, l’argument... així que
aniré per orde. Començaré parlant de la programació:

En la meva recerca de programes per dissenyar jocs de plataformes vaig


trobar diverses aplicacions, com “Platform Studio” o “Game Maker”. El
problema dels jocs que es creen amb aquests El tipus d’arxiu que es crea amb
programes es que són difícils de distribuir, Macromedia Flash és el .swf.
perquè estan en format .exe (que és el Aquest tipus d’arxiu està molt
estès per Internet i ofereix molts
format dels programes). Que estigui en
avantatges en la programació i el
aquest format ens obliga a descarregar el joc disseny. Per exemple, els vídeos
completament per poder jugar, en comptes de de YouTube i molts dels anuncis
fer-ho online, des de la mateixa web. A més, d’internet estan en .swf.
aquests programes també estan bastant limitats, amb moltes pautes. Per
això m’he decantat pel “Macromedia Flash Professional”, perquè ens dóna
total llibertat en tots els aspectes i el producte que obtindrem amb aquest
serà més fàcil de distribuir i crear que amb els altres dos. Aquest programa,
a més d’encarregar-se de la programació també crea les animacions i els
dibuixos.

D’altra banda, tenim els gràfics (o dibuixos). Per sort, amb el propi
“Macromedia Flash Professional” podem crear-los, encara que es poden
importar imatges d’altres programes, o fins i tot fotos. Per a algunes
textures i efectes he utilitzat el “Macromedia Fireworks” i l’“Adove
Photoshop”.

En la cerca de programes per fer música em vaig topar amb el “FL Studio”,
amb el que es poden obtenir molt bons resultats. Inclou un munt de
funcions, efectes i possibilitats per crear la teva pròpia música.

Un altre element en tenir en compte a l’hora de fer el joc es l’argument.


Volia que tingués una història entretinguda, amb humor i tensió, que no
avorrís al jugador. Inicialment anava a tenir un argument, però finalment
vaig decidir canviar-ho, ja que era una mica complicat i veia que no em
donaria temps a fer-ho.

NOTA: alguns d’aquests programes i l’argument són explicats amb


més detall en les pàgines següents.

3-Procés de disseny del joc


Una vegada tenim els programes que utilitzarem passem a veure les
funcions bàsiques d’aquests, a més de com han sigut emprats en el
projecte:
3.1.- Disseny dels gràfics
Recordem que per fer els gràfics he utilitzat pràcticament sempre el
Macromedia Flash. A continuació exposo una mica d’informació per
introduir el programa i saber com s’utilitza.

CONCEPTES BÀSICS DEL FLASH

Aquí tenim les eines més utilitzades del Flash:

Eines de selecció: serveixen per a seleccionar els


diferents elements o part dels que tenim a l’escena.
Eines de dibuix: creen cercles, quadrats i
pentàgons, a més de rectes.
Eines de dibuix lliure: ens permeten crear formes a
mà alçada amb el ratolí. El llapis dibuixa línies i el
pinzell acoloreix.
Eines de pintura: omplen de color les formes i les
línies.

A l’hora d’omplir les formes de color, podem utilitzar degradats, colors


sòlids, imatges o textures. Les línies també es poden personalitzar
canviant el seu gruix, color, tipus (línia sòlida, de punts, etc).

Bàsicament, tot això es el que necessitem per fer els dibuixos al


programa. Una vegada esmentades les eines, parlarem del lloc de
treball: l’escena. A l’escena col·loquem tots els elements que
apareixeran al joc (es semblant a les diapositives del Power Point).
Aquesta pot tenir la mida que vulguem. A més, les escenes poden
contenir diverses capes. Són útils a l’hora de distribuir els elements de
la presentació i superposar-los.
L’àrea blanca del centre és l’escena. Tot el que es trobi a dins es veurà a
la presentació.
A l’esquerra es poden apreciar totes les eines de dibuix i control.

I com a últims conceptes bàsics hi ha tres tipus de símbols amb els


quals s’interactua i es creen les pel·lícules flash:

Els botons: permeten realitzar accions quan els hi fem clic o


quan passem el cursor per sobre d’ells.
Els gràfics: poden ser animacions o imatges fixes. Són semblants
als clips de pel·lícula, però la diferència es que aquests només
contenen animació, no poden contenir cap tipus de programació.
Els clips de pel·lícula (movieclip): són animacions que poden
contenir línies de codi. També poden interactuar entre ells.
Al joc que crearé empraré els movieclips per fer els diferents enemics i
elements interactius que tindrà el joc. Els botons i els movieclips són els
únics símbols interactius del flash.

DIBUIX I GRÀFICS

Totes les eines de dibuix del Flash creen imatges vectorials. Les
imatges vectorials tenen la peculiaritat que sempre tenen bona qualitat:
per molt que augmentis la grandària d’un dibuix sempre es veurà bé.
D’altra banda tenim els dibuixos creats amb píxels (mapes de bits), que
sí que perden qualitat quan augmentem la grandària.

A continuació tenim una comparació entre el dibuix vectorial i el mapa


de bits:

Mapa de bits
Dibuix
vectorial

Encara que el Macromedia Flash només creï dibuixos vectorials també


podem importar mapes de bits (jpeg, gif, png...). De vegades es
recomanable utilitzar mapes de bits si els dibuixos vectorials són molt
complexos, ja que el rendiment pot veure’s afectat.

Com a exemple de gràfic podem agafar qualsevol imatge del joc, ja que
totes han sigut fetes amb el Macromedia Flash:
ANIMACIÓ

Els elements que es troben a l’escena


poden variar a mesura que avança el
temps gràcies a la línia de temps.
Podem veure els fotogrames del
projecte i les diferents capes de
l’escena.

Els diferents tipus d’animació es poden classificar en tres grups:

• Animació per fotogrames (mètode tradicional): podem


animar un objecte a base d’imatges fotograma per fotograma,
Exemples animació (tipus
animacio.fla) com es feia antigament a les sèries de dibuixos animats.
• Interpolacions de moviment: indiquem la posició inicial i final
d’un desplaçament per tal que l’objecte el recorri. A més de
desplaçaments es poden fer rotacions i canvis de mida.
• Interpolacions de forma: un dibuix esdevé en un altre
progressivament.
Les diverses animacions es mostren a la línia de temps. Cada quadrat és
un fotograma. Per tant, si una interpolació de moviment ocupa deu
quadrats vol di que te una duració de deu fotogrames. A continuació
Interpolació pilota veurem
(cercle una interpolació de moviment:
interpolacio.fla)

Aquest cercle, que es troba a la


“Capa 1” es desplaça d’esquerra a dreta en quinze fotogrames, que a
dotze fps (fotogrames per segon) equival a 1.2 segons. Tota aquesta
informació la proporciona la línia de temps. Sobre els fps podem dir que
mentre més fotogrames per segon hi hagi, la animació serà més fluida,
mentre que amb pocs l’animació serà lenta i no lluirà tant (els fps es
poden comparar amb els hertz de les televisions). Per al joc hem decidit
utilitzar 30 fps pels avantatges esmentats anteriorment.

Comparativa entre els


fps (directe)
ANIMACIÓ DELS PERSONATGES
Després de parlar sobre les diferents formes d’animar els elements del
joc ens centrem ara en l’animació dels personatges. Podria dividir els
personatges del joc en principals i secundaris, com si es tractés d’una
obra de teatre:

•Principals: els protagonistes, els esbirros i el cap dels enemics.


•Secundaris: els habitants dels pobles, els enemics dels escenaris
i caps de les diverses àrees.
Els principals tenen les animacions fetes d’una altre manera respecte dels
secundaris:

Els secundaris tenen poques animacions, perquè no tenen un paper


important al joc. D’altra banda, els principals, al aparèixer durant més
temps, tenen més animacions i són més detallades que les dels altres.
Podem veure un exemple tot seguit:

Quadrixel

1 2 3 4 5 6

Aquest personatge secundari té aproximadament sis animacions. Són


animacions fixes, sense cap possible combinació i/o variació. Per exemple,
quan hagi de caminar, ho farà tal com es veu a la tercera imatge, i sempre
tindrà aquesta mateixa expressió i posició de braços. El mateix passa si és
assegut (cinquena imatge) o en una de les altres posicions. Com el
personatge no apareixerà moltes vegades, no necessita animacions
complexes.

Dallyen i Melyan

Aquests sí que són dels principals. La diferència amb les


animacions dels que són secundaris és que aquestes estan
construïdes per seccions, perquè cadascuna de les parts de
seu cos conté les animacions que es corresponen amb la
seva part. Per a que quedi més clar, a continuació es
mostra l’estructura dels dos personatges per separat i les
seves animacions:

Orella
Cabell
Orella
Pigues
Braç
Ull
Cara
Serrel
Boca
Cames
Ull
Cap
Braç Cos
iCa
esquerre
esquerra
dret
esquerre
dreta
dret
de
coll
i nas
darrere
sencer
p
BraçBra
Ull
Cella
Mà Ul
Pupil·la
çl

Animacions de Dallyen per separat

COS

Dret Encongit Levitant

CAP

Endavant Cap a la dreta Cap a l’esquerra

BRAÇ

Relaxat Flexionat Estirat Cap amunt

Relaxada Oberta 1 Oberta 2 Puny Indicant “Pau”


ULL
Cap a la Cap a Enfadat Sorprès Tancat
Normal
dreta l’esquerra
BOCA

Normal Parlant Somrient Trista Rabiosa

L’avantatge té fer les animacions per seccions és que


posteriorment es poden combinar.

Software utilitzat

Fl Studio 8 Música
Macromedia Flash Professional 8 Programació i gràfics
Audacity Edició de música i sons
Macromedia Dreamweaver 8 Creació de la web del joc
Macromedia Fireworks 8 Edició de gràfics

MÚSICA
A més de cuidar l’apartat visual, la música que sonarà durant les diferents
situacions del joc també s’ha de tenir en compte. Totes les cançons que hi
ha han sigut creades amb el FL Studio, un sintetitzador i compositor potent
amb moltes capacitats. Vegem una captura de pantalla del programa: (a
continuació introduiré uns quants conceptes bàsics d’aquest programa):

Balanç enFranja
Actiu/
Partitura
Instrument
Volum petit d’instrument
No actiu

Tempo En aquest comptador Controls Ens permeten aturar,


regulem la velocitat de
reproduir la cançó, etc.
la cançó.

Cadascun dels instruments té la seva franja i partitura. A més, a cadascuna


d’elles es pot regular el volum i el balanç, independentment de la resta
instruments.

Si fem clic sobre la partitura en petit de qualsevol dels instruments se’ns


obrirà en gran per tal de poder composar:
Aquest és un exemple de
partitura on col·loquem
les notes: cada requadre
verd és una nota. Mentre
més a dalt la posem, més
agut sonarà i el contrari
passarà amb els tons
greus. Si estirem una
d’elles, el so es
prolongarà.

La columna que té a dalt


del tot un triangle taronja
ens indica la posició de la reproducció actual. A mesura que el triangle es va
desplaçant per les columnes van sonant les diferent notes.

D’altra banda, la barra inferior de la partitura (la que té línies verticals


verdes) regula altres paràmetres de cada nota en concret, com el volum, el
balanç (que regula per quin altaveu sona certa nota) o quant de desafinada
està. Podem combinar aquestes funcions al nostre gust.

Una vegada comentats els elements més bàsics del programa puc posar
diferents exemples de partitures. La que veurem a continuació es la de la
cançó “Cim Nevat” (Zona neu):

CIM NEVAT

So campana Campana tubular

Bateria Sons d’orquestral


Piano Trombó

Conjunt corda So campana agut


spiccato
Conjunt corda Baix elèctric
tremollo
...

Tot seguit hi ha les diferents partitures de diverses cançons del joc:

LA DEMO

A l’octubre del 2009 vaig penjar una demostració del joc, en la qual es podia
veure les característiques bàsiques d’aquest. La demo incloïa les tres
primeres fases.

Juntament amb la demo vaig penjar una enquesta per tal de recaptar
informació sobre l’opinió dels jugadors. Les preguntes que apareixien en
l’enquesta eren les següents:

I els resultats obtinguts aquests:

Gràcies a l’enquesta he pogut saber si el joc té un rendiment bo per ser


jugat a la majoria d’ordinadors, si l’ambient, controls i música són bons i a
més de conèixer les opinions de la gent sobre la demo vaig poder saber
quines coses els hi agradaria millorar o afegir. Per exemple, la funció de
córrer inicialment no apareixia al joc, però en veure que un gran nombre de
persones opinava que el personatge es desplaçava una mica lent vaig
decidir afegir-la.
Problemes

Les vides. És bastant molest que només que et toquin ja en perdis una. És
millor que puguis xocar amb l'enemic unes quantes vegades abans de
perdre una vida, com als jocs clàsics. He decidit que quan et colpegin el
protagonista, Red, es mogui com si rebés el cop. Per a realitzar això he
hagut d'estudiar el motion tween. Quan un enemic et toca y perds un "cop",
se suposa que Red s'ha de moure com si rebés el cop, perquè si es manté
en la posició que va tenir col·lisió amb l'enemic, continuaria perdent "cops".
Això es podria fer facilment indicant les coordenades a les quals vols que es
desplaci, que seria la posició x i y de Red +5 pixels, per exemple. Però el
problema està en que si s'escriu aquest senzill codi, el personatge no es
desplaçarà a la posició esmentada, sinó que es teletransportara. El que
volem es que el personatge es mogui des de (0, 0) [respecte Red] fins a [5,
0] [una mica desplaçat]. Gràcies al motion tween es podrá realitzar aquest
efecte de desplaçament.
Després d'investigar i fer diverses proves:
¡¡BENEIT MOTION TWEEN!! ¡Ho he aconseguit! Ara hauré de crear el
comptador de "cops" i programar la resta d'enemics que tenen el codi antic
que et treia una vida de cop, a veure que tal.
http://www.cristalab.com/tips/animaciones-dinamicas-con-clase-tween-de-
actionscript-2-c48969l/
Problema de les 3D

Vaig donar la sensació de 3D al fons fent que quan el jugador es


desplacés hi actués un motion tween a les diferents capes de fons,
però una vegada mories i tornaves a començar el fons, no se perquè
es movia a la meitat de velocitat.

Solució de les 3D

Per aquest motiu he decidit fer aquesta sensació de 3D creant a les


diferents capes el moviment de desplaçament que va succeint a
mesura que avança el jugador amb una interpolació.

Problema que comporta la solució de les 3D

Pensava que ja estava resolt, però ara hi ha un altre problema: quan


un enemic t’ataca, el protagonista es desplaçat uns metres. En
aquest moment, el fons també s’ha de moure, perquè sinó seria poc
realista. Ara bé, he d’esbrinar com fer que les capes tornin a uns
fotogrames enredera passant per cadascun d’ells, no anant
directament 20 fotogrames abans, per exemple.

Problema amb les col·lisions


Quan estava programant el moment en que el protagonista pot
llençar la pedra vaig adonar-me’n de que llencés on llencés la pedra,
sempre es quedava aturada, com si hagués xocat amb alguna cosa
encara que no toques el terra. Això es deu a que les col·lisions entre
movieclips es dóna en el requadre que envolta a aquest:

Es dibuixi el que es dibuixi, les col·lisions sempre es


detectaran en el punt en que els “requadres invisibles” que
envolten a cadascun es toquin.

Al primer exemple es ben clar que no hi ha col·lisió, mentre que al


segon, encara que els dibuixos no es toquin, hi ha col·lisió perquè els
requadres que els envolten si que es solapen.

Ara el problema s’entendrà millor: quan el jugador prova a llençar la


pedra aquesta es queda congelada a l’aire, ¿per què? Perquè detecta
col·lisió amb el sòl... però en realitat no el toca. Com el terreny no es
recte, sinó irregular, aquest alts i baixos fan la següent forma del
“requadre invisible”:

Aquesta es la captura
original. Com pots
veure, el terreny per on
camina el protagonista
es irregular (forats,
desnivells, etc).

A la segona imatge pots


veure l’àrea on la pedra
quedaria aturada com si
hagués caigut a terra
representada de color
groc. Les formes de
color blanc són el
terreny real on hauria de
caure. Per tant, si en el
moment en que es va
obtenir aquesta imatge
el jugador fes l’acció de
llençar, veuria com la
pedra s’aturaria a l’aire,
flotant. ¿Per què?
Perquè detectaria la
col·lisió justament quan
la llença, creient que ha
tocat terra. Si la llencés després de fer un salt sortint fora de l’àrea groga, la
pedra recorreria uns metres fins a tocar el requadre groc.
Solució del problema amb les col·lisions

Per tal de fer que la pedra s’aturi en tocar terra he creat uns petits
quadrats que fan que la pedra s’aturi en tocar-los:

¡Malament! El rectangle d’aturar la pedra. He


inclinat té el punt de col·lisió col·locat tants perquè pensa
real a l’àrea groga. que si posés formes
inclinades detectaria el
requadre del voltant.
¡Bé! Cadascun d’aquest
quadrats porta el codi

Problema desaparició momentània bucle desert

Quan el

Error diari de l’esquelet blanc

No sé per quin motiu, a l’hora de provar la fase del desert amb unes
modificacions al diari del esquelet blanc, Flash em dona error. Provaré
a tornar a crear-lo en un nou movieclip.

Increïble, continua fallant. Quina paranoia.

Motion Tween aplicat a les mides d’un movieclip

Per l’efecte del sol del desert que es redueix quan algun objecte
passa per davant seu volia utilitzar un motion tween, per a que la
reducció de tamany quedés més bonica sent progressivament. Però
no sé per quin motiu, quan provo el resultat es el mateix que sense
tween. Misteris del flash...

Problema de la lluentor del sol del desert

No sé per què quan duplico diversos movieclips per a que facin


l’efecte del sol quan passa algun objecte per davant només funciona
amb un d’ells. Quina ràbia...
Problema diferents codis amb la mateixa tecla

No tinc n’idea de perquè quan col·loco dos codis que utilitzen la


mateixa tecla només funciona amb un d’ells. Hauré d’investigar.

Solució als diferents codis amb la mateixa tecla

Abans havia col·locat els diferents codis a cada movieclip. Per


solucionar aquest problema he col·locat tot el codi al mateix
movieclip. No se per quin motiu ara va bé, però mira, ja està resolt.

Problema amb el rendiment

Afegir degradats, transparències, efectes visuals excessius i dibuixos


complexes fa que el rendiment es vegi afectat. Això és un problema,
ja que el jugador experimentarà una reducció dels fps, que
correntment hauria de ser de 30 fps. Això molesta, ja que el jugador
s’ha d’adaptar a una velocitat més lenta que la que seria en realitat.

L’efecte de la visió làser n’és un exemple clar de consum de


rendiment. És un requadre amb transparències amb un efecte que fa
variar el color de la pantalla. S’haurà de fer un altre tipus d’efecte per
tal que el rendiment millori.

ERROR!!

Mare meva la quantitat de vegades que se m’ha tancat el Flash o


reiniciat l’ordinador mentre treballava... y he perdut el treball que no
havia tingut temps de guardar... però bé...

Problema amb les màscares al sòl

Les màscares permeten mostrar determinades àrees de les capes que


es troben per sota d’aquesta. El problema que ens donen es el
següent:

Si col·loquem un movie clip al sòl pel qual camina el protagonista i té


una màscara, el personatge caminarà per sobre del dibuix
emmascarat.
Problema amb les col·lisions dels enemics

Quan el protagonista no portava el trident i xocava amb un enemic


tot funcionava correctament, però quan el portava i el trident xocava
amb l’ enemic el que passava era que també li restava una vida. Per
què? Dons perquè l’enemic estava programat per a que quan el
conjunt del protagonista (cos, accessoris, armes...) el toqués li restés
una vida. Per aquest motiu vaig haver de canviar el codi i afegir un
quadrat-detector a l’àrea del cos per tal que només ferís el jugador
quan fos tocat:
onClipEvent (enterFrame) {
Quadrat-detector
- -CODI
CODIANTIC
NOU - -
if (_root.red.limite.hitTest(this))
(_root.red.hitTest(this)) {
{ //Codi que fa perdre una vida
} //Codi que fa perdre una vida
} }
}

Millora amb el salt de la molla

Com es pot veure al vídeo, inicialment el salt de la molla era una mica
estrany:

Saltaves i a la part més alta del salt, el personatge sofria una caiguda
rapida. Canviant el motion tween que provocava aquest salt per un
altre codi es pot obtenir un millor efecte de rebot. A més de millorar
el rebot, si mantens polsat el botó de salt quan rebotes arribaràs a
més alçada que sense polsar-ho.

Problema amb les fonts

El joc utilitza diversos tipus de lletra que no tothom té instal·lats als


seus ordinadors. Els usuaris que no els tenen veurien els textos amb
un tipus de lletra predeterminat (tipus Times New Roman). Per
solucionar això s’ha d’importar els tipus de lletra poc comuns al joc.

Problema amb l’enemic carbassa que cau

Quan vaig acabar de programar aquest enemic per a que pugés sol i
fos capaç d’aturar-se en tocar terra o sostre, de vegades tenia
problemes: no detectava el sòl en el moment que queia, i el que
passava era que continuava caient. El mateix passava a l’hora
d’ascendir.

Solució del problema amb l’enemic carbassa que cau

Primerament pensava que el problema era degut a que havia


programat malament el punt que havia de xocar amb el terra per a
que s’aturés. Vaig provar amb diferents punts de col·lisió i de vegades
anava bé, però no sempre. Després de moltíssims intents i proves
vaig adonar-me’n que el problema persistia perquè...

Problema amb l’aparició i desaparició d’enemics per no consumir


molt rendiment

Durant tota l’estona que el jugador està en un escenari, tots els


enemics i objectes que hi ha s’estan mostrant. O sigui, que hi ha
coses que es troben encara molt lluny del jugador i ja es mostren en
pantalla. Això comporta un consum del rendiment innecessari. Per
això vaig fer que només es mostressin els enemics al col·lisionar amb
la càmera. Aquesta idea donava bons resultats, però el problema
apareixia a l’hora de jugar en una pantalla panoràmica: la càmera
sempre es quadrada, i els espais que hi ha pels costats dret i
esquerre no formen part d’aquesta. Per tant, els enemics no
apareixien fins a que es trobaven en l’àrea de la càmera, donant un
efecte cutre, ja que apareixien sobtadament.

Solució del problema amb l’aparició i desaparició d’enemics per no


consumir molt rendiment

El codi per a que un enemic o objecte aparegués quan es troba en


pantalla, col·lisionant amb la càmera era aquest:

onClipEvent (enterFrame) { onClipEvent (enterFrame) {


if (_root.camera.hitTest(this)) { if (this._x<_root.camera._x-600 or this._x>_root.camera._x+600) {
this._visible = true; //Si s’acompleix, no mostrar-ho
} else { this._visible = false;
this._visible = false; } else {
} //Si no s’acompleix, mostrar-ho
}
this._visible = true;
}
}

Com es pot veure, el nou codi el que fa es mostrar a l’enemic/objecte


quan es troba entre la coordenada x de la càmera – 600 i la
coordenada x de la càmera + 600.

http://www.freesound.org/
CODI RED FONS 3D PER FOTOGRAMES

onClipEvent (load) {
var grav:Number = 0;
// gravity
var speed:Number = 4;
// how fast you walk
var jumpHeight:Number = 10;
// how high you jump
var slow:Number = .7;
// sets water falling speed
var slowspd:Number = speed/2;
// sets water walking speed
var setspeed:Number = speed;
var scale:Number = _xscale;
var ex:Number = 1;
// makes hitTests better, change for a closer hitTest (warning, more buggy if smalle, less real if
further)
}
onClipEvent (enterFrame) {
if (_root.controlador_tuberia.usando_tub.text == "no") {
grav++;
_y += grav;
while (_root.ground2.hitTest(_x, _y, true)) {
_y--;
grav = 0;
}
if (_root.water.hitTest(_x, _y, true)) {

CODI RED FONS PER ACTIONSCRIPT

onClipEvent (load) {
var grav:Number = 0;
onClipEvent (load)// {gravity
var
var grav:Number
speed:Number==0;4;
//
// gravity
how fast you walk
var
var speed:Number
jumpHeight:Number = 4; = 10;
//
// how
how fast
high you
you walk
jump
var
var jumpHeight:Number
slow:Number = .7; = 10;
// sets
// how water
high you jump
falling speed
var
var slow:Number
slowspd:Number = .7;= speed/2;
//
// sets
sets water
water falling
walkingspeed
speed
var setspeed:Number
var slowspd:Number ==speed/2;
speed;
// sets
var water walking
scale:Number speed
= _xscale;
var
var ex:Number = 1; = speed;
setspeed:Number
var
// scale:Number
makes = _xscale;
hitTests better, change for a closer hitTest (warning, more buggy if smalle, less real if
further) var ex:Number = 1;
} // makes hitTests better, change for a closer hitTest (warning, more buggy if smalle, less real if
further)
onClipEvent (enterFrame) {
} if (_root.controlador_tuberia.usando_tub.text == "no") {
onClipEvent (enterFrame) { grav++;
if (_root.controlador_tuberia.usando_tub.text
_y += grav; == "no") {
grav++;
while (_root.ground2.hitTest(_x, _y, true)) {
_y += grav; _y--;
while (_root.ground2.hitTest(_x,
grav = 0; _y, true)) {
} _y--;
grav = 0;
if (_root.water.hitTest(_x, _y, true)) {
}
if (_root.water.hitTest(_x, _y, true)) {

You might also like