Colisão, Ajudem Urgente !

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

Colisão, Ajudem Urgente !

Mensagem por luan.alc em Dom 22 Abr 2012, 16:04

Olá pessoal, tudo bom !? Estou para com mais uma dúvida ! desta vez de colisão, já tem 1dia e meio que estou tentando fazer dar certo, porém não estou conseguindo !!! :S

Eu criei uma room e coloquei vários blocos sólidos(AreiaComGrama, e AreiaSemGrama), fiz para que quando o player estiver em cima do bloco Areia com grama, uma var detectar que esta no bloco com grama, e mudar a spirte dele para (AreiaComGramaMUDOU ) ... e Se estiver no bloco sem grama, mudar sprite para ( AreiaSemGramaMUDOU ) ...


Código do STEP Player.
Código:
if keyboard_check(vk_down) and keyboard_check(ord('X')) // Se (SetaBaixo) e 'X' pressionados
{
quebrando = 'sim' // Ativar var Quebrando

};
else {quebrando = 'nao'
quebrar =  0
};






if quebrando = 'sim' {
quebrar += 1
};







if quebrar >=10{

// Quebrar AreiaCom Grama

OBJID = instance_place(x,y+8,all)

if (OBJID=obj_AreiaG){}{
OBJID.sprite_index=Areia_Quebrada}


quebrar = 0
quebrando='nao'

}

Quando fico no OBJ_AreiaComGrama... ele faz certinho, muda a sprite do objeto AreiaComGrama, para AreiaComGramaMUDOU, mas se eu for para OBJ_AreiaSemGrama, ele muda a sprite para AreiaComGramaMUDOU :S

E outra coisa, quando eu quebro o bloco ( Mudo a Sprite ) o personagem pode passar por cima, e se ele quizer quebrar o bloco de baixo, deveria fazer o mesmo, mas ele não faz nada, a ação e feita como se ele estivesse em cima do bloco já quebrado ?!

Ajudem pf..
Atenciosamente Luan.Alc

luan.alc

Ranking : Nota B
Número de Mensagens : 293
Idade : 20
Data de inscrição : 13/03/2012
Notas recebidas : B
Reputação : 3
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 0
   : 0
   : 1

Voltar ao Topo Ir em baixo

Re: Colisão, Ajudem Urgente !

Mensagem por saim em Seg 23 Abr 2012, 13:00

1 - Apesar de, no final, você ter mudado as varáveis "quebrar" pra zero e "quebrando" pra 'nao', o que impede essas variáveis de voltar à situação anterior no step seguinte?
2 - Na variável OBJID você está armazenando a id de uma instância e tratando ela como um objeto. Não sei se o game maker entende isso sozinho, mas pode ser a causa do seu problema. Experimente usar
Código:
OBJID = instance_place(x,y+8,all); //seu código
if (OBJID != noone){ //se há alguma instância
  OBJID = OBJID . object_index; //pega o objeto a que ela se refere
    }
3 - Você só mostrou o código da parte que funciona. Como posso ver o que há de errado na parte que NÃO funciona?

Não entendi a segunda pergunta. Era pra ele ignorar o bloco quebrado? Talvez você precise mudar o OBJETO (e não apenas a sprite) pra chegar nesse resultado.

saim

Ranking : Nota B
Número de Mensagens : 2964
Idade : 38
Data de inscrição : 14/01/2011
Notas recebidas : C-D-A-B
Reputação : 121
Insignia 1 x 0 Insignia 2 x 0 Insignia 3 x 0
Prêmios
   : 1
   : 0
   : 3

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