[C++][SFML] Wielkie miasto, wielkie budynki i wielkie tablice
Ostatnio zmodyfikowano 2012-06-19 15:11
Schulze13 Temat założony przez niniejszego użytkownika |
» 2012-06-18 22:03:36 Ok... rozkminiam to wszystko i teraz jak chwycić Duo lub jak stworzyć bezpieczną mapę z obiektów? //Gratulacje 200 posta :) @edit Dostarczam cały kod gry jaki udało mi się stworzyć. cGra.h
#pragma once #include <SFML/Graphics.hpp>
#include "cCity.h"
class cGra { public: cGra( void ) { } virtual ~cGra( void ) { } void petlaGry( sf::RenderWindow & oknoApp, sf::Vector2f & mysz ) { cCity miasto( oknoApp, mysz ); while( oknoApp.IsOpened() ) { while( oknoApp.GetEvent( eventApp ) ) { if( eventApp.Type == sf::Event::Closed ) { oknoApp.Close(); } } oknoApp.Clear( sf::Color( 0, 0, 30 ) ); miasto.pokaz( oknoApp ); oknoApp.Display(); } } private: sf::Event eventApp; };
cCity.h
#pragma once #include <SFML/Graphics.hpp> #include <iostream> #include <vector>
#include "cBlok.h" #include "cBudynek.h"
#define size 128
class cCity { public: cCity( sf::RenderWindow & oknoApp, sf::Vector2f & mysz ) { ptrB = NULL; for( int i = 0; i < size; i++ ) { for( int j = 0; j < size; j++ ) { ptrB = new cBlok( i, j ); mapa[ i ][ j ] = ptrB; } } std::cout << "\ngotowe mapa ma " << sizeof( mapa ) << " bajtow\npola ma" << sizeof( ptrB = new cBlok( 0, 0 ) ) << "bajtow"; delete ptrB; ptrB = NULL; } virtual ~cCity( void ) { } void pokaz( sf::RenderWindow & oknoApp ) { for( int i = 0; i < size; i++ ) { for( int j = 0; j < size; j++ ) { mapa[ i ][ j ]->pokaz( oknoApp ); } } } private: cBlok * ptrB; cBlok * mapa[ size ][ size ];
cBlok.h
#pragma once #include <SFML/Graphics.hpp> #include <iostream>
#include "cBudynek.h"
class cBlok { public: cBlok( int x, int y ) { coord.x = x; coord.y = y; spBlok.SetPosition( coord ); } virtual ~cBlok( void ) { } void pokaz( sf::RenderWindow & oknoApp ) { oknoApp.Draw( spBlok ); } private: sf::Sprite spBlok; sf::Vector2f coord; int wysokoscBlok; cBudynek * budynek; };
cBudynek.h #pragma once class cBudynek { public: cBudynek( void ) { } virtual ~cBudynek( void ) { } private: }; W main.cpp jest działający (kto by pomyślał) kod menu. cBudynek jest pusty bo walczę aktualnie z mapą. Co do biblioteki... patrz -> tytuł @edit Najpierw w main tworzone jest okno i pokazywane. Błąd nie następuje po wygenerowaniu mapy, czyli wywołaniu konstruktora cCity, tylko podczas rysowania za pomocą metody pokaz() w cCity która jest wywoływana z petlaGry(). |
|
Schulze13 Temat założony przez niniejszego użytkownika |
» 2012-06-19 15:11:57 WSZYSTKO wina sprita w cBlok... Problem z pamięcią rozwiązany. Na razie zamykam. |
|
1 « 2 » |