Jump to content

Condição para bala acertar em alvo


Go to solution Solved by HappyHippyHippo,

Recommended Posts

Posted

Estou a desenvolver um jogo em C++, em modo gráfico. Consiste em dois jogadores, um contra o outro em que cada um tem balas. Estou com dificuldades na condição que satisfaça "bala tocou no jogador adversário",  o que tentei, mas logo me apercebi de que não poderia funcionar era: if((pox_X_Bala1 == nave2->Location.X) && (pox_Y_Bala1 == nave2->Location.Y)). Sugestões? Qualquer esclarecimento adicional sobre o código envolvente, digam. Desde já obrigado.

  • Solution
Posted

essa solução tem problemas porque se as posições (x,y) não poderem discretas, a probabilidade de X1 ser igual a x2 e y1 ser igual a y2 é quase zero.

o que se faz é ter um bounding box, algo que diga "dentro desta área, é considerado que acertaste.

esta área pode ser um quadrado/rectângulo ou um círculo, porque dessa forma, é fácil comparar se um ponto se encontra dentro dessa área, ou mesmo determinar a sobreposição de superfícies do mesmo tipo. isto é, a fórmula de determinar a sobreposição de dois rectângulos ou a fórmula de determinar a sobreposição de dois círculos é simples.

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.