Hi!
It's my first post here, so I want to thank to LaurentGomila for creating such great lib!
Here is my code, not very complex and please don't blame for it. I have small C++ experience:
Mouse class:
#pragma once
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
using namespace sf;
// class for maitain mouse
class mysz
{
public:
mysz(void);
Vector2i pozycjaMyszy; // variable for mouse coordinates
Vector2i pobierzPozycjeMyszy(); // method for getting them
Vector2f pozycjaFloat; // same as pozycjaMyszy but in float(for moving sprite)
void ustawPozycje(); // later iplemented
float poprzedniaPozycjaX;
float poprzedniaPozycjaY;
~mysz(void);
};
And their implementation:
#include "mysz.h"
mysz::mysz(void)
{
}
Vector2i mysz::pobierzPozycjeMyszy()
{
pozycjaMyszy = Mouse::getPosition();
pozycjaFloat = static_cast<Vector2f>(pozycjaMyszy); //changing from Vector2i to Vector2f
poprzedniaPozycjaX = pozycjaFloat.x;
poprzedniaPozycjaY = pozycjaFloat.y;
return pozycjaMyszy;
}
mysz::~mysz(void)
{
}
Image class:
//maitain images
#pragma once
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
using namespace sf;
class obrazek
{
public:
obrazek(void);
void stworz();
void nadajKolor();
void zmienPozycje(float x, float y); //for setting position of image
void ustawPozycje(float x, float y);
int zaladuj();
~obrazek(void);
Texture teksturaObrazka;
Sprite duchObrazek;
};
And implementation:
#include "obrazek.h"
obrazek::obrazek(void)
{
}
void obrazek::stworz()
{
}
void obrazek::nadajKolor()
{
}
void obrazek::zmienPozycje(float x, float y)
{
duchObrazek.setPosition(x,y);
}
int obrazek::zaladuj()
{
if(!teksturaObrazka.loadFromFile("01.png"))
{
return EXIT_FAILURE;
}else
{
duchObrazek.setTexture(teksturaObrazka);
duchObrazek.setOrigin(400,300);
return EXIT_SUCCESS;
}
}
void obrazek::ustawPozycje(float x, float y)
{
duchObrazek.setPosition(x,y);
}
obrazek::~obrazek(void)
{
}
Main:
#include <SFML/Graphics.hpp>
#include <SFML/System.hpp>
#include "obrazek.h"
#include "mysz.h"
using namespace sf;
int main()
{
RenderWindow oknoGry(VideoMode(1024, 768), "Okno Glowne", Style::Close);
while(oknoGry.isOpen())
{
obrazek obrazekJeden;
mysz myszGry;
myszGry.pobierzPozycjeMyszy();
obrazekJeden.zaladuj();
Event Zdarzenia;
while(oknoGry.pollEvent(Zdarzenia))
{
if(Zdarzenia.type == Event::Closed)
{
oknoGry.close();
return 0;
}
if(Keyboard::isKeyPressed(Keyboard::P))
{
obrazekJeden.zmienPozycje(myszGry.pozycjaFloat.x, myszGry.pozycjaFloat.y);
}
}
oknoGry.clear();
oknoGry.draw(obrazekJeden.duchObrazek);
oknoGry.display();
}
return 0;
}
My issuse is following: after releasing "P" key my sprite is returning to left upper corner. I was tryin to fix that but, it doesn't worked.