[SFML, C++] Problem z kafelkami i zapisywanie koordów obiektów
Ostatnio zmodyfikowano 2011-08-19 11:31
Thud |
» 2011-08-18 17:09:46 @Dark: Nie do końca rozumiem Twoje pytanie. Chcesz po prostu aby obiekt pewnej klasy posiadał jakieś koordynaty? class Class { private: Coordinate CoordinateOfObject; public: void DoSth(); }; |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-08-18 17:15:33 Mam obrazek i chcę go gdzieś umieścić aby później wykorzystać to do kolizji itp. |
|
Thud |
» 2011-08-18 17:20:23 No to tworzysz specjalną klasę posiadającą koordynaty i jakiś wskaźnik do obrazka, żeby nie ładować go milion razy. |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-08-18 17:37:08 Z wieloma obiektami też da radę z klasą?, np. chcę zrobić wiele kafelków po których będzie skakał obiekt lub kilka obiektów( przeciwnicy i ludzik).
@edit myślę że też trzeba zrobić wtedy obiekt klasy jako tablicę |
|
Thud |
» 2011-08-18 18:05:28 Mam jeszcze lepszy pomysł. Zara wyjaśnię. |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-08-18 18:21:15 Dalej mam tą przestrzeń między sprite'ami, co tu począć :\ |
|
Thud |
» 2011-08-18 18:25:13 Masz tu: #include <iostream> #include <vector> struct Point { int X, Y; }; class Coordinate { int Width; int Height; public: Point ObjectPoint; Coordinate( int X, int Y, int W, int H ) { Width = W; Height = H; ObjectPoint.X = X; ObjectPoint.Y = Y; } }; class Image { }; class Class { private: Image ImageOfObject; std::vector < Coordinate >* VectorPointer; public: void SetVector( std::vector < Coordinate >* Pointer ) { VectorPointer = Pointer; } void DrawAll() { } void AddImage( Coordinate CoordinateOfImage ) { VectorPointer->push_back( CoordinateOfImage ); } }; int main() { Class Object; std::vector < Coordinate > Coordinates; Object.SetVector( & Coordinates ); Object.AddImage( Coordinate( 0, 0, 0, 0 ) ); Object.AddImage( Coordinate( 1, 1, 1, 1 ) ); Object.AddImage( Coordinate( 2, 2, 2, 2 ) ); std::vector < Coordinate >::iterator Iterator; for( Iterator = Coordinates.begin(); Iterator != Coordinates.end(); Iterator++ ) { std::cout << Iterator->ObjectPoint.X << std::endl; } }
Zastosowałem tutaj klasę zawierającą wskaźnik do vectora a także obrazek. Więc możesz teraz przypisać jednemu Sprite'owi wiele różnych punktów. Możesz też zastosować zwykłe tablice ja chcesz. Co do kafli być może nad tym pomyślę. //Edit... Mały błąd komplikujący kod. Zara poprawka. //Edit... Poprawiłem. |
|
Dark Temat założony przez niniejszego użytkownika |
» 2011-08-18 18:54:38 Kod działa( chociaż to czysty C++ ), lecz dalej nie mam rozwiązanego problemu z 1px przestrzenią.
@edit
Nie ustawiałem żadnej ramki więc powinna tablica się wyświetlić bez żadnych odstępów :\
@edit
A jak w tym kodzie dodawać obrazy i sprite'y? |
|
1 « 2 » 3 |