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
C-/C++-Quelltext |
|
1 |
CBlock(int XPos, int YPos, int Width, int Height, sf::Color Color) |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
// LoadLevel // void CGame::LoadLevel() { sf::Image LevelImage; if (!LevelImage.LoadFromFile("Level/level.png")) { // Error... } CBlock Block[41][11]; for(int i = 0; i < 40; i++) { for(int j = 0; j < 11; j++) { m_PixelColor[i][j] = LevelImage.GetPixel(i, j); Block[i][j](0, 0, 0, 0, m_PixelColor[i][j]); } } cout << "Level erfolgreich geladen." << endl; } // LoadLevel |
C-/C++-Quelltext |
|
1 |
std::vector<std::vector<CBlock> > Block(41, std::vector<CBlock>(11, CBlock(x, y, w, h, c))); |
idontknow
unregistriert
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
#include <SFML/Graphics.hpp> #include <SFML/System.hpp> using namespace std; class CGame { public: CGame(sf::RenderWindow *Window); void Render(); void LoadLevel(); void DrawLevel();; void MoveView(int X, int Y); private: sf::RenderWindow *m_pApp; sf::Color m_PixelColor[40][11]; sf::View LevelView; }; |
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 |
#include <SFML/Graphics.hpp> #include <SFML/System.hpp> #include <iostream> using namespace std; #include "game.hpp" #include "block.hpp" // Konstruktor // CGame::CGame(sf::RenderWindow *Window)//(sf::RenderWindow &App) { m_pApp = Window; LoadLevel(); LevelView.SetFromRect(sf::FloatRect(0, 0, 800, 600)); m_pApp->SetView(LevelView); } // Konstruktor // Render // void CGame::Render()//sf::RenderWindow &App) { m_pApp->Clear(sf::Color::White); m_pApp->Draw(sf::Shape::Line(0, 550, 800, 550, 5, sf::Color::Black)); DrawLevel();//App); m_pApp->Display(); } // Render // LoadLevel // void CGame::LoadLevel() { sf::Image LevelImage; if (!LevelImage.LoadFromFile("Level/level.png")) { // Error... } for(int i = 0; i < 40; i++) { for(int j = 0; j < 11; j++) { m_PixelColor[i][j] = LevelImage.GetPixel(i, j); } } cout << "Level erfolgreich geladen." << endl; } // LoadLevel // DrawLevel // void CGame::DrawLevel()//(sf::RenderWindow &App) { for(int i = 0; i < 40; i++) { for(int j = 0; j < 11; j++) { //Block[i][j].Render(m_pApp); //m_pApp->Draw(sf::Shape::Rectangle(i*50, j*50, i*50+50, j*50+50, m_PixelColor[i][j])); } } } // DrawLevel // MoveView // void CGame::MoveView(int X, int Y) { LevelView.Move(X, Y); } // MoveView |
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
#include <SFML/Graphics.hpp> #include <SFML/System.hpp> class CBlock { public: CBlock(); CBlock(int XPos, int YPos, int Width, int Height, sf::Color Color); void Render(sf::RenderWindow *App); int GetXPos(); int GetYPos(); private: sf::Shape m_Rect; int m_XPos; int m_YPos; int m_Width; int m_Height; }; |
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 |
#include <SFML/Graphics.hpp> #include <SFML/System.hpp> #include <iostream> #include <string> using namespace std; #include "block.hpp" // Konstruktor: CBlock // CBlock::CBlock() { } // Konstruktor: CBlock // Konstruktor: CBlock(int XPos, int YPos, int Width, int Height, sf::Color Color) // CBlock::CBlock(int XPos, int YPos, int Width, int Height, sf::Color Color) { //m_Counter++; m_XPos = XPos; m_YPos = YPos; m_Width = Width; m_Height = Height; m_Rect = sf::Shape::Rectangle(m_XPos, m_YPos, m_XPos+m_Width, m_YPos+m_Height, Color); cout << "Instanz der Klasse CBlock mit den Parametern " << m_XPos << ", " << m_YPos << ", " << m_Width << ", " << m_Height << Color.r << "," << Color.g << "," << Color.b << " erzeugt" << endl; } // Konstruktor: CBlock(int XPos, int YPos, int Width, int Height, sf::Color Color) // Render // void CBlock::Render(sf::RenderWindow *App) { App->Draw(m_Rect); } // Render // GetX // int CBlock::GetXPos() { return m_XPos; } // GetX // GetY // int CBlock::GetYPos() { return m_YPos; } // GetY |
idontknow
unregistriert
C-/C++-Quelltext |
|
1 |
std::vector<std::vector<CBlock> > Block; |
C-/C++-Quelltext |
|
1 |
Block(41, std::vector<CBlock>(11, CBlock(x, y, w, h, c))); |
C-/C++-Quelltext |
|
1 |
Block[0][0]; |
C-/C++-Quelltext |
|
1 |
Block.at(0).at(0); |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nathax« (08.08.2012, 16:30)
Das Problem ist ja die Aufteilung in 2 Klassen, aber kann ich den Vektor irgendwie als Membervariable von CGame definieren,
da CGame den CBlock ja nicht kennt?
Ein Include der block.hpp führt zur Typneudefinition oder so.
C-/C++-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#ifndef CGAME_HPP #define CGAME_HPP #include "CBlock.hpp" class CGame { private: std::vector<std::vector<CBlock> > m_Block; // ... }; #endif // CGAME_HPP |
Ich hab das Buch von Heiko Kalista (C++ für Spieleprogrammierer) und soweit ich weiß werden include-guards dort nicht wirklich behandelt.Das Problem ist ja die Aufteilung in 2 Klassen, aber kann ich den Vektor irgendwie als Membervariable von CGame definieren,
da CGame den CBlock ja nicht kennt?
Ein Include der block.hpp führt zur Typneudefinition oder so.
Was?
Du hast CBlock und nimmst dies als Membervariabel von CGame, damit CGame weiss was CBlock ist, musst du einfach die Header Datei von CBlock in der Header Datei von CGame inkludieren.
Um Typen Neudefinitionen zu verhindern, musst du include-guards verwenden, z.B.:
Dies ist überigends eine weitere Grundlage von C++, welche ein gutes Buch erklären würde.
C-/C++-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 #ifndef CGAME_HPP #define CGAME_HPP #include "CBlock.hpp" class CGame { private: std::vector > m_Block; // ... }; #endif // CGAME_HPP
C-/C++-Quelltext |
|
1 |
m_Block(41, vector<CBlock>(11, CBlock(0, 0, 0, 0, sf::Color::Black))); |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Nathax« (08.08.2012, 19:52)
Werbeanzeige