Kolor Sprajta
Ostatnio zmodyfikowano 2011-07-06 22:53
diego997 Temat założony przez niniejszego użytkownika |
Kolor Sprajta » 2011-07-03 16:53:51 Bawię się na razie biblioteką i sprawdzam nowe rzeczy. Chciałem zrobić, że kiedy naciśnie się na lewy przycisk myszy to utworzy się nowy kwadrat o kolorze np. zielonym, a za każdym razem tworzy mi się biały chciałem jakoś zrobić przez referencje ale się nie da. Pomożecie? #include <SFML/Window.hpp> #include <SFML/Graphics.hpp> #include <iostream>
void tworzenie( int ktory, sf::Sprite Sprajtek[ 500 ] );
int main() { sf::RenderWindow Okno; Okno.Create( sf::VideoMode( 800, 600 ), "Witam" ); sf::Image Obraz; Obraz.Create( 20, 20, sf::Color::Green ); sf::Sprite Sprajt; Sprajt.SetImage( Obraz ); Sprajt.SetScale( 3, 3 ); Sprajt.SetCenter( Obraz.GetWidth() / 2.0f, Obraz.GetHeight() / 2.0f ); Sprajt.SetPosition( 400, 300 ); const sf::Input & wejscie = Okno.GetInput(); int licznik =- 1; sf::Sprite NowySprajt[ 500 ]; while( Okno.IsOpened() ) { sf::Event Zdarzenie; while( Okno.GetEvent( Zdarzenie ) ) { if( Zdarzenie.Type == sf::Event::MouseButtonPressed && Zdarzenie.MouseButton.Button == sf::Mouse::Left ) { ++licznik; tworzenie( licznik, NowySprajt ); NowySprajt[ licznik ].SetPosition( wejscie.GetMouseX(), wejscie.GetMouseY() ); } } if( wejscie.IsMouseButtonDown( sf::Mouse::Right ) ) { Sprajt.SetPosition( wejscie.GetMouseX(), wejscie.GetMouseY() ); } Okno.Clear( sf::Color::Black ); Sprajt.Rotate( 0.02 ); if( licznik >= 0 ) { for( int i = 0; i <= licznik; i++ ) { Okno.Draw( NowySprajt[ i ] ); } } Okno.Draw( Sprajt ); Okno.Display(); } }
void tworzenie( int ktory, sf::Sprite Sprajtek[ 500 ] ) { sf::Image Obrazek[ 500 ]; Obrazek[ ktory ].Create( 20, 20, sf::Color::Green ); Sprajtek[ ktory ].SetImage( Obrazek[ ktory ] ); Sprajtek[ ktory ].SetScale( 3, 3 ); Sprajtek[ ktory ].SetCenter( Obrazek[ ktory ].GetWidth() / 2.0f, Obrazek[ ktory ].GetHeight() / 2.0f ); }
P.S Jeszcze jedno pytanie zauważyłem że im więcej klocków tworzę tym wolniej ten głowny się obraca, czy aby na pewno dobrze jest to napisane, czy można to jakoś zoptymalizować? |
|
pekfos |
» 2011-07-03 17:11:11 |
|
Dark |
» 2011-07-03 17:13:18 chciał pewnie napisać 'kolor' :D |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-03 17:24:01 Już zmienione sorki ;p |
|
malan |
» 2011-07-03 23:25:39 Setki razy był ten problem poruszany na forum :) Robisz jeden podstawowy błąd. |
|
diego997 Temat założony przez niniejszego użytkownika |
» 2011-07-03 23:55:04 Ale setki razy był poruszany odnośnie koloru czy optymalizacji. BTW. Kolor udało mi się zmienić dodałem NowySprajt[ licznik ].SetColor( sf::Color::Green );
Nie wiem czy dobrze |
|
malan |
» 2011-07-06 22:53:19 Odnoście białego prostokąta :) |
|
« 1 » |