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

Abe

Frischling

  • »Abe« ist der Autor dieses Themas
  • Private Nachricht senden

1

21.04.2019, 14:29

SFML Pointer & Zeiger

Hey Leute,

Ich hab da ein kleines Problem

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
#include <SFML/Graphics.hpp>
#include<SFML/Window.hpp>
#include<SFML/System.hpp>
#include<iostream>
using namespace sf;
using namespace std;
Texture* Background;
Sprite*bg;


int main()
{
if (!Background->loadFromFile("rec/BG1.png"))

            return EXIT_FAILURE;
    bg->setTexture(*Background);
    bg->scale(200,200);
    bg->setPosition(0,0);
    bg->setColor(Color::White);

    RenderWindow* window;
    window->setSize(Vector2u(800,600));
    window->setTitle("SFML");

        window->setVerticalSyncEnabled(1);

    while (window->isOpen())
    {

        Event event;
        while (window->pollEvent(event))
        {
            if( (event.type == Event::Closed) || event.key.code == Keyboard::Escape)
                window->close();
        }
        window->draw(*bg);
        window->clear();
        window->display();
    }


    return 0;
}


Quellcode

1
2
3
main.cpp: In function ‘int main()’:
main.cpp:22:20: warning: ‘window’ may be used uninitialized in this function [-Wmaybe-uninitialized]
     window->setSize(Vector2u(800,600));


Nun weiß ich machen soll.
über hilfe und Verbesserungsvorschläge würde ich mich freuen.
Danke schonmal

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

2

21.04.2019, 14:32

Eben genau das, was der Compiler dir sagt: du initialisierst die Variable window nicht. Da fehlt ein = new RenderWindow(...).

Abe

Frischling

  • »Abe« ist der Autor dieses Themas
  • Private Nachricht senden

3

21.04.2019, 15:14

Danke ich werd's mal so versuchen.

Abe

Frischling

  • »Abe« ist der Autor dieses Themas
  • Private Nachricht senden

4

21.04.2019, 17:52

Gut also es hat funktioniert nur kam darauf hin das nächste Problem hab dann versucht erstmal die Headers einzeln einzu binden was auch nicht half
main.cpp:15: Nicht definierter Verweis auf `sf::Texture::loadFromFile(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, sf::Rect<int> const&)' Das halt noch kommt halt bei jeder classe mit der ich die funktion aufrufen.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

21.04.2019, 18:20

Hast du die .lib-Dateien von SFML gelinkt?

Abe

Frischling

  • »Abe« ist der Autor dieses Themas
  • Private Nachricht senden

6

21.04.2019, 18:41

ja
g++ main.o -o -lsfml-graphics -lsfml-window -lsfml-system

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

7

21.04.2019, 19:20

Ist das GCC unter Linux oder unter Windows?
Woher hast du die Binaries von SFML? Selbst kompiliert? Paketverwaltung? Website?

Abe

Frischling

  • »Abe« ist der Autor dieses Themas
  • Private Nachricht senden

8

21.04.2019, 19:35

Ubuntu 16.04
SFML mit Terminal sudo apt-get install

kompiliert mit g++ halt denk ich bin noch nicht sehr weit wollte halt Programmieren mit C++ lernen und dann halt han Praktischen teil da ich nicht so kreative bin. Daher auch kein Unity geht mehr um Syntax kompiler etc. als um das spiel. :'D

9

22.04.2019, 01:39

g++ main.o -o -lsfml-graphics -lsfml-window -lsfml-system

Das steht so nicht in der Doku, da fehlt was:
g++ main.o -o <result file?> -lsfml-graphics -lsfml-window -lsfml-system
"Theory is when you know something, but it doesn’t work. Practice is when something works, but you don’t know why. Programmers combine theory and practice: Nothing works and they don’t know why." - Anon

Nimelrian

Alter Hase

Beiträge: 1 216

Beruf: Softwareentwickler (aktuell Web/Node); Freiberuflicher Google Proxy

  • Private Nachricht senden

10

22.04.2019, 02:22

wollte halt Programmieren mit C++ lernen und dann halt han Praktischen teil

Generell würde ich dazu raten, die Sprache (in ihrer heutigen, modernen Version) erst einmal mit einfacheren Programmen zu lernen. In deinem Snippet oben sehe ich direkt ein paar Dinge, die in modernem C++ nicht mehr wirklich was zu tun haben (z.B. verwendet man new praktisch gar nicht mehr).
Ich bin kein UserSideGoogleProxy. Und nein, dieses Forum ist kein UserSideGoogleProxyAbstractFactorySingleton.

Werbeanzeige