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. |
mascara de sprite estática
- VICTORPEREIRADOSSANTOS
- Novato
- Reações: 0
- Mensagens: 4
mascara de sprite estática
seguinte pessoal, estou trabalhando em um jogo de visão isométrica de tiro, e estou com uma dúvida. O obj_player possui uma sprite de imagem isométrica do qual tem seu angulo e direção apontados para onde o mouse está na tela, por esse motivo o sprite do personagem constantemente está agarrando nas paredes. Como solução, eu pensei que se fosse possível fazer com que a mask do obj fosse estática, o obj pararia de se prender as paredes, porém não tenho ideia de como fazer isso. Se alguém puder me ajudar ou até sugerir outra solução ficarei agradecido
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: mascara de sprite estática
Ele agarra nas paredes por conta da mudança de uma sprite para outra com mascara de tamanho diferente, se todas tiverem o mesmo tamanho isso não deve acontecer, ou somente cria uma sprite com um formato determinado, e no objeto selecione a Mask logo a baixo da sprite.
- VICTORPEREIRADOSSANTOS
- Novato
- Reações: 0
- Mensagens: 4
Re: mascara de sprite estática
você não entendeu, o motivo do sprite agarrar, é porque ele gira. Basicamente, ele é um quadrado, porém acaba virando um "losângulo" conforme eu gire o mouse para um ponto da tela. Se fosse possível deixar ele como um quadrado estático, o problema com a colisão não aconteceria (pois eu fiz o teste com o sprite sem ele se mexer e nada aconteceu) então estou procurando maneiras de fazer com que a mascara do personagem seja estatica para esse problema da colisão não voltar a acontecer. Obviamente esse foi o meio que eu pensei, ou seja, tenho 100% de certeza que o meio é outro xD
- Chuaschinai
- Colaborador
- Reações: 6
- Mensagens: 198
-
Re: mascara de sprite estática
Então você deve criar um sprite separada como eu disse, e definir na mascara do objeto.
Re: mascara de sprite estática
caso você esteje utilizando o GML, sugiro não utilizar o "IMAGE_ANGLE", pois essa função também rotaciona A MASK, eu sugiro que use uma variável própria sua tipo "direcao" ou usar o próprio DIRECTION, e desenhe o SPRITE no DRAW EVENT.
Apanhei bastante na época do GM6 tentando fazer joguinhos ISOMÉTRICOS.
Qualquer dúvida tamos aí quando der o/
Apanhei bastante na época do GM6 tentando fazer joguinhos ISOMÉTRICOS.
Qualquer dúvida tamos aí quando der o/
**sim sou o PHProductions** xD
estou disponível apenas a noite depois das 21:30
Pendências:
*Fazer um Jogo novo com o GMS 2 (5%)
estou disponível apenas a noite depois das 21:30
Pendências:
*Fazer um Jogo novo com o GMS 2 (5%)
- VICTORPEREIRADOSSANTOS
- Novato
- Reações: 0
- Mensagens: 4
Re: mascara de sprite estática
Entendi. Era exatamente a resposta que eu esperava. Porém, o problema é que eu não faço ideia de como fazer isso xD
e sim, eu estou usando o image_angle e isso ta fodendo as minhas colisões. Preciso IMEDIATAMENTE resolver isso. Valeu aí pela ajuda meu bom :)
e sim, eu estou usando o image_angle e isso ta fodendo as minhas colisões. Preciso IMEDIATAMENTE resolver isso. Valeu aí pela ajuda meu bom :)
- VICTORPEREIRADOSSANTOS
- Novato
- Reações: 0
- Mensagens: 4
Re: mascara de sprite estática
Então, já faz alguns dias desde a sua resposta e eu acho que sou meio mongol o bastante pra não ter conseguido aplicar no meu jogo. Estou desenhando o sprite pelo "Draw", porém não consigo mais mudar o angulo da imagem. Poderia me dar um exemplo de como ficaria? No caso estou usando o código padrão pra fazer com que o sprite do player fique na direção do mouse, o famoso "image_angle=direction". Estou realmente perdido e se puder me ajudar ficaria agradecido xDNPH escreveu:caso você esteje utilizando o GML, sugiro não utilizar o "IMAGE_ANGLE", pois essa função também rotaciona A MASK, eu sugiro que use uma variável própria sua tipo "direcao" ou usar o próprio DIRECTION, e desenhe o SPRITE no DRAW EVENT.
Apanhei bastante na época do GM6 tentando fazer joguinhos ISOMÉTRICOS.
Qualquer dúvida tamos aí quando der o/
Re: mascara de sprite estática
opa victor, blz! eu não respondi antes porque eu arrumei um emprego novo, não to tendo tempo de mexer no meu pc, só nos dias de folga (segundas-feiras) que ligo, mas enfim, você pode fazer no draw:
draw_sprite_ext(sprite_index,image_index,x,y,1,1,direction,-1,1);
onde:
sprite_index irá pegar a sprite atual;
image_index irá pegar a "sub imagem" doi sprite atual
as posições x e y logo em seguida
o 1,1 antes do direction é o xscale e o yscale do sprite
direction vai rotacionar apenas o sprite pelo draw e não pelo objeto, assim não rotacionando a mask
-1 deixe assim mesmo
e o último é o alpha, menor que 1 ele vai começar a ficar transparente.
daí no código que fica no step event (eu suponho que vc esteja usando no step :P) que faz ele apontar pro mouse é só usar:
direction=point_direction(x,y,mouse_x,mouse_y);
e pimba! não irá mais rotacionar a máscara junto com o sprite.
Flws e me perdoe por não ter respondido antes, é por causa do novo emprego!
draw_sprite_ext(sprite_index,image_index,x,y,1,1,direction,-1,1);
onde:
sprite_index irá pegar a sprite atual;
image_index irá pegar a "sub imagem" doi sprite atual
as posições x e y logo em seguida
o 1,1 antes do direction é o xscale e o yscale do sprite
direction vai rotacionar apenas o sprite pelo draw e não pelo objeto, assim não rotacionando a mask
-1 deixe assim mesmo
e o último é o alpha, menor que 1 ele vai começar a ficar transparente.
daí no código que fica no step event (eu suponho que vc esteja usando no step :P) que faz ele apontar pro mouse é só usar:
direction=point_direction(x,y,mouse_x,mouse_y);
e pimba! não irá mais rotacionar a máscara junto com o sprite.
Flws e me perdoe por não ter respondido antes, é por causa do novo emprego!
**sim sou o PHProductions** xD
estou disponível apenas a noite depois das 21:30
Pendências:
*Fazer um Jogo novo com o GMS 2 (5%)
estou disponível apenas a noite depois das 21:30
Pendências:
*Fazer um Jogo novo com o GMS 2 (5%)
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 0 visitante