QUICK REFERENCE: CLASSE SPRITES

Essa classe usa uma biblioteca que é parte da Gamelib, criada por Scott Porter e atualizada por Brent Silby. Gamelib é disponível nos termos da GNU Library General Public Licence.

Para usar a biblioteca adicionar uma linha na sessão <HEAD> da página com:

<script language="Javascript" src="gamelib_sprites.js">< /script> 

Mas você precisa dar um clique no link abaixo e salvar esse arquivo (com a biblioteca) na mesma pasta onde ficar a página (ou referenciar):

gamelib_sprites.js

Devido a problemas no uso de Linux, adicione sempre essa linha nos seus scripts:

Sp_linuxcompatible=true;

Para criar um objeto (chamado, por exemplo: "someName") use:

someName = new Sp_Sprite(); 

Por definição, um sprite tem "frames" (quadros horizontais) e "animations" (quadros verticais). Se tivermos apenas 1 quadro (caso dos fundos, por exemplo) teremos 1 "frame" e 1 "animation" que são o mesmo - e nada se move. Já um avatar, por exemplo, tem quatro "frames" e duas "animations" em cada "frame". Donde 8 quadros.

Vamos ver, então os muitos métodos da Classe:


clearCollisionArea()

Remove a área de colisão do sprite. Veja setCollisionArea().


clearRoute()

Interrompe o sprite de seguir uma rota. Veja setRoute().


clearRouteLoop()

Interrompe o sprite em seu loop na rota, quando chegar ao fim dessa.


destroy()


setCollisionArea(n,n,n,n)

Define a área de colisão. os parâmetros são as distâncias left, right, top and bottom.


setCollisionZTest(n)

Define a distância máxima no eixo Z para colisão. Veja setZ(n).


setRoute (Boolean,n,n,...)

Define uma rota para o sprite. O booleano define se deve fazer só uma (false) ou loop. Depois se coloca duplas de x,y por onde passa o sprite.


getHits()

Retorna um array com todos os sprites com que esse colidiu.


hasHit(Object)

Testa se colidiu com outro (nome em Object).


moveTo(n,n)

Move para x,y.


setDir(n,n)

Define direção.


setXlimits(n,n)

Limites para movimentos horizontais.


setYlimits(n,n)

Limites para movimentos verticais.


setImage(String,n,n,n,n)

Define a imagem do sprite.Primeiro o arquivo (ex: "mypicture.gif");depois width de cada quadro; heigth de cada quadro; número de"frames"; número de "animations".


setFrame(n)

Resseta para primeira "animation" desse "frame" É preciso setar o frame antes dele aparecer. Se só tiver um frame use: setFrame(0).


setFrameByDirection (n,n,n...)

Especifica que frames o sprite usa em cada direção. Os argumentos aparecem em grupos de três: degree,degree,frame, degree,degree,frame etc, etc. Se você precisa que um sprite use frame 0 quando se move entre 50 e 70 graus e frame 1 entre 71 e 100 graus coloque: mySprite.setFrameByDirection(50,70,0,71,100,1);


setAnimation(n)

Define uma das animations.


setAnimationLoop(n,n)

Define limites para as animations


setAnimationRepeat(n)

Para valores acima de -1, vai repetir n vezes. Para -1 temos um loop.


setAnimationSpeed(n [,String])

O valor 3 é boa velocidade para "walking". 2 é mais rápido. O segundo argumento pode ser: "forward" ou "backward".


setSpeed(n)

Velocidade do sprite (não da animação)


getXYdegs()

Retorna a direção corrente (0 a 359).


setXYdegs(n)

Define a direção corrente (0 a 359).


setZ(n)

Define a camada Z do sprite. Maiores valores passam sobre menores.


switchOn()

Liga o sprite tornando-o visível.


switchOff()

Desliga (invisível).


dragType (n)

Define como o sprite pode ser arrastado - requer makeDraggable(). Valores de n: 0 = normal (default); 1 = só no eixo y; 2 = só no eixo x.


follow(Object,n,n)

O sprite segue outro permanecendo à distância n,n. Use stopFollowing() para liberar.Bom para balas de armas...


makeDraggable()

Torna arrastável. Tem que ter um objeto Mouse definido - ver essa Classe.


makeUndraggable()

Pára de ser arrastável.


setCollide(Boolean)

Se true, o sprite registra colisões (default=false).


stopFollowing()

Sprite pára de seguir outro.


useHitEvents(Boolean)

Se true, o sprite usará hit events definidos antes.


setHitEvent(Object,String)

String é nome de função ou statement a ser chamado quando de colisão.


target (Object,n,n)

O sprite segue em direção ao outro até x,y.Use stopTargetting() para interromper.


stopTargetting(String)

Visto acima. Se o String 'drift' é passado(ex: mySprite.stopTargetting('drift')) continua na mesma direção.


makeHard ()

Torna o sprite "duro" para colisão.


setHardHitEvent(String)

O argumento é função ou statement quando colide com QUALQUER objeto. Precisa de useHitEvents().

E agora as muitas propriedades:


on

Para ver se sprite está on ou off.


x


y


z


xmin


ymin


xmax


ymax


width


height


xdir

Direção.


ydir

Direção.


xydegs

Direção como 0-359 degrees


speed


hard


frame

Frame corrente.


animpos

Animation corrente.


animdir

Direção da animation.


animspd

Quantidade de frames entre animations. ZERO significa nenhuma animation.

Próximas quatro propredades requerem um objeto da Classe Mouse definido


onmouseover [=String]

É R/W . O String é a função a ser chamada. Ex: mySprite.onmouseover="dosomething(x,y,z)"


onmouseout [=String}


onclickdown [=String]


onclickup [=String]


bounces [=Boolean]

É R/W. O sprite "bate e volta".


draggable


hitevents

Se o sprite hit events - Veja setHitEvent()


beingfollowed


following


followingx

O offset entre os sprites.


followingy


              LIÇÃO ANTERIOR       PRÓXIMA LIÇÃO             
ÍNDICE HOMEPAGE