I am trying to test collision detection from SFML sources but it doesnt work.
When they colliding, it doesnt write the message but it had to.
I edited collision.h, so I move Collision(); from the private to public because it doesnt work before.
Where did I do a mistake please?
Here is my source
#include <SFML/Window.hpp>
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include "Collision.h"
int main()
{
// Create the main rendering window
sf::RenderWindow App(sf::VideoMode(800, 600, 32), "Collision Detection Test");
Collision o;
sf::String Text;
Text.SetText("they are colliding");
Text.SetFont(sf::Font::GetDefaultFont());
Text.SetPosition(0.f,0.f);
// Load the sprite image from a file
sf::Image Image;
Image.LoadFromFile("A.png");
sf::Image Image2;
Image2.LoadFromFile("B.png");
Image.SetSmooth(false);
Image2.SetSmooth(false);
// Create the sprite
sf::Sprite A(Image);
sf::Sprite B(Image2);
// Change its properties
A.SetPosition(200.f, 100.f);
B.SetPosition(100.f,200.f);
// Start game loop
while (App.IsOpened())
{
// Process events
sf::Event Event;
while (App.GetEvent(Event))
{
// Close window : exit
if (Event.Type == sf::Event::Closed)
App.Close();
}
// Get elapsed time
float ElapsedTime = App.GetFrameTime();
// Move the sprite
if (App.GetInput().IsKeyDown(sf::Key::Left)) A.Move(-100 * ElapsedTime, 0);
if (App.GetInput().IsKeyDown(sf::Key::Right)) A.Move( 100 * ElapsedTime, 0);
if (App.GetInput().IsKeyDown(sf::Key::Up)) A.Move(0, -100 * ElapsedTime);
if (App.GetInput().IsKeyDown(sf::Key::Down)) A.Move(0, 100 * ElapsedTime);
// Rotate the sprite
if (App.GetInput().IsKeyDown(sf::Key::Add)) A.Rotate(- 100 * ElapsedTime);
if (App.GetInput().IsKeyDown(sf::Key::Subtract)) A.Rotate(+ 100 * ElapsedTime);
// Clear screen
App.Clear();
// Display sprite in our window
App.Draw(A);
App.Draw(B);
if(o.BoundingBoxTest(A,B)==true)
App.Draw(Text);
// Display window contents on screen
App.Display();
}
return EXIT_SUCCESS;
}
:roll: