SFML - 2 Problemchen...

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • SFML - 2 Problemchen...

    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

    Source Code

    1. (1, 1)


    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. :D
    Ich hoffe ihr könnt mir helfen was Falsch ist.... :(
    Hier der komplette Code:

    Source Code

    1. // SFML statisch linken(Projekteinstellungen->C++->Präprozessor)
    2. #define SFML_STATIC
    3. // Includes
    4. #include <iostream>
    5. #include <SFML/Graphics.hpp>
    6. #include <SFML/Window.hpp>
    7. // Libs dem Projekt hinzufügen(Projekteinstellungen->Linker->Eingabe)
    8. #pragma comment(lib, "sfml-system-s-d.lib")
    9. #pragma comment(lib, "sfml-main-d.lib")
    10. #pragma comment(lib, "sfml-graphics-s-d.lib")
    11. #pragma comment(lib, "sfml-window-s-d.lib")
    12. int main(int argv, char *argc[])
    13. {
    14. // Create the main window
    15. sf::RenderWindow Game(sf::VideoMode(800, 600, 32), "Window");
    16. // Create Event-Handler
    17. sf::Event Event;
    18. // Create a Shape
    19. sf::Shape box = sf::Shape::Rectangle(0, 0, 50, 50, sf::Color(127, 0, 0, 255));
    20. // Set box Position
    21. box.SetPosition(100, 100);
    22. // Create Image Buffer
    23. sf::Image Image;
    24. if(!Image.LoadFromFile("Teeworld.png"))
    25. return EXIT_FAILURE;
    26. // Create Sprite
    27. sf::Sprite Sprite;
    28. //Set Sprite image
    29. Sprite.SetImage(Image);
    30. //Set the Sprite Position
    31. Sprite.SetPosition(100, 120);
    32. //Game Loop
    33. while(Game.IsOpened())
    34. {
    35. //Event Handler-Loop
    36. while(Game.GetEvent(Event))
    37. {
    38. if(Event.Type == sf::Event::Closed)
    39. Game.Close();
    40. }
    41. //Event handeln
    42. //Escape->Close
    43. if(Game.GetInput().IsKeyDown(sf::Key::Escape))
    44. Game.Close();
    45. //Sprite Move
    46. if(Game.GetInput().IsMouseButtonDown(sf::Mouse::Left))
    47. {
    48. //Up->Move Up
    49. if(Game.GetInput().IsKeyDown(sf::Key::Up))
    50. {
    51. Sprite.Move(0, -1);
    52. }
    53. //Left->Move Left
    54. if(Game.GetInput().IsKeyDown(sf::Key::Left))
    55. {
    56. Sprite.Move(-1, 0);
    57. }
    58. //Right->Move Right
    59. if(Game.GetInput().IsKeyDown(sf::Key::Right))
    60. {
    61. Sprite.Move(1, 0);
    62. }
    63. //Down->Move Down
    64. if(Game.GetInput().IsKeyDown(sf::Key::Right))
    65. {
    66. Sprite.Move(0, 1);
    67. }
    68. }
    69. // Box Move
    70. if(Game.GetInput().IsMouseButtonDown(sf::Mouse::Right))
    71. {
    72. //Up->Move Up
    73. if(Game.GetInput().IsKeyDown(sf::Key::Up))
    74. {
    75. box.Move(0, -1.0);
    76. }
    77. //Left->Move Left
    78. if(Game.GetInput().IsKeyDown(sf::Key::Left))
    79. {
    80. box.Move(-1.0, 0);
    81. }
    82. //Right->Move Right
    83. if(Game.GetInput().IsKeyDown(sf::Key::Right))
    84. {
    85. box.Move(1.0, 0);
    86. }
    87. //Down->Move Down
    88. if(Game.GetInput().IsKeyDown(sf::Key::Right))
    89. {
    90. box.Move(0, 1.0);
    91. }
    92. }
    93. //Game Clear
    94. Game.Clear(sf::Color(100, 149, 237));
    95. //Draw the Shape
    96. Game.Draw(box);
    97. //Draw the Sprite
    98. Game.Draw(Sprite);
    99. //Game Show
    100. Game.Display();
    101. }
    102. return EXIT_SUCCESS;
    103. }
    Display All