Magia com partículas

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

Magia com partículas

Mensagem por Fenrir em Qui 07 Jan 2010, 22:16

Hoje resolvi criar um sistema de magia pro meu jogo e gostaria de saber se tem como a partícula ser atirada do jogador, como uma bala mesmo, podendo acertar os inimigos. Pois bem, eu já criei o script pra magia, mas estou em dúvida em como que eu posso fazer ela ser atirada (se é que é possível).
Eu estou usando o seguinte código:

Código:
if keyboard_check_pressed(vk_space) and direita=true
{
ataque=false
part_particles_create(global.magia,x+16,y-16,global.part3,10)
alarm[1]=40
}
else if keyboard_check_pressed(vk_space) and direita=false
{
ataque=false
part_particles_create(global.magia,x+16,y-16,global.part3,10)
alarm[1]=40
}

O problema é que quando eu aperto a tecla Espaço, apenas cria o efeito, tanto pra direita quanto pra esquerda, mas eu queria saber como que faço pra atirá-la. Tem como? Shocked

Fenrir

Número de Mensagens : 14
Idade : 24
Data de inscrição : 05/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

é mais facil assim...

Mensagem por Luca$*** em Sex 08 Jan 2010, 01:26

crie o objeto player e objeto magia.
no objeto player coloque um key press space,crie uma ação create instance(isso fara com que o objeto player solte a magia,porem ela vai ficar parada)depois va,no objeto magia e coloque um evento create e uma ação move fixed(indique a seta para o lado que vc quer que a magia saia)
e pronto espero ter ajudado

vlw!!!

Happy Happy Happy

Luca$***

Número de Mensagens : 193
Idade : 20
Data de inscrição : 26/12/2009
Reputação : 13
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Kabeção em Sex 08 Jan 2010, 10:31

Você pode controlar a direção e a velocidade das partículas.

Código:
part_type_direction(ind,ang_minimo,ang_maximo,incremento,distorcao);
part_type_speed(ind,speed_mim,speed_max,incremento,distorcao);

Se vão se mover para a direita defina ang_minimo,ang_maximo,incremento,distorcao como 0.
Se vão se mover para a esquerda defina ang_minimo e ang_maximo como 180, incremento e distorcao como 0.

part_type_speed funciona da mesmo forma.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Fenrir em Sex 08 Jan 2010, 16:36

Obrigado pessoal, eu consegui criar aqui! Happy
Mas agora tem outro problema:

Quando eu lanço a magia e estou, por exemplo, para o lado direito, e viro para o esquerdo, após apertar a tecla, ele solta a magia pro lado direito e somente solta para o esquerdo se eu pressionar novamente! O que será que está errado?
Meus códigos são esses:

Create do obj_magia:
Código:


if obj_jogador.sprite_index=spr_Jerry_PED
{
part_particles_create(global.magia,x+16,y-16,global.pt3,10)
part_type_direction(global.magia,0,0,0,0)
part_type_speed(global.pt3,1,4,0,0)
}
else if obj_jogador.sprite_index=spr_Jerry_PE
{
part_particles_create(global.magia,x-16,y-16,global.pt3,10)
part_type_direction(global.magia,180,180,0,0)
part_type_speed(global.pt3,0.1,1,0,0)
}

Agora o evento Step do Obj_Jogador, que faz com que crie o Obj_Magia:
Código:
if keyboard_check_pressed(vk_space) and andando=false and atacando=true
{
atacando=false
alarm[1]=40
instance_create(x,y,obj_magia)
}

O que programei errado?

PS: Também estou com problema na colisão do Obj_magia com o Obj_inimigo. Será que tem algo a ver por ser uma partícula?

Fenrir

Número de Mensagens : 14
Idade : 24
Data de inscrição : 05/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Kabeção em Sab 09 Jan 2010, 15:44

É fácil resolver isso Fenrir.
Você esta definindo a direção e a velocidade depois de já ter criado a partícula.
part_particles_create tem que vir por ultimo.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Fenrir em Sab 09 Jan 2010, 22:14

Então Kabeção, consegui resolver mexendo mesmo, mas foi de uma maneira diferente da que você falou. =P
Um outro problema que estou tendo também é sobre a direção. Como você disse lá, para usar "obj_jogador.direction=180" e "obj_jogador.direction=0", então, o comando só funciona para a esquerda, já que para a direita, ele sai daquele jeito desfocado como eu falei acima, então, eu tô tendo que usar "obj_jogador.sprite_index", só que o problema é que eu tenho vários sprites, do tipo pulando, nadando, etc, dai queria ver se tem um jeito de eu definir a direção de um outro jeito, senão vou ter que ficar adicionando toda hora as sprites a serem checadas. Shocked
Não sei se deu pra entender muito bem...
Agora o problema de colisão, eu já resolvi. Camuflei um sprite com image_alpha=0. Surprised

Fenrir

Número de Mensagens : 14
Idade : 24
Data de inscrição : 05/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Kabeção em Dom 10 Jan 2010, 11:25

Ora, nem tudo da para fazer automaticamente não é? Razz

Você pode guardar as direção em variáveis e definir os ângulos antes de executar a ação.
Código:
switch (sprite_index)
{
    case sprite_correndo:
        angE = 180;
        angD = 0;
    break;

    case sprite_pulando:
        angE = 255;  // diagonal para baixo esquerda
        angD = 315; // diagonal para baixo direita
    break;

    // e por ai vai...
}


if direcao = esquerda
{
    part_particles_create(global.magia,x+16,y-16,global.pt3,10)
    part_type_direction(global.magia,angE,angE,0,0)
    part_type_speed(global.pt3,1,4,0,0)
}
else
{
    part_particles_create(global.magia,x-16,y-16,global.pt3,10)
    part_type_direction(global.magia,angD,angD,0,0)
    part_type_speed(global.pt3,0.1,1,0,0)
}

Você esta usando uma imagem para a esquerda e outra para a direita?
É melhor usar uma imagem só e mudar e inverter ela usando image_xscale.

Kabeção

Ranking : Sem avaliações
Número de Mensagens : 2314
Data de inscrição : 08/06/2008
Reputação : 100
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 3
   : 0
   : 1

http://blackcapapps.blogspot.com.br/

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Fenrir em Dom 10 Jan 2010, 21:48

Ah, agora eu entendi! Very Happy
Obrigado KAbeção, me ajudou bastante aqui pra entender. =P

Fenrir

Número de Mensagens : 14
Idade : 24
Data de inscrição : 05/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por John_kennedy em Dom 10 Jan 2010, 23:05

qual programa usa pra criar as sprites?

John_kennedy

Número de Mensagens : 14
Data de inscrição : 10/01/2010
Reputação : 0
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0

Voltar ao Topo Ir em baixo

Re: Magia com partículas

Mensagem por Conteúdo patrocinado Hoje à(s) 00:01


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