quinta-feira, 4 de fevereiro de 2021

C++ builder - detectando colisão entre duas esferas

 


Uma dos recursos mais importantes em jogos, 
é um bloco detector de colisão.
Detectar colisão é fundamental para que outras funções
ou comandos possam ser executados.
Neste exemplo estamos detectando colisão das bordas da janela, 
e entre duas esferas.
 Acompanhem no vídeo e veja como isto funciona .




//---------------------------------------------------------------------------
void __fastcall TForm1::Informe ( TObject *Sender ) {
Canvas -> Font -> Size = 12;
Canvas -> Font -> Name = "Garamond";
Canvas -> Font -> Color = clBlack;
Canvas -> TextOut ( 200, 245, "Por: " );
Canvas -> Font -> Color = clRed;
Canvas -> TextOut ( 240, 245, "Samuel Lima" );
Canvas -> Font -> Color = clBlack;
Canvas -> TextOut ( 200, 260, "sa_sp10@hotmail.com" );
Canvas -> Font -> Name = "Garamond";
}
//---------------------------------------------------------------------------
void __fastcall TForm1::OnPaint ( TObject *Sender ) {
Canvas -> Font -> Size = 16;
Canvas -> Font -> Name = "Arial";
//Alterando o estilo da fonte para Bold e Itálico
Canvas -> Font-> Style = TFontStyles ( ) << fsBold << fsItalic;
//Ajustando a largura das bordas do RoundRect Em torno do form ( Moldura )
Canvas -> Pen -> Width = 10;
//Colorindo as bordas do roundrect ( Moldura ) com rgb
Canvas -> Pen -> Color = static_cast < TColor > ( RGB ( 255, 0, 255 ) );
Canvas -> RoundRect ( 05, 05, 595, 295, 25, 25 );
Canvas -> Font -> Color = clRed;
Canvas -> TextOut ( 50, 12, "DETECTANDO COLISÃO ENTRE DUAS ESFERAS" );
Informe ( Sender );
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormShow ( TObject *Sender ) {
if ( a ==  false ) {
  Shape1 -> Picture -> LoadFromFile ("Bal_blue_claro_3.bmp");
  Shape1 -> Height = 65;
  Shape1 -> Width = 65;

  Shape2 -> Picture -> LoadFromFile ("Bal_pink_2.bmp");
  Shape2 -> Height = 65;
  Shape2 -> Width = 65;
   }
}
//---------------------------------------------------------------------------


Nenhum comentário:

Postar um comentário

Observação: somente um membro deste blog pode postar um comentário.