Obrigado por visitar a The Game Makers Brasil Use o fórum de Dúvidas para fazer perguntas. Se está em busca de aprender dê uma olhada nos tutoriais. |
Bug de Colisão com jogo tipo TopDown!!! Urgente
- samukamuka12
- Novato
- Reações: 0
- Mensagens: 7
-
Bug de Colisão com jogo tipo TopDown!!! Urgente
Pessoal sou novo no forum, mas tenho uma duvida com o programa game maker studio.
Estou fazendo um jogo TopDown, logo coloco umas paredes pro personagem não passa a room e cair "infinitamente", e ai que vem o problema!
eu coloco um evento de colisão no personagem com o bloco mas ele ultrapassa ele do mesmo jeito, e sim coloquei o bloco como sólido, tbm coloquei no evento de colisão um script de speed e o alor dele era 0 msm assim ele ultrapassa, ja faz mais de um mês que eu não consigo,sim mais de um mes que eu não consigo fazer essa colisão, eu até vi no forum antigo e não achei, por isso é urgente!!!!
Estou fazendo um jogo TopDown, logo coloco umas paredes pro personagem não passa a room e cair "infinitamente", e ai que vem o problema!
eu coloco um evento de colisão no personagem com o bloco mas ele ultrapassa ele do mesmo jeito, e sim coloquei o bloco como sólido, tbm coloquei no evento de colisão um script de speed e o alor dele era 0 msm assim ele ultrapassa, ja faz mais de um mês que eu não consigo,sim mais de um mes que eu não consigo fazer essa colisão, eu até vi no forum antigo e não achei, por isso é urgente!!!!
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
n da pra saber oq pode ser....
mas se vc me mandar seu projeto eu descubro oq pode ser
mas se vc me mandar seu projeto eu descubro oq pode ser
Vlw, Flw !!
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
olha eu n sei resolver seu problema mas posso te dar uma movimentação diferente
no create vc coloca :
e no step:
pra colidir com outro objeto bata marca ele como solid presisa nem colocar colisão
no create vc coloca :
Código: Selecionar todos
xvel = 0; //Velocidade Horizontal
yvel = 0; //Velocidade Vertical
Código: Selecionar todos
var left = keyboard_check(ord("A")); //Se está apertando a tecla esquerda;
var right = keyboard_check(ord("D")); //Se está apertando a tecla direita;
var up = keyboard_check(ord("W")); //Se apertou a tecla cima;
var down = keyboard_check(ord("S")); //Se apertou a tecla cima;
if left //Se apertar esquerda
{
xvel = -2;
}
else if right //Se apertar direita
{
xvel = 2;
}
else{xvel = 0;}
if up
{
yvel = -2;
}
else if down
{
yvel = 2;
}
else //Se não apertar nada
{
yvel = 0;
}
//Colisão Horizontal
repeat(abs(xvel)) //Repete o código o numero de vezes igual a velocidade horizontal;
{
if place_free(x+sign(xvel),y) //Se tiver espaço livre a x-1 ou x+1;
{
x += sign(xvel); //anda 1 pixel pra esquerda ou direita;
}
}
//Colisão Vertical
repeat(abs(yvel)) //Repete o código o numero de vezes igual a velocidade vertical;
{
if place_free(x,y+sign(yvel)) //Se tiver espaço livre a y-1 ou y+1;
{
y += sign(yvel); //anda 1 pixel pra cima ou baixo;
}
else //Se não tiver espaço livre acima ou abaixo;
{
yvel = 0; //Velocidade vertical = 0;
}
}
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
Você quer que o objeto não passe dos limites da room, certo?
A função clamp(val,min,max) retorna a variável desejada dentro dos valores mínimo e máximo que você estipular.
Código: Selecionar todos
x = clamp(x,0,room_width); //Impede que x seja menor que 0 e maior que room_width;
y = clamp(y,0,room_height); //Impede que y seja menor que 0 e maior que room_height;
- samukamuka12
- Novato
- Reações: 0
- Mensagens: 7
-
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
Com posso enviar o meu projeto Adilson?
Led, gostei do codigo e pode ser bem util, porém, eu quero que tipo, como posso explicar.
Assim eu tenho arvores espalhada pela room, e eu quero colocar um bloco invisível na room não só no troco das arvores mas tbm em volta da room toda, assim da uma impressão que algo esta bloqueando ele , mas eu poderia colocar o seu código, sim eu poderia,mas eu preciso colocar colisão num bloco pq assim eu coloco nos troncos da arvore assim eu não passo no tronco e sim nas folhas dele tbm preciso dele caso eu colocar pedras na room.
Sei que vcs não entenderam muito mas existi ferramentas para criar jogos de RPG e la existi um bloco invisível que a função dele é bloquear o player.
Tomara que entederam.!
Led, gostei do codigo e pode ser bem util, porém, eu quero que tipo, como posso explicar.
Assim eu tenho arvores espalhada pela room, e eu quero colocar um bloco invisível na room não só no troco das arvores mas tbm em volta da room toda, assim da uma impressão que algo esta bloqueando ele , mas eu poderia colocar o seu código, sim eu poderia,mas eu preciso colocar colisão num bloco pq assim eu coloco nos troncos da arvore assim eu não passo no tronco e sim nas folhas dele tbm preciso dele caso eu colocar pedras na room.
Sei que vcs não entenderam muito mas existi ferramentas para criar jogos de RPG e la existi um bloco invisível que a função dele é bloquear o player.
Tomara que entederam.!
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
entedi o que vc quer chegar vc pode usar mask_index faça um sprite do tamanho que vc quer que colida bota um nome nele ecoloca ele mask_index= nome do sprite
- samukamuka12
- Novato
- Reações: 0
- Mensagens: 7
-
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
Mais uma coisa onde boto esse mask_índex, é no create?
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
se vc quer mudar o mask_indexde certo obejto durante um certo tempo e no step mas se vc que que aquele mask_index seja pra um so objeto eternamente coloca no create
- samukamuka12
- Novato
- Reações: 0
- Mensagens: 7
-
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
nicoca, eu fiz tudo que esta nesse tópico, mas nunca da eu vo colocar o link do meu projeto aki, tomara que funcione, ah só avisando o meu gm é studio blz!
http://www.mediafire.com/download/6nnpn ... roject.gmx
http://www.mediafire.com/download/6nnpn ... roject.gmx
- samukamuka12
- Novato
- Reações: 0
- Mensagens: 7
-
Re: Bug de Colisão com jogo tipo TopDown!!! Urgente
pessoal eu descobri!!!
era muito facil, olha o codigo que eu vi num video de gm:
era só isso, valeu pessoal pode fecha esse tópico.
falou!
era muito facil, olha o codigo que eu vi num video de gm:
Código: Selecionar todos
key_direita = keyboard_check(ord("D"));
key_esquerda = keyboard_check(ord("A"));
key_baixo = keyboard_check(ord("S"));
key_cima = keyboard_check(ord("W"));
if (key_direita && !place_meeting(x+3,y,obj_piso_invisivel)) {
x += 3;
sprite_index = spr_direita_andando;
image_speed = 0.3;
}
if (key_esquerda && !place_meeting(x-3,y,obj_piso_invisivel)) {
x -= 3;
sprite_index = spr_esquerdo_andando;
image_speed = 0.3;
}
if (key_cima && !place_meeting(x,y-3,obj_piso_invisivel)) {
y -= 3;
sprite_index = spr_tras_andando;
image_speed = 0.3;
}
if (key_baixo && !place_meeting(x,y+3,obj_piso_invisivel)) {
y += 3;
sprite_index = spr_frente_andando;
image_speed = 0.3;
}
falou!
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes