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
Quellcode |
|
1 2 3 4 5 6 7 |
1>------ Erstellen gestartet: Projekt: SFML_Game, Konfiguration: Debug Win32 ------ 1> main.cpp 1> Sprites.cpp 1>c:\users\user\documents\visual studio 2012\projects\sfml_game\sfml_game\sprites.cpp(17): error C3867: "CTexture::LoadTexture": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&CTexture::LoadTexture", um einen Zeiger auf den Member zu erstellen. 1>c:\users\user\documents\visual studio 2012\projects\sfml_game\sfml_game\sprites.cpp(71): error C3867: "CTexture::LoadTexture": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&CTexture::LoadTexture", um einen Zeiger auf den Member zu erstellen. 1>c:\users\user\documents\visual studio 2012\projects\sfml_game\sfml_game\sprites.cpp(81): error C3867: "CTexture::LoadTexture": Dem Funktionsaufruf fehlt die Argumentliste. Verwenden Sie "&CTexture::LoadTexture", um einen Zeiger auf den Member zu erstellen. ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 0 aktuell, 0 übersprungen ========== |
Wahrscheinlich in Zeile 17, 71 und 81, ist aber nur so eine naive Vermutung von mir.
MfG
Check
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 |
void MeineFunktion(); // Deklaration void MeineFunktion() // Definition { } MeineFunktion(); // Aufruf |
Zitat
Ich muss nur wissen wie ich die Memberfunktion in einem Konstruktor einer anderen Klasse aufrufe, ohne dabei eine Instanz zu erstellen, wobei stattdessen der Konstruktor die Funktion ausführen soll, wenn die Instanz der Klasse des Konstruktors erstellt wird.
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 |
CAnything g_AGlobalVar; // ob sie extern definiert wird oder nicht, spielt keine rolle class CBar; class CFoo { public: static void DoSomethingWithAGlobalVar(); }; void CFoo::DoSomethingWithAGlobalVar() { g_AGlobalVar.DoSomething(); } class CBar { public: CBar() { CFoo::DoSomethingWithAGlobalVar(); } }; int main() { CBar anyInstance; // Ruft den Konstruktor auf und führt somit die statische Funktion CFoo::DoSomethingWithAGlobalVar() auf } |
Community-Fossil
Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer
Die ganzen Aussagen ergeben keinen Sinn. Es gibt keine "Instanz der Klasse des Konstruktors". Eine Instanz eines Konstruktors existiert nicht.Ich muss nur wissen wie ich die Memberfunktion in einem Konstruktor einer anderen Klasse aufrufe, ohne dabei eine Instanz zu erstellen, wobei stattdessen der Konstruktor die Funktion ausführen soll, wenn die Instanz der Klasse des Konstruktors erstellt wird. Und ich hoffe das alles hat mit meinem Problem mit dem Fenster zu tun.
Zitat
Ist ja schön und gut... hat meine Lage aber nicht verbessert. Es steht dasselbe Dialogfenster da, wenn man das Programm startet und ich habe dasselbe
Debug-Fenster-Problem. Aber trotzdem, danke.
Die ganzen Aussagen ergeben keinen Sinn. Es gibt keine "Instanz der Klasse des Konstruktors". Eine Instanz eines Konstruktors existiert nicht.
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
#include <SFML\Graphics.hpp> #include <SFML\System.hpp> extern sf::Texture TicTacToe_Texture; //Texture class class CTexture { friend class CSlots; friend class CTransmitter; friend class CXO; public: static void LoadTexture(); }; //Slot class class CSlots : public sf::Drawable, public sf::Transformable { CTexture Texture; friend class CCollision; private: int GridCode; int Player; sf::Sprite m_Slot1; sf::Sprite m_Slot2; sf::Sprite m_Slot3; sf::Sprite m_Slot4; sf::Sprite m_Slot5; sf::Sprite m_Slot6; sf::Sprite m_Slot7; sf::Sprite m_Slot8; sf::Sprite m_Slot9; virtual void draw(sf::RenderTarget& target, sf::RenderStates states) const { states.transform *= getTransform(); states.texture = &TicTacToe_Texture; target.draw(m_Slot1, states); target.draw(m_Slot2, states); target.draw(m_Slot3, states); target.draw(m_Slot4, states); target.draw(m_Slot5, states); target.draw(m_Slot6, states); target.draw(m_Slot7, states); target.draw(m_Slot8, states); target.draw(m_Slot9, states); } public: CSlots (); }; //Transmitter class class CTransmitter : public sf::Drawable, public sf::Transformable { friend class CCollision; private: sf::Sprite Transmitter; public: CTransmitter(); }; //X and O class class CXO : public sf::Drawable, public sf::Transformable { friend class CCollision; private: sf::Sprite X; sf::Sprite O; public: CXO(); }; //Collision class class CCollision : public sf::Drawable, public sf::Transformable { private: sf::FloatRect TransmitterBox; sf::FloatRect m_Slot1Box; sf::FloatRect m_Slot2Box; sf::FloatRect m_Slot3Box; sf::FloatRect m_Slot4Box; sf::FloatRect m_Slot5Box; sf::FloatRect m_Slot6Box; sf::FloatRect m_Slot7Box; sf::FloatRect m_Slot8Box; sf::FloatRect m_Slot9Box; sf::FloatRect XBox; sf::FloatRect OBox; public: void CheckCollisions (); CCollision(); }; #endif |
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 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 |
#include "Sprites.hpp" using namespace std; sf::Texture TicTacToe_Texture; void CTexture::LoadTexture() { if(!TicTacToe_Texture.loadFromFile("TicTacToeGrid.png")) { printf("ERROR: Could not load 'TicTacToeGrid.png'"); } } CSlots::CSlots () { CTexture::LoadTexture(); //set Player 1 ('X') Player = 1; //upper-left Slot (Slot1) m_Slot1.setTexture(TicTacToe_Texture); m_Slot1.setTextureRect(sf::IntRect(0, 0, 200, 200)); m_Slot1.setPosition(0, 0); //upper Slot (Slot2) m_Slot2.setTexture(TicTacToe_Texture); m_Slot2.setTextureRect(sf::IntRect(200, 0, 200, 200)); m_Slot2.setPosition(200, 0); //upper-right Slot (Slot3) m_Slot3.setTexture(TicTacToe_Texture); m_Slot3.setTextureRect(sf::IntRect(400, 0, 200, 200)); m_Slot3.setPosition(400, 0); //middle-left Slot (Slot4) m_Slot4.setTexture(TicTacToe_Texture); m_Slot4.setTextureRect(sf::IntRect(0, 200, 200, 200)); m_Slot4.setPosition(0, 200); //middle Slot (Slot5) m_Slot5.setTexture(TicTacToe_Texture); m_Slot5.setTextureRect(sf::IntRect(200, 200, 200, 200)); m_Slot5.setPosition(200, 200); //middle-right Slot (Slot6) m_Slot6.setTexture(TicTacToe_Texture); m_Slot6.setTextureRect(sf::IntRect(400, 200, 200, 200)); m_Slot6.setPosition(400, 200); //bottom-left Slot (Slot7) m_Slot7.setTexture(TicTacToe_Texture); m_Slot7.setTextureRect(sf::IntRect(0, 400, 200, 200)); m_Slot7.setPosition(0, 400); //bottom Slot (Slot8) m_Slot8.setTexture(TicTacToe_Texture); m_Slot8.setTextureRect(sf::IntRect(200, 400, 200, 200)); m_Slot8.setPosition(200, 400); //bottom-right Slot (Slot9) m_Slot9.setTexture(TicTacToe_Texture); m_Slot9.setTextureRect(sf::IntRect(400, 400, 200, 200)); m_Slot9.setPosition(400, 400); } CTransmitter::CTransmitter() { CTexture::LoadTexture(); //Collision Transmitter Transmitter.setTexture(TicTacToe_Texture); Transmitter.setTextureRect(sf::IntRect(799, 799, 1, 1)); Transmitter.setColor(sf::Color(255, 255, 255, 255)); } CXO::CXO() { CTexture::LoadTexture(); //Player 1 Sprite X.setTexture(TicTacToe_Texture); X.setTextureRect(sf::IntRect(600, 200, 200, 200)); //Player 2 Sprite O.setTexture(TicTacToe_Texture); O.setTextureRect(sf::IntRect(200, 600, 200, 200)); } /* CCollision::CCollision() { //Collision Boxes sf::FloatRect TransmitterBox = Transmitter.getGlobalBounds(); sf::FloatRect m_Slot1Box = m_Slot1.getGlobalBounds(); sf::FloatRect m_Slot2Box = m_Slot2.getGlobalBounds(); sf::FloatRect m_Slot3Box = m_Slot3.getGlobalBounds(); sf::FloatRect m_Slot4Box = m_Slot4.getGlobalBounds(); sf::FloatRect m_Slot5Box = m_Slot5.getGlobalBounds(); sf::FloatRect m_Slot6Box = m_Slot6.getGlobalBounds(); sf::FloatRect m_Slot7Box = m_Slot7.getGlobalBounds(); sf::FloatRect m_Slot8Box = m_Slot8.getGlobalBounds(); sf::FloatRect m_Slot9Box = m_Slot9.getGlobalBounds(); sf::FloatRect XBox = X.getGlobalBounds(); sf::FloatRect OBox = O.getGlobatBounds(); } void CCollision::CheckCollisions() { //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot1Box) { int GridCode = 1; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot2Box) { int GridCode = 2; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot3Box) { int GridCode = 3; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot4Box) { int GridCode = 4; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot5Box) { int GridCode = 5; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot6Box) { int GridCode = 6; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot7Box) { int GridCode = 7; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot8Box) { int GridCode = 8; } //TransmitterBox is in the first Slot if(TransmitterBox.intersects = m_Slot9Box) { int GridCode = 9; } } */ |
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 |
#include "Sprites.hpp" using namespace std; //First project: TicTacToe Project //Create Window int main() { CTexture Texture; CSlots Slots; sf::RenderWindow MainWindow(sf::VideoMode(600, 700), "TicTacToe", sf::Style::Default); while (MainWindow.isOpen()) { sf::Event event; while (MainWindow.pollEvent(event)) { if (event.type == sf::Event::Closed) { printf("You clicked the 'Close' Button.\n"); MainWindow.close(); } } MainWindow.clear(sf::Color(255,255,255)); MainWindow.draw(Slots); MainWindow.display(); } return 0; } |
Werbeanzeige