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

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

11

29.01.2011, 18:07

Eine Sache noch:
Obwohl ich die Methode jetzt nur noch einmal stehen habe, sagt er mir, dass es sie schon einmal gibt, und zwar in der HPP WindowSettings.hpp.

Was soll das denn jetzt?!
Hast du zufällig Skype?

M.f.G. Developer_X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

12

29.01.2011, 18:23

Ich kenne den Inhalt der WindowSettings.hpp nicht, aber irgendwo wirst du wohl vergessen haben, einen Funktionsprototypen zu löschen.

Oder nein, die wahrscheinlichere Möglichkeit: Du bindest deine WindowSettings.hpp in mehreren Units ein. Dabei wird sie jedes mal neu vom Compiler eingelesen und beim 2. Mal kennt der Compiler eben die Funktion schon und sieht sie als Neudefinition an.
Lösung: In die WindowSettings.hpp (und auch in jede andere Header-Datei) schreibst du (wobei du WINDOW_SETTINGS_HPP in jeder Header-Datei durch einen passenden Modulnamen ersetzt):
#ifndef WINDOW_SETTINGS_HPP
#define WINDOW_SETTINGS_HPP
... // eigentlicher Dateiinhalt
#endif

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

13

29.01.2011, 18:31

Keines von beidem funktioniert bzw. trifft zu :(

Können wir uns vielleicht über Teamviewer oder skype austauschen?
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

14

29.01.2011, 18:34

Fehlermeldung :

Quellcode

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
||=== X-Games-Library, Debug ===|
F:\C++ Projekte\X-Games-Library\Credits.cpp||In member function 'void Credits::loadCredits()':|
F:\C++ Projekte\X-Games-Library\Credits.cpp|90|warning: comparison between signed and unsigned integer expressions|
F:\C++ Projekte\X-Games-Library\Credits.cpp||In member function 'void Credits::drawCredits()':|
F:\C++ Projekte\X-Games-Library\Credits.cpp|155|warning: comparison between signed and unsigned integer expressions|
F:\C++ Projekte\X-Games-Library\Credits.cpp|174|warning: comparison between signed and unsigned integer expressions|
F:\C++ Projekte\X-Games-Library\Credits.cpp|232|warning: large integer implicitly truncated to unsigned type|
F:\C++ Projekte\X-Games-Library\Credits.cpp|232|warning: large integer implicitly truncated to unsigned type|
F:\C++ Projekte\X-Games-Library\Credits.cpp|232|warning: large integer implicitly truncated to unsigned type|
||Info: resolving vtable for sf::Sprite by linking to __imp___ZTVN2sf6SpriteE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|61|multiple definition of `X_System::Graphics::drawLaserLine(sf::RenderWindow*, X_System::Point&, X_System::Point&, int, sf::Color, sf::Color)'|
||Info: resolving vtable for sf::String by linking to __imp___ZTVN2sf6StringE |
obj\Debug\Tester.o:f:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.0\..\..\..\..\include\SFML\Window\WindowSettings.hpp|44|first defined here|
||Info: resolving vtable for sf::Shape by linking to __imp___ZTVN2sf5ShapeE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|71|multiple definition of `X_System::Graphics::drawLaserLine(sf::RenderWindow*, int, int, int, int, int, sf::Color, sf::Color)'|
||Info: resolving vtable for sf::Drawable by linking to __imp___ZTVN2sf8DrawableE |
obj\Debug\Tester.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|71|first defined here|
||Info: resolving sf::Color::Cyan     by linking to __imp___ZN2sf5Color4CyanE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|83|multiple definition of `X_System::Graphics::drawLaserCircle(sf::RenderWindow*, X_System::Point&, int, int, sf::Color, sf::Color)'|
||Info: resolving sf::Color::Red     by linking to __imp___ZN2sf5Color3RedE |
obj\Debug\Tester.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|83|first defined here|
||Info: resolving sf::Color::Green     by linking to __imp___ZN2sf5Color5GreenE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|94|multiple definition of `X_System::Graphics::drawLaserCircle(sf::RenderWindow*, int, int, int, int, sf::Color&, sf::Color)'|
||Info: resolving sf::Color::Black     by linking to __imp___ZN2sf5Color5BlackE |
obj\Debug\Tester.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|94|first defined here|
||Info: resolving sf::Color::Yellow     by linking to __imp___ZN2sf5Color6YellowE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|107|multiple definition of `X_System::Graphics::drawLaserPoint(sf::RenderWindow*, X_System::Point&, int, sf::Color, sf::Color)'|
||Info: resolving sf::Color::Blue     by linking to __imp___ZN2sf5Color4BlueE |
obj\Debug\Tester.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|107|first defined here|
||Info: resolving sf::Color::White     by linking to __imp___ZN2sf5Color5WhiteE |
obj\Debug\Credits.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|111|multiple definition of `X_System::Graphics::drawLaserPoint(sf::RenderWindow*, int, int, int, sf::Color, sf::Color)'|
obj\Debug\Tester.o:F:\C++ Projekte\X-Games-Library\X_System.hpp|111|first defined here|
||warning: auto-importing has been activated without --enable-auto-import specified on the command line.|
||=== Build finished: 12 errors, 7 warnings ===|


Code :
X_System.hpp

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
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
/*
*   All the Code is written by Kevin Riehl alias Developer_X
*   Copyright 2011
*
*   This Code is part of the X-Games-Library V1.0
*/

#ifndef X_SYSTEM_HPP_INCLUDED
#define X_SYSTEM_HPP_INCLUDED

#include <SFML/Graphics.hpp>

namespace X_System
{
//  Strukturen
    struct Point
    {
        int x;
        int y;
    };
    struct Rect
    {
        int x;
        int y;
        int w;
        int h;
    };
    struct Circle
    {
        int x;
        int y;
        int r;
    };
    struct Line
    {
        int x1;
        int y1;
        int x2;
        int y2;
    };

//  Funktionen

//  Mathematische Funktionen
    namespace Math
    {

    }

//  Datei Funktionen
    namespace File
    {
    }

//  Grafische Funktionen
    namespace Graphics
    {
    //  Methoden
        //  Draw Laser Line
        void drawLaserLine(sf::RenderWindow* window,Point& p1,Point& p2,int width,sf::Color c,sf::Color c2 = sf::Color::White)
        {
        }
        void drawLaserLine(sf::RenderWindow* window,int x1,int y1,int x2,int y2,int width,sf::Color c,sf::Color c2 = sf::Color::White)
        {
        }

        //  Draw Laser Circle
        void drawLaserCircle(sf::RenderWindow* window,Point &p1,int radius,int width,sf::Color c,sf::Color c2 = sf::Color::White)
        {
        }
        void drawLaserCircle(sf::RenderWindow* window,int x,int y,int radius,int width,sf::Color& c,sf::Color c2 = sf::Color::White)
        {
        }

        //  Draw Laser Point
        void drawLaserPoint(sf::RenderWindow* window,Point &p1,int width,sf::Color c,sf::Color c2 = sf::Color::White)
        {
        }
        void drawLaserPoint(sf::RenderWindow* window,int x, int y,int width,sf::Color c,sf::Color c2 = sf::Color::White)
        {
        }
    }
}

#endif // X_SYSTEM_HPP_INCLUDED
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

15

29.01.2011, 18:54

Wenn ich die Headerdatei so sehe wundere ich mich nur über die Namespaces, von denen ich nicht überzeugt bin, dass sie benötigt werden. Namespaces setzt man eigentlich nur bei großen Teilen vom Projekt ein, aber nicht bei Funktionsgruppen innerhalb eines Moduls. Am Schluss schreibt man sonst eh using namespace xy; wodurch der Sinn der Namespaces gleich Null ist (gutes Beispiel dafür C++/cli).

Ansonsten sollte ich deinen kompletten Projetaufbau wissen, um dir helfen zu können.
Skype wäre möglich, jedoch habe ich gerade nicht unbedingt Zeit dafür.

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

16

29.01.2011, 19:15

Es geht darum, dass ich keine Lust darauf habe, ständig bei Funktionen einer Klasse, die Klasse zu erstellen um auf ihre Funktionen zu greifen zu können.
Deshalb wollte ich ein Namespace verwenden, um gleich die Funktion aufrufen zu können,
schade.

M.f.G. Developer_X
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

17

29.01.2011, 19:22

Du kannst Funktionen ohne Klassen global definieren (mit Prototyp in der Headerdatei und der Definition in der CPP-Datei). Ein Namespace hat damit nichts zu tun ;)

