Conectar-se
Quem está conectado
14 usuários online :: Nenhum usuário registrado, Nenhum Invisível e 14 Visitantes

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

[resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 18:45
É o seguinte, eu botei pro meu personagem matar o inimigo pulando encima, e também coloquei pra q caso ele colida com o inimigo, perca 1% da saude. Então fiz assim:

Na colisão do inimigo com o personagem:
Código:

if other.y>y{
instance_destroy()}

Na colisão do personagem com o inimigo:

Código:
health-=1


Eu queria saber como faz o personagem só perder vida qdo encosta no lado do inimigo, pois se ele encostar encima, perde vida tbm, Ajudem aew, flw!
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:03
na colisao do personagem com o inimigo poe:

if y < other.y
{
health -=1
}
Convidad
Convidado

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:05
Tente assim:
Código:
Obj inimigo > colisão com o player:
if other.vspeed>0 && other.y<y+sprite_height
    instance_change(obj_inimigo derrotado,true)

Obj player > create:
invencivel=0 //crie uma var para controlar a perda de health, do contrário irá decrescer todo o tempo em que estiver em colisão com o inimigo

Obj player > alarm[0]:
invencivel=0

Obj payer > step: //isso é para "piscar" enquanto estiver invisível
if invencivel=1
    {
    if visible=1
        visible=0
        else
        visible=1
    }
    else
    visible=1

Obj player > colisão com o inimigo:
if vspeed>0 && y<other.y+sprite_height
    motion_set(90,5) //isso é para dar aquele "salto" após matar o inimigo
    else
    {
    if invencivel=0
        {
        health-=1
        invencivel=1
        }
    alarm[0]=10 //troque o valor para um que fique legal no seu game
    }


...acho que é tudo, qq coisa só dizer =]

flw
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:08
Blz, mas o inimigo nao ta morrendo qdo eu pula encima dele, ele passa direto, oq será?
Convidad
Convidado

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:19
Eu passei esse código para o Gilomania no grupo de estudos e no dele funcionou OK... eu tmb já usei isso antes sem problemas;

Se está passando direto é pq pode haver algo errado na parte que checa a relação entre o y do player com o do inimigo...
avatar
Data de inscrição : 10/06/2008
Número de Mensagens : 245
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:22
Não te esqueças de mudar o nome dos objectos e se quiseres destruir a instância usa em vez de "instance_change(obj_inimigo derrotado,true)" por "instance_destroy()"
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:32
juninhodagavioes escreveu:Blz, mas o inimigo nao ta morrendo qdo eu pula encima dele, ele passa direto, oq será?
Ae fmanna, essa resposta foi pelao post do janx, mas vc postou junto comigo xD
Bom, eu fiz oq vc falou, mas deu isso:

Convidad
Convidado

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:36
Se vc puder postar o código que usou no step do player pra gente dar uma olhada ajudaria... a msgm só diz 3° ação do step do player, aí fica difícil;

flw
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:48
fmanna escreveu:Se vc puder postar o código que usou no step do player pra gente dar uma olhada ajudaria... a msgm só diz 3° ação do step do player, aí fica difícil;

flw

Ok tae:

Ação 1:
Código:
if (place_free(x,y+1)){
gravity=0.75; noar=true;}
else
{gravity=0;noar=false}

if (keyboard_check_pressed(vk_up)) && ! (place_free(x,y+1)){
vspeed=-8; noar=true;}
if (vspeed>12){
vspeed=12}

if (keyboard_check(vk_left)) && ! (keyboard_check(vk_right)) && (place_free(x-4,y)){
x-=4; lado=0; andando=true; parado=false;}
if (keyboard_check(vk_right)) && ! (keyboard_check(vk_left)) && (place_free(x+4,y)){
x+=4; lado=1; andando=true; parado=false;}
if !(keyboard_check(vk_left))&& ! (keyboard_check(vk_right)){
parado=true; andando=false;}

