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

Perguntas? A comunidade te ajuda a resolver.
Avatar do usuário
VICTORPEREIRADOSSANTOS
Novato
Novato
Reações: 0
Mensagens: 4

mascara de sprite estática

Mensagem por VICTORPEREIRADOSSANTOS » Qua Fev 19, 2020 8:54 pm

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

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: mascara de sprite estática

Mensagem por Chuaschinai » Sex Fev 21, 2020 12:28 am

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.

Avatar do usuário
VICTORPEREIRADOSSANTOS
Novato
Novato
Reações: 0
Mensagens: 4

Re: mascara de sprite estática

Mensagem por VICTORPEREIRADOSSANTOS » Sex Fev 21, 2020 3:06 am

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

Avatar do usuário
Chuaschinai
Colaborador
Colaborador
Reações: 5
Mensagens: 198

Re: mascara de sprite estática

Mensagem por Chuaschinai » Sex Fev 21, 2020 12:34 pm

Então você deve criar um sprite separada como eu disse, e definir na mascara do objeto.

Avatar do usuário
NPH
Novato
Novato
Reações: 0
Mensagens: 12
Localização: Bragança Paulista

Contato:

Re: mascara de sprite estática

Mensagem por NPH » Sex Fev 21, 2020 11:01 pm

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/
**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%)

Avatar do usuário
VICTORPEREIRADOSSANTOS
Novato
Novato
Reações: 0
Mensagens: 4

Re: mascara de sprite estática

Mensagem por VICTORPEREIRADOSSANTOS » Seg Mar 02, 2020 8:01 pm

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 :)

Avatar do usuário
VICTORPEREIRADOSSANTOS
Novato
Novato
Reações: 0
Mensagens: 4

Re: mascara de sprite estática

Mensagem por VICTORPEREIRADOSSANTOS » Qua Mar 11, 2020 8:50 pm

NPH 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/
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 xD

Avatar do usuário
NPH
Novato
Novato
Reações: 0
Mensagens: 12
Localização: Bragança Paulista

Contato:

Re: mascara de sprite estática

Mensagem por NPH » Qui Mar 12, 2020 9:44 am

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!
**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%)

Responder

Quem está online

Usuários navegando neste fórum: Google [Bot] e 8 visitantes