Du bringst da glaube ich einiges durcheinander und verwendest Dinge, die du nicht richtig verstehst. Schau dir nochmal genau an, was Funktionen und Klassen sind.

Developer_X

Treue Seele

  • »Developer_X« ist der Autor dieses Themas

Beiträge: 247

Wohnort: Hessen

Beruf: Schüler

  • Private Nachricht senden

18

29.01.2011, 19:23

Doch doch, ich weiß was Klassen sind,
ich dachte nur ich könnte dafür mal namespaces verwenden, aber na gut, dann verwende ich mal Globale Funktionen,
- Die Zeit ist wie ein Fluss, und die Gegenwart wie ein Fels, der von dem Fluss der Zeit geschliffen wird. -
Kevin Riehl

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

19

29.01.2011, 19:29

"Einfach nur mal" irgendwas verwenden, weils schön aussieht ist in der Praxis ganz schlecht. Kommst du voran? Wenn nein, solltest du mehr vom Code zeigen (wobei die Implementierung deiner Funktionen unwichtig ist, es geht nur um den Aufbau).

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

20

29.01.2011, 19:43

Wie schon gesagt wurde.
Man kann structs verwenden.
Außerdem kannst du die Positionen n Vektoren angeben ( sf::Vector2f ).

MfG Stazer

PS : Wenn man wegen jeden scheiss ein Thread erstellt , sollte man doch überlegen nicht an etwas anderem zu programmieren.

Werbeanzeige