if (noar==false){
if (andando=true)&&(lado==1){
sprite_index=spr_andando_direita}
if (andando=true)&&(lado==0){
sprite_index=spr_andando_esquerda}
if (andando==false)&&(parado==true)&&(lado==1){
sprite_index=spr_parado_direita}
if (andando==false)&&(parado==true)&&(lado==0){
sprite_index=spr_parado_esquerda}
}
else
{
if (vspeed>0)||(vspeed<0)&&(lado==1){
sprite_index=spr_pulando_direita;}
if (vspeed>0)||(vspeed<0)&&(lado==0){
sprite_index=spr_pulando_esquerda;}
}


Ação 2

Código:
{
    if visible=1
        visible=0
        else
        visible=1
    }
    else
    visible=1

Não tem ação 3 pois eu exclui a 2, entao a 3 passa ser a 2
A 2 era propriedades de piscar, mas como seu codigo ja possui resolvi excluir Smile


Última edição por juninhodagavioes em Ter 18 Nov 2008, 19:51, editado 1 vez(es)
avatar
Data de inscrição : 10/06/2008
Número de Mensagens : 245
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:50
experimenta assim
if invencivel=1
{
if visible=1
visible=0
else
visible=1
}
else
visible=1
faltava-te if invencivel=1
Convidad
Convidado

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:51
Isso mesmo gilomania3d... o erro é pq não é condição para as ações serem executadas;
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 19:51
Código:
{
    if visible=1
        visible=0
        else
        visible=1
    }
    else
    visible=1

perceba que vc nao pois os "{" E "}"
no else o correto é:

Código:
{
    if visible=1{visible=0}
        else{visible=1}
    }
    else{visible=1}

EDIT:

{
if visible=1{visible=0}
else{visible=1}
}
else{visible=1}

OBS:se nao tiver um if antes das chaves em negrito ele nao vai reconhecer o else grifado


Última edição por janx em Ter 18 Nov 2008, 19:54, editado 1 vez(es)
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:03
Outro erro (desculpe mse eu estou sendo chato xD)
avatar
Data de inscrição : 10/06/2008
Número de Mensagens : 245
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:04
Eu tenho assim e no meu funcionou não foi preciso pôr mais "{" e "}"

Confirma se poses-te no evento Create do player "invencivel=0" e no evento alarm[0] puseste "invencivel=0";

Confirma o código todo para ver se está tudo bem
avatar
Data de inscrição : 24/05/2008
Número de Mensagens : 2417
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   : 0
   : 2
   : 0
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:24
repare no codigo errado:
instance_change(obj_inimigo derrotado,true)

esse derrotado eu axo que vc pode tirar!

vc so esta copiando os codigos é?
tente intendelos pelomenos!
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:32
Não cara, eu tentei entender, só nao entendi esse derrotado.
Edit: E o problema insiste, aff desisto.


Última edição por juninhodagavioes em Ter 18 Nov 2008, 20:39, editado 1 vez(es)
avatar
Data de inscrição : 10/06/2008
Número de Mensagens : 245
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:39
Esse derrotado é se tiveres outro objecto que aparece depois de o matares o derrotado é o nome do objecto.

Ex:como no Mário quando matas o inimigo ele fica numa linha esse derrotado é isso mesmo em vez disso pões instance_destroy()
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:45
@gilomania3d escreveu:experimenta assim
if invencivel=1
{
if visible=1
visible=0
else
visible=1
}
else
visible=1
faltava-te if invencivel=1
Gilomania, vlw, eu fiz isso q vc disse, não dá mais erro, porém qdo o player pula encima do inimigo, o inimigo nao morre Sad
Convidad
Convidado

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:51
esse derrotado eu axo que vc pode tirar!
...esse instance_change é para o caso de vc tranformar o inimigo em outro obj (como os clássicos goombas que são "pisoteados")...

...se for só destruir o inimigo sem nenhuma animação nem nada use o instance_destroy() como o gilomania3d disse =]

flw
avatar
Data de inscrição : 11/08/2008
Número de Mensagens : 468
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0

Prêmios
   :
   :
   :
Ver perfil do usuário

Re: [resolvido] Problema, ajudem!

em Ter 18 Nov 2008, 20:57
Mas porque o inimigo não morre? Fiz tudo certim mas não dá nada com ele.
Ver o tópico anteriorVoltar ao TopoVer o tópico seguinte
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum