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

1

20.08.2010, 12:44

Error C3861: "SetAll": Bezeichner wurde nicht gefunden.

Hi,
Mein Compiler spuckt mir wie gesagt folgenden Fehler aus:

Zitat

1>c:\users\mike\documents\visual studio 2008\projects\proj\proj\main.cpp(21) : error C3861: "SetAll": Bezeichner wurde nicht gefunden.
1>c:\users\mike\documents\visual studio 2008\projects\proj\proj\main.cpp(2) : error C3861: "SetAll": Bezeichner wurde nicht gefunden.

Ich habe aber keine Ahnung, wie ich das Lösen kann und probiere es schon seid ca. ner halben Stunde. Habe auch schon im Forum nach "C3861" gesucht und in Google zwar kam eine MSDN Seite , aber das hat mir nicht gerade weitergeholfen.

Hier mein Code:

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
61
62
63
64
65
66
67
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include "Pong.h"

 int main()
 {
    sf::RenderWindow App(sf::VideoMode(640, 480), "SFML window");
     Pong Game;
     // Die Bilder
     sf::Image B;
     sf::Image Schläger;
     // Bilder Laden
     bool i = B.LoadFromFile("Ball.jpg");
     bool i2 = Schläger.LoadFromFile("Schläger.jpg");
     if(i != true && i2 != true) {return EXIT_FAILURE;};
     // Die Sprites
     sf::Sprite Ball(B);
     sf::Sprite Schläger1(Schläger);
     sf::Sprite Schläger2(Schläger);
     // Positionen Setzen
     SetAll(Ball, Schläger1, Schläger2, Game);
     // Die Schleife läuft so lange wie das Fenster geöffnet ist
    while (App.IsOpened())
    {
         // Ball bewegen, Positionen Updaten usw.
         Game.Update();
         // Positionen Setzen
         SetAll(Ball, Schläger1, Schläger2, Game);
        // Hier wird das Event gespeichert, falls gerade eines passiert
         sf::Event Event;
         // Nur ausführen wenn ein Event aufgerufen wurden ist
        while (App.GetEvent(Event))
        {
             // Soll das Fentser geschlossen werden?
            if (Event.Type == sf::Event::Closed)
             {
                App.Close();
                 // Wurde eine Taste gedrückt?
             } else if(Event.Type == sf::Event::KeyPressed) {
                 Game.KeyPressed(Event.Key.Code);
             }
        }
         // Bildschirm "säubern"
        App.Clear();
         // Ball malen
         App.Draw(Ball);
         // Die Schläger malen
         App.Draw(Schläger1);
         App.Draw(Schläger2);
         // Anzeigen
        App.Display();
    }
     // Erfolgreich beendet
    return EXIT_SUCCESS;
 }

 void SetAll(sf::Sprite& B, sf::Sprite& S1, sf::Sprite& S2, Pong Game) {
         // Die Position des Balles Einstellen
         B.SetPosition(Game.GetBall().Left, Game.GetBall().Top);
         B.SetScale(Game.GetBall().GetWidth(), Game.GetBall().GetHeight());
         // Die Position des Schläger1
         S1.SetPosition(Game.GetPlayer1Schläger().Left, Game.GetPlayer1Schläger().Top);
         S1.SetScale(Game.GetPlayer1Schläger().GetWidth(), Game.GetPlayer1Schläger().GetHeight());
         // Die Position des Schläger2
         S2.SetPosition(Game.GetPlayer2Schläger().Left, Game.GetPlayer2Schläger().Top);
         S2.SetScale(Game.GetPlayer2Schläger().GetWidth(), Game.GetPlayer2Schläger().GetHeight());
 }


In der Main-Funktion rufe ich die SetAll funktion auf und da passiert irgendwo der Fehler.

Wäre schön könntet Ihr mir helfen.

Mfg
LittleProgger

2

20.08.2010, 12:48

Das liegt daran, dass die SetAll-Funktion ja erst später in der Datei steht und die Main-Funktion SetAll eben gar nicht kennt bzw. weiß, dass diese existiert.

Damit das anders ist, könntest Du vor der Main-Funktion einen Funktionsprototypen von SetAll hinzufügen, d.h.:

C-/C++-Quelltext

1
void SetAll(sf::Sprite& B, sf::Sprite& S1, sf::Sprite& S2, Pong Game);


Einfach in Zeile 4 und dann weiß die Main-Funktion dadurch, dass SetAll existiert.

3

20.08.2010, 12:51

Hi,
Ohh, danke! Hat mir echt geholfen.

Werbeanzeige