Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

steffen1997

Treue Seele

  • »steffen1997« ist der Autor dieses Themas

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

1

06.11.2011, 17:52

SFML Sprites laden nicht und kein seperates Fenster

Also erstmal hallo,
ich habe folgendes Problem ich wollte mal ein bisschen mit der SFML rumprobieren,also habe ich als erstes die Dokumentation angekuckt und über Sprites,als es nicht funktionierte nach über 2Stunden habe ich mir die Tutorials auf der Seite angekuckt und folgenden Quellcode benutzt und sprite.tga in snake.png umbenant und das Bild in ziemlich jeden Ordner im Projekt ordner reinkopiert hier nohc mal der Quellcode:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>



int main()
{
    // Create the main rendering window
    sf::RenderWindow App(sf::VideoMode(800, 600, 32), "SFML Graphics");

    // Load the sprite image from a file
    sf::Image Image;
    if (!Image.LoadFromFile("snake.png"))
        return EXIT_FAILURE;

    // Create the sprite
    sf::Sprite Sprite(Image);

    // Change its properties
    Sprite.SetColor(sf::Color(0, 255, 255, 128));
    Sprite.SetPosition(200.f, 100.f);
    Sprite.SetScale(2.f, 2.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))  Sprite.Move(-100 * ElapsedTime, 0);
        if (App.GetInput().IsKeyDown(sf::Key::Right)) Sprite.Move( 100 * ElapsedTime, 0);
        if (App.GetInput().IsKeyDown(sf::Key::Up))  Sprite.Move(0, -100 * ElapsedTime);
        if (App.GetInput().IsKeyDown(sf::Key::Down))  Sprite.Move(0,  100 * ElapsedTime);

        // Rotate the sprite
        if (App.GetInput().IsKeyDown(sf::Key::Add))     Sprite.Rotate(- 100 * ElapsedTime);
        if (App.GetInput().IsKeyDown(sf::Key::Subtract)) Sprite.Rotate(+ 100 * ElapsedTime);

        // Clear screen
        App.Clear();

        // Display sprite in our window
        App.Draw(Sprite);

        // Display window contents on screen
        App.Display();
    }

    return EXIT_SUCCESS;
}
also das Probelm ist wenn ich starte,also Debugge oder Release kommt kein Bild nur die Konsole und zwar leer.Ist es schlimm das ich vorher ein leeres PRojekt erstellt habe oder wieso geht es nicht?Eigentlich sollte doch ein neues Fenster damit geöffnet werden.

2

06.11.2011, 20:24

Der Code funktioniert soweit. Tatsächlich schlägt wahrscheinlich die Methode LoadFromFile("snake.png") fehl. Also liegt es entweder daran, dass sie nicht im richtigen Ordner liegt oder, dass sie nicht "snake.png" heißt. Wenn du von Visual Studio startest reicht es, wenn die Datei im Projektordner liegt. Natürlich kann es sein, dass deine Datei eigentlich "snake.png.png" heißt, wobei die eigentliche Dateiendung nicht angezeigt wird und nur "snake.png" dasteht. Dann einfach, dass ".png" aus dem Namen entfernen.
Nebenbei wären ein paar Satzzeichen und Zeilenumbrüche in deinem Beitrag ganz nett ;)

MfG

steffen1997

Treue Seele

  • »steffen1997« ist der Autor dieses Themas

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

3

06.11.2011, 20:32

ich habe es mit nur snake probiert hat auch nicht funktioniert.Ich lad das Bild mal hoch ,vielleicht liegt es daran.Ich habe auch mit .jpg probiert ,also neu
gespeichert und im Quellcode .jpg eingegebn und normal Snake hat wieder nicht funktioniert.

EDIT:Hab gemerkt dass das Bild grösser als das Fenster ist 864gross und 800 das Fesnter habs auf 100*100 geändert geht leider immer noch nicht. :(
»steffen1997« hat folgendes Bild angehängt:
  • snake.jpg

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »steffen1997« (06.11.2011, 20:39)


4

06.11.2011, 20:38

Ich weiß nicht ob es daran liegen kann, aber dein Bild ist größer als dein Fenster. Verkleiner das mal

steffen1997

Treue Seele

  • »steffen1997« ist der Autor dieses Themas

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

5

06.11.2011, 20:42

funzt immer noch nicht.
»steffen1997« hat folgendes Bild angehängt:
  • snake.png

6

06.11.2011, 20:45

Funktioniert es denn, wenn du dich auf das Anzeigen des Fensters beschränkst und das Laden, Zeichnen und Bewegen des Bildes weglässt? Öffnet sich bei dir wirklich nur die Konsole oder sieht man ganz kurz ein weißes Fenster?

steffen1997

Treue Seele

  • »steffen1997« ist der Autor dieses Themas

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

7

06.11.2011, 20:46

man sieht nur die Konsole mehr nicht.

8

06.11.2011, 20:56

Am Code kann es nicht liegen, der funktioniert bei mir. Hast du es mal gedebuggt?

steffen1997

Treue Seele

  • »steffen1997« ist der Autor dieses Themas

Beiträge: 200

Beruf: Schüler

  • Private Nachricht senden

9

06.11.2011, 21:02

es kommen keine Fehler ,meinst du das mit debuggen?also keine fehler dabei
ein anderes beispiel mit einem unter in der konsole ging

Werwofl

Treue Seele

Beiträge: 100

Beruf: Fachinformatiker für Anwendungsentwicklung

  • Private Nachricht senden

10

06.11.2011, 21:02

Ist auf deinem Bildschirm eine Auflösung von 800x600 möglich?

Werbeanzeige

Ähnliche Themen