Hay!
Ich lerne momentan die SFML und da habe ich jetzt erstmal ein Fenster erstellt, darin eine Box und einen Sprite drauf gezeichnet.
Nun habe ich aber 2 Probleme beim bewegen der Dinger.
Auf gedrückt halten der linken Maustaste wird der Sprite bewegt, beim gedrückt halten der rechten Maustaste die Box.
Das ganze ist auf die Pfeiltasten bewegt, ich habe Vektoren und da auch eigentlich alles korrekt eingetragen, aber wenn ich dann nach unten drücke bewegt sich das jeweilige Objekt gar nicht.
Drücke ich nach Rechts, "läuft" es zwar nach Rechts, aber nach Rechts unten. Also der eigentliche Vektor
Das ist aber überhaupt nicht so angegeben. Ich habe zu den Include- und Lib-Verzeichnis korrekt gelinkt und die Dateien im Code eingetragen, anders spukt MVC lustige Fehler aus.
Ich hoffe ihr könnt mir helfen was Falsch ist....
Hier der komplette Code:
Alles anzeigen
Ich lerne momentan die SFML und da habe ich jetzt erstmal ein Fenster erstellt, darin eine Box und einen Sprite drauf gezeichnet.
Nun habe ich aber 2 Probleme beim bewegen der Dinger.
Auf gedrückt halten der linken Maustaste wird der Sprite bewegt, beim gedrückt halten der rechten Maustaste die Box.
Das ganze ist auf die Pfeiltasten bewegt, ich habe Vektoren und da auch eigentlich alles korrekt eingetragen, aber wenn ich dann nach unten drücke bewegt sich das jeweilige Objekt gar nicht.
Drücke ich nach Rechts, "läuft" es zwar nach Rechts, aber nach Rechts unten. Also der eigentliche Vektor
Das ist aber überhaupt nicht so angegeben. Ich habe zu den Include- und Lib-Verzeichnis korrekt gelinkt und die Dateien im Code eingetragen, anders spukt MVC lustige Fehler aus.

Ich hoffe ihr könnt mir helfen was Falsch ist....

Hier der komplette Code:
Quellcode
- // SFML statisch linken(Projekteinstellungen->C++->Präprozessor)
- #define SFML_STATIC
- // Includes
- #include <iostream>
- #include <SFML/Graphics.hpp>
- #include <SFML/Window.hpp>
- // Libs dem Projekt hinzufügen(Projekteinstellungen->Linker->Eingabe)
- #pragma comment(lib, "sfml-system-s-d.lib")
- #pragma comment(lib, "sfml-main-d.lib")
- #pragma comment(lib, "sfml-graphics-s-d.lib")
- #pragma comment(lib, "sfml-window-s-d.lib")
- int main(int argv, char *argc[])
- {
- // Create the main window
- sf::RenderWindow Game(sf::VideoMode(800, 600, 32), "Window");
- // Create Event-Handler
- sf::Event Event;
- // Create a Shape
- sf::Shape box = sf::Shape::Rectangle(0, 0, 50, 50, sf::Color(127, 0, 0, 255));
- // Set box Position
- box.SetPosition(100, 100);
- // Create Image Buffer
- sf::Image Image;
- if(!Image.LoadFromFile("Teeworld.png"))
- return EXIT_FAILURE;
- // Create Sprite
- sf::Sprite Sprite;
- //Set Sprite image
- Sprite.SetImage(Image);
- //Set the Sprite Position
- Sprite.SetPosition(100, 120);
- //Game Loop
- while(Game.IsOpened())
- {
- //Event Handler-Loop
- while(Game.GetEvent(Event))
- {
- if(Event.Type == sf::Event::Closed)
- Game.Close();
- }
- //Event handeln
- //Escape->Close
- if(Game.GetInput().IsKeyDown(sf::Key::Escape))
- Game.Close();
- //Sprite Move
- if(Game.GetInput().IsMouseButtonDown(sf::Mouse::Left))
- {
- //Up->Move Up
- if(Game.GetInput().IsKeyDown(sf::Key::Up))
- {
- Sprite.Move(0, -1);
- }
- //Left->Move Left
- if(Game.GetInput().IsKeyDown(sf::Key::Left))
- {
- Sprite.Move(-1, 0);
- }
- //Right->Move Right
- if(Game.GetInput().IsKeyDown(sf::Key::Right))
- {
- Sprite.Move(1, 0);
- }
- //Down->Move Down
- if(Game.GetInput().IsKeyDown(sf::Key::Right))
- {
- Sprite.Move(0, 1);
- }
- }
- // Box Move
- if(Game.GetInput().IsMouseButtonDown(sf::Mouse::Right))
- {
- //Up->Move Up
- if(Game.GetInput().IsKeyDown(sf::Key::Up))
- {
- box.Move(0, -1.0);
- }
- //Left->Move Left
- if(Game.GetInput().IsKeyDown(sf::Key::Left))
- {
- box.Move(-1.0, 0);
- }
- //Right->Move Right
- if(Game.GetInput().IsKeyDown(sf::Key::Right))
- {
- box.Move(1.0, 0);
- }
- //Down->Move Down
- if(Game.GetInput().IsKeyDown(sf::Key::Right))
- {
- box.Move(0, 1.0);
- }
- }
- //Game Clear
- Game.Clear(sf::Color(100, 149, 237));
- //Draw the Shape
- Game.Draw(box);
- //Draw the Sprite
- Game.Draw(Sprite);
- //Game Show
- Game.Display();
- }
- return EXIT_SUCCESS;
- }