Ich habe in letzter Zeit an einem einfachen Spiel mit C++ und SFML neueste Version gearbeitet, aber ich hatte ein Problem, dass die Kollisionserkennung nicht so gut ist, zum Beispiel der Spieler stirbt, auch wenn der Feind ihn noch nicht berührt hat , aber nur in seiner Nähe. Hier ist der Code des Spielers Klasse mit der Move-Funktion und Kollisionserkennung Code und die Bewegungen des Feindes Klasse:Die Kollision in SFML ist nicht so gut, wie man es verbessert?
`Klasse SpielerA: public CircleShape { public:
//Constructor:
PlayerA(float xposition, float yposition, float radius, float s)
{
setRadius(radius);
setFillColor(Color::Yellow);
setOutlineColor(Color(00,80,00));
setOutlineThickness(-2);
setPointCount(3);
setSpeed(s);
setPosition(xposition,yposition);
}
//Movements of the player:
void up()
{
move(0,-10*speed);
}
void down()
{
move(0,10*speed);
}
void right()
{
move(10*speed,0);
}
void left()
{
move(-10*speed,0);
}
void checkA(ObsA *obs1=NULL,ObsA *obs2=NULL, ObsA *obs3=NULL, ObsA *obs4=NULL, ObsA *obs5=NULL)
{
if(obs2==NULL)
{
if(getGlobalBounds().intersects(obs1->getGlobalBounds()))
{
relevel();
}
}
private:
float speed=0.00;
void obs()
{
if(speed > 0)
{
rotate(0.5*speed);
}
else
{
rotate(0.5*speed);
}
}
private:
float speed = 0.00;
void obs()
{
if(speed > 0)
{
rotate(0.5*speed);
}
else
{
rotate(0.5*speed);
}
}
private:
float speed = 0.00;
Ist etwas nicht in Ordnung mit dem Code, wie das Problem zu beheben, danke!
Mögliche Duplikat [SFML Bounding Box Collision Detection] (http://stackoverflow.com/questions/27280264/sfml-Bounding-Box-Kollisionserkennung) – Conduit