TheRing72 Posted November 16, 2016 at 12:05 AM Report #600549 Posted November 16, 2016 at 12:05 AM 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 HappyHippyHippo Posted November 16, 2016 at 07:21 AM Solution Report #600552 Posted November 16, 2016 at 07:21 AM 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 Portugol Plus
TheRing72 Posted November 16, 2016 at 02:17 PM Author Report #600561 Posted November 16, 2016 at 02:17 PM ok, obrigado pelo esclarecimento! Cumprimentos.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now