Sprites

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Sprites

Mensagem por DUDU951 em Qui 26 Jun 2014, 16:51

Oi

Tem um objeto que eu queria que ficasse trocando de sprite a cada 2 segundos, cada vez um sprite diferente, mas eles tem sua ordem:

spr_100 > spr_95 > spr_85 > spr_80 > spr_70 > spr_65 > spr_60 > spr_50 > spr_50 > spr_40 > spr_30 > spr_25 >spr_20 > spr_10 > spr_5 > spr_00

Quando houvesse a colisão entre 2 outros objetos, voltaria para a spr_100, e as sprites começariam a trocar de novo, sempre na ordem.

Como fazer isso?

DUDU951

Número de Mensagens : 90
Idade : 17
Data de inscrição : 24/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por Witen em Qui 26 Jun 2014, 17:03

Cara isso é muito fácil de se fazer com alarme, mas vai ficar maior bagunça, me diz ai como quer que funcione seu projeto, a ideia inicial, ai sim te aponto a melhor maneira e como chegar la.

Witen

Ranking : Sem avaliações
Número de Mensagens : 515
Idade : 17
Data de inscrição : 23/05/2012
Reputação : 36
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.wibix.webs.com

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por 7hiagomp em Qui 26 Jun 2014, 17:27

Na verdade o ideal é que tudo seja um unico sprite e você fique trocando a subimagem.
adicionando com o alarme +1 ao image_index.

no evento de colisão o número volta a 0

é preciso uma variável pra isso.

--------------- eu faria ------------------

antes de tudo, criar 1 sprite com todas as imagens que você quer como frames. Sendo 0 o frame relativo a spr_100

create
Código:

sprite_index = (nome_da_sua_sprite)
image_index = 0
image_speed = 0             //esses codigos dizem como a sua imagem começa

frame = 0  //essa variavel controla a subimagem da sprite
alarm[0] = room_speed*2
// o 2 corresponde a 2 segundos qualquer que seja a velocidade o seu room

step
Código:
sprite_index = (nome_da_sua_sprite)   //nomeia a sprite
image_index = frame                                   // a subimagem é igual a variavel frame

alarm 0
Código:

if frame <= 15                            // for menor ou igual a 15
{
 frame = frame + 1                    // frame recebe +1
}
else frame = 0                           //senão frame recebe 0
alarm[0] = room_speed*2           //o alarme se chama de novo.


Última edição por 7hiagomp em Qui 26 Jun 2014, 21:34, editado 4 vez(es)

7hiagomp

Número de Mensagens : 124
Idade : 31
Data de inscrição : 21/04/2014
Reputação : 24
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por Rodrigo Santiago em Qui 26 Jun 2014, 17:34

Use um array
Um array é uma variavel, você já deve saber usar variáveis, mas a diferença é que essa variavel guarda vários valores diferentes para assesar ou mudar o valor use : variavel[numero]

Ex.:
spr_array[0]=spr_100
spr_array[1]=spr_95
... etc
spr_array[16]=spr_00

No evento create você cria uma variável que representa o índice.
Agora vou construir algo que pode lhe ajudar:
Código:

//No evento create
spr_array[0]=spr_100
spr_array[1]=spr_95
... etc
spr_array[16]=spr_00

indice=0
alarm[0]=room_speed*2


//No evento alarm 0
indice+=1
if indice>16 indice=16 ;//Vai parar no 16
alarm[0]=room_speed*2

//No evento colisao
indice=0

//No evento Step
sprite_index=spr_array[indice]

Rodrigo Santiago

Ranking : Nota B
Número de Mensagens : 1281
Idade : 20
Data de inscrição : 28/07/2012
Notas recebidas : C + C + B
Reputação : 73
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 1
   : 3

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por LightSpeedy em Qui 26 Jun 2014, 18:21

no create:

Código:
alarm[0]=60
//spr_100 > spr_95 > spr_85 > spr_80 > spr_70 > spr_65 > spr_60 > spr_50 > spr_50 > spr_40 > spr_30 > spr_25 spr_20 > spr_10 > spr_5 > spr_00

spr_index[0]=spr_100
spr_index[1]=spr_95
spr_index[2]=spr_85
spr_index[3]=spr_80
spr_index[4]=spr_70
spr_index[5]=spr_65
spr_index[6]=spr_60
spr_index[7]=spr_50
spr_index[8]=spr_50
spr_index[9]=spr_40
spr_index[10]=spr_30
spr_index[11]=spr_25
spr_index[12]=spr_20
spr_index[13]=spr_10
spr_index[14]=spr_5
spr_index[15]=spr_00

no alarm 0:

Código:

alarm[0]=60
if spr_index<15{spr_index+=1}

e na colisão com o objeto que faz ele voltar ao 100

Código:

spr_index=0

igual ao Rodrigo Santiago que tb esta certa,fiz esta de um jeito na minha visão mais simples de entender(embora seja quase a mesma coisa)

LightSpeedy

