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

Co2Killer

Frischling

  • »Co2Killer« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Hamburg

Beruf: Schüler

  • Private Nachricht senden

1

01.09.2010, 18:43

SFML: Probleme mit JPGs

Hi
Ich lerne gerade wie das alles mit der SFML läuft und heute wollte ich versuchen
ein Fenster zu machen und darin ein Bild zu zeigen und dazu noch sounds,
dass ganze wollte ich dann Langsam erweitern.Ich will halt erst mal alle bzw. einige
Funktionen der SFML kennen lernen. :whistling:

Nun habe ich den Code für ein einfaches Fenster geschrieben und dann noch den für ein
Bild und es gibt keine fehler meldung er startet das programm und macht fast das was er soll
anstat eines bildes sehe ich (meistens) nur schwarz und in dem Konsolen fenster steht
das er das bild nciht laden kann und das sehr oft, er findet das Bild zwar aber er kann es nicht Laden,
und manchmal ist der Hintergrund nicht schwarz sondern rot oder grün das eine mal sogar lila. ;(

Deshalb wollte ich mal fragen ob jemand weiss warum das nicht geht bzw. ob die SFML
JPGs überhaupt erkennt den ich habe noch nie einen Code mit JPGs gesehen nur mit
bmps und tgas usw. ?(

Oberon

Treue Seele

Beiträge: 181

Wohnort: Österreich

Beruf: Student

  • Private Nachricht senden

2

01.09.2010, 19:16

SFML hat, soweit es mir bekannt ist keine Probleme mit .jpgs.
Der bunte Hintergrund kommt wahrscheinlich davon, dass du in das Fenster noch nichts gezeichnet hast und auch nicht Clear aufgerufen hast. Wenn du jetzt Display aufrufst können alle möglichen Sachen darin sein, wie bei nicht initalisierten Variablen.
Aber ohne Code kann man nur raten...

Architekt

Community-Fossil

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

01.09.2010, 20:21

Code wäre schon hilfreich und die genaue Fehlermeldung.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Co2Killer

Frischling

  • »Co2Killer« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Hamburg

Beruf: Schüler

  • Private Nachricht senden

4

01.09.2010, 20:43

Ok sry das ich vergessen hatte noch mal den code zu zeigen aber ich hatte es eilig ^^
also hier ist er :

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
#include <iostream>
#include <SFML/Graphics.hpp>
#include <SFML/Window.hpp>
    int main() 
    {
    // Haupt-Renderfenster erstellen.
    sf::RenderWindow  App( sf::VideoMode( 800, 600, 32 ), "SFML-Graphics" );
      // Gameloop starten.
    while( App.IsOpened() ) 
    {
        // Events abarbeiten.
        sf::Event  event;
        // Bild
        sf::Image test1;
        sf::Sprite test2;
        test1.LoadFromFile("images\odst.jpg");
        test2.SetImage(test1);
        while( App.GetEvent(event) )
        {
        // Fenster schließen.
            if (event.Type == sf::Event::Closed) 
            {
             App.Close();
            }
    }
        //Gameloop Ende
        // Bildschirm löschen.
        App.Clear();
        // Bild zeichen
        App.Draw(test2);
        // Fensterinhalte auf dem Bildschirm darstellen.
        App.Display();
    }
        return 0;
      }


Die sachen mit sf::Image usw. hatte ich aus einem anderen code.Ich bin mir auch nicht so gannz sicher ob das in Zeile 16 richtig ist den ich habe verschiedene varianten davon gesehen einmal mit ("images//odst.jgp") und auch mit \\ und / und halt mit \ und ich bin mir nciht sicher was richtig ist ( wobei da erste jawohl falsch sein muss oder ?( )

5

01.09.2010, 21:42

Vlt. liegts daran:

Zitat

test1.LoadFromFile("images\odst.jpg");

mach daraus mal "test1.LoadFromFile("images\\odst.jpg");"
Hilft das?

Co2Killer

Frischling

  • »Co2Killer« ist der Autor dieses Themas

Beiträge: 15

Wohnort: Hamburg

Beruf: Schüler

  • Private Nachricht senden

6

01.09.2010, 21:50

nicht wirklich das hatte ich schon ausprobiert

in der Konsole steht halt immer das das bild nciht geöffnet werden kann -.-
ich habe mal ein bild davon gemacht vllt hilft das weiter
»Co2Killer« hat folgendes Bild angehängt:
  • sfml-bug.PNG

7

01.09.2010, 21:54

Du hast dein Image Verzeichnis auch im Debug-Ordner?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

01.09.2010, 21:54

Es is übrigens nich so geil das Bild bei jedem Schleifendurchlauf neu zu laden (daher auch die vielen Nachrichten in der Konsole). Einmal laden zu beginn und gut is... Ansonsten: Prüf mal den Pfad zu deiner Datei und falls sie im richtigen Ordner liegt, prüf die Rechte auf die Datei.
@D13_Dreinig

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

9

01.09.2010, 21:57

standardmäßig wirds im projektordner ausgeführt...(jedenfalls in visual studio)
sollte der images-ordner im projektordner liegen. zum testen kannst du die exe auch ausserhalb der ide ausführen.
wenn vs2010 verwendest und die sfml version von vs2008 nicht neu kompiliert hast könnts auch daran liegen.(anleitung)
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

01.09.2010, 22:01

Das working directory lässt sich natürlich auch beliebig umändern.
@D13_Dreinig

Werbeanzeige

Ähnliche Themen