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

Nenhum

Ver toda a lista


Compartilhe
Ver o tópico anteriorIr em baixoVer o tópico seguinte
avatar
Ranking : Nota A
Notas recebidas : A
Data de inscrição : 19/01/2009
Número de Mensagens : 98
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 7

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

Colisao com uma area retangular inclinada

em Sab 14 Abr 2012, 11:37


O meu problema é o seguinte. Eu devo criar uma area de COLISÃO RETANGULAR INCLINADA entre uma peça e outra.
As peças que estiverem dentro dessa area serão atingidas pelo "tiro".
Eu pensei em criar duas linhas nas extremidades dessa area para demarca-la.
Existe o problema do angulo entre as peças (O calculo dessas linhas devem ser atualizadas (STEP) conforme um dos objetos se move).
Enfim talvez seja uma coisa simples mas não estou conseguindo implementar de jeito nenhum.

Estou usando para desenhar os sprites
Código:

draw_sprite( spr_p1_lvl1, image_index, x, y );
if
!((collision_circle(x, y, 32, obj_ind_dedo, 1, 1) and (global.distanciaaction>=68)) and global.playermode==2)
{  draw_sprite( spr_p1_lvl1, image_index, x, y ); }
else
{  draw_sprite( spr_p1_lvl1_hit, image_index, x, y ); }

E para desenhar a linha:
Código:

draw_line(global.pecax,global.pecay,global.obj_ind_dedox,global.obj_ind_dedoy);

Onde:
global.pecax = X da peça selecionada
global.pecay = Y da peça selecionada
global.obj_ind_dedox = X o obj controlado pelo mouse
global.obj_ind_dedoy = Y o obj controlado pelo mouse
global.distanciaaction = É a distancia do obj controlado pelo mouse
global.playermode==2 = Significa que a peça está em modo de ataque

Bom, mais uma vez, obrigado a todos pela ajuda.
Em breve vou disponibilizar o game para vcs testarem, é um game de tabuleiro bem interessante rsrs
Data de inscrição : 29/01/2011
Número de Mensagens : 800
Insígnias de JAM :

Insignia 1x 0 Insignia 2x 0 Insignia 3x 0
Reputação : 26

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

Re: Colisao com uma area retangular inclinada

em Sab 14 Abr 2012, 12:29

Amigo, eu só não entendi muito bem se a peça tem que estar completa ou parcialmente dentro da área de colisão...

Mas acho que tem duas formas simples: A primeira é você criar um objeto com um sprite quadrado, marcando o pivô no centro do sprite e deixando a opção "precise collision checking" marcada. Depois, no jogo, é só ajustar o ângulo e o tamanho do sprite de acordo com a situação. Quando a peça colidir com esse objeto, ela estará em condição de ser destruída.

O outro jeito é checar se há interseção entre qualquer uma das linhas que formam o polígono da área colisão da peça e da área de colisão do tiro. Nesse caso, esse engine do Pedro pode te ajudar:

http://gmbr.forumeiros.com/t21703-exemplo-interseccao-de-duas-retas

Abraços!
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