Ranking : Nota C
Número de Mensagens : 354
Data de inscrição : 24/04/2013
Notas recebidas : C
Reputação : 40
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por DUDU951 em Sex 27 Jun 2014, 10:44

Me deixaram confuso agora uhsuahsuahs

Gostei desse, eu já estou me familiarizando com o image index
Mas eu preciso de mais algumas coisas:

> Que quando chegar no último seja Game Over
Step
Código:
if sprite_index = 15
game over
> Que quando houver a colisão entre 2 outros objetos volte para a primeira imagem
Colisão objeto
Código:
if sprite_index =! 00
frame = 00
7hiagomp escreveu:Na verdade o ideal é que tudo seja um unico sprite e você fique trocando a subimagem.
adicionando com o alarme +1 ao image_index.

no evento de colisão o número volta a 0

é preciso uma variável pra isso.

--------------- eu faria ------------------

antes de tudo, criar 1 sprite com todas as imagens que você quer como frames. Sendo 0 o frame relativo a spr_100

create
Código:

sprite_index = (nome_da_sua_sprite)
image_index = 0
image_speed = 0             //esses codigos dizem como a sua imagem começa

frame = 0  //essa variavel controla a subimagem da sprite
alarm[0] = room_speed*2
// o 2 corresponde a 2 segundos qualquer que seja a velocidade o seu room

step
Código:
sprite_index = (nome_da_sua_sprite)   //nomeia a sprite
image_index = frame                                   // a subimagem é igual a variavel frame

alarm 0
Código:

if frame <= 15                            // for menor ou igual a 15
{
 frame = frame + 1                    // frame recebe +1
}
else frame = 0                           //senão frame recebe 0
alarm[0] = room_speed*2           //o alarme se chama de novo.


Última edição por DUDU951 em Sex 27 Jun 2014, 13:35, editado 4 vez(es)

DUDU951

Número de Mensagens : 90
Idade : 17
Data de inscrição : 24/06/2014
Reputação : 2
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por Witen em Sex 27 Jun 2014, 11:58

DUDU951 escreveu:Me deixaram confuso agora uhsuahsuahs
Gostei desse, eu já estou me familiarizando com o image index
Mas eu preciso de mais algumas coisas:

> Que quando chegar no último seja Game Over (isso já dá pra fazer com o if ali no step)
> Que quando houver a colisão entre 2 outros objetos volte para a primeira imagem(como faz??)
1-Simples Happy
Código:
if sprite_index=spr_00{show_message('Você perdeu!');
game_restart()}
2- É só você criar outro evento, sendo a colisão com os dois objetos que você quer. Depois coloque um código seguindo a base deste:
Código:
sprite_index=spr_100

Witen

Ranking : Sem avaliações
Número de Mensagens : 515
Idade : 17
Data de inscrição : 23/05/2012
Reputação : 36
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

http://www.wibix.webs.com

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por Riccardoric em Sex 27 Jun 2014, 12:06

DUDU951 escreveu:Me deixaram confuso agora uhsuahsuahs

Gostei desse, eu já estou me familiarizando com o image index
Mas eu preciso de mais algumas coisas:

> Que quando chegar no último seja Game Over (isso já dá pra fazer com o if ali no step)
> Que quando houver a colisão entre 2 outros objetos volte para a primeira imagem(como faz??)

7hiagomp escreveu:Na verdade o ideal é que tudo seja um unico sprite e você fique trocando a subimagem.
adicionando com o alarme +1 ao image_index.

no evento de colisão o número volta a 0

é preciso uma variável pra isso.

--------------- eu faria ------------------

antes de tudo, criar 1 sprite com todas as imagens que você quer como frames. Sendo 0 o frame relativo a spr_100

create
Código:

sprite_index = (nome_da_sua_sprite)
image_index = 0
image_speed = 0             //esses codigos dizem como a sua imagem começa

frame = 0  //essa variavel controla a subimagem da sprite
alarm[0] = room_speed*2
// o 2 corresponde a 2 segundos qualquer que seja a velocidade o seu room

step
Código:
sprite_index = (nome_da_sua_sprite)   //nomeia a sprite
image_index = frame                                   // a subimagem é igual a variavel frame

alarm 0
Código:

if frame <= 15                            // for menor ou igual a 15
{
 frame = frame + 1                    // frame recebe +1
}
else frame = 0                           //senão frame recebe 0
alarm[0] = room_speed*2           //o alarme se chama de novo.
1 - é simples
o que o Witen falou está certo mas tem outra possibilidade
Código:
 if sprite_index=spr_00{show_message('Você perdeu!');
room_goto (nome_da_room) //Muda a room especificada entre as ()
Acho que se voce fizesse um menu ficaria legal mas se quiser pode colocar restart game, só dei a minha opinião Happy

Riccardoric

Número de Mensagens : 206
Idade : 17
Data de inscrição : 17/06/2014
Reputação : 34
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 0

Voltar ao Topo Ir em baixo

Re: Sprites

Mensagem por Conteúdo patrocinado Hoje à(s) 04:06


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum