Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[SFML 2.0] Kamera w grze 2D

Ostatnio zmodyfikowano 2012-12-25 08:10
Autor Wiadomość
ridic14
Temat założony przez niniejszego użytkownika
[SFML 2.0] Kamera w grze 2D
» 2012-12-10 17:28:57
Hmm chodzi o to jak poruszać kamerą w grze...

na razie zauważyłem że nie można przemieszczać "kamery" i postaci na raz...

Postanowiłem że będę przemieszczał samą kamerę lecz myślę nad tym jak to zrobić... Myślę że dobrze by było użyć klasy sf::View w sfml
ale jak tego używam to wszystko zniekształca. Jak można to zrobić(w teori)?
P-70714
Mrovqa
» 2012-12-10 20:25:40
Zdefiniuj sobie klasę od kamery (pozycja, szerokość, wysokość, itp) i po prostu przy renderowaniu obrazki renderujesz na pozycji obrazek-kamera.
P-70737
DejaVu
» 2012-12-10 23:10:06
jako drugi argument do metody Draw podajesz sf::Transform.
P-70743
ridic14
Temat założony przez niniejszego użytkownika
» 2012-12-11 18:00:14
Hmm... nie znam się aż tak na sfml, zwłaszcza że w dokumentacji nic o tym nie pisze?! Drugi argument transform?

http://www.sfml-dev.org/documentation/2.0/classsf_1_1RenderTarget.php#ab636d7363f6681077361ee274ba89a8d

P-70772
DejaVu
» 2012-12-12 01:09:20
Uwierz - zadziała :P Ostatnio intensywnie zgłębiałem tajniki SFML-a 2.0 i ten drugi argument metody 'draw' jest genialnym rozwiązaniem :)

PS. Zapoznaj się z klasą http://www.sfml-dev.org/documentation/2.0/classsf_1_1RenderStates.php, a będziesz wiedział czemu zadziała (patrz: konstruktory).
P-70818
Nindix
» 2012-12-12 11:53:41
Przy okazji DejaVu, pytanie może nie na temat. Kiedy pojawią się kolejne kursy SFML 2.0, bo nie mogę się doczekać ? :D
P-70829
ridic14
Temat założony przez niniejszego użytkownika
» 2012-12-12 17:17:13
Bo to zakamuflowane to RenderStates to ma w sobie kilka rzeczy!!!!

The transform: how the object is positioned / rotated / scaled
 czyli może być sprite.getTransform()?

Może tak:
C/C++
sf::RectangleShape shape;
shape.setSize( sf::Vector2f( 100, 100 ) );
shape.setPosition( 100, 100 );

App.draw( shape, shape.getTransform() );

P.S. może nie doczytałem ale co daje ten transform można ustalać pozycję itp. a w funkcji draw(a, a.getTransform()), zmienia pozycję itp obiektu a?

Edit 3(bo tam kod i ps.)

do tego p.s. to mam odpowiedź że tak(np.
C/C++
tra.rotate(.1f, 150, 150 );
App.draw( shape, tra ); )

Edit 4:

Kamera:

sf::Transform dla każdego obiektu i w pętli :
C/C++
tra.translate( przemieszczenie kamery X, przemiesczenie kamery Y );
P-70842
Unnamed789
» 2012-12-23 03:49:48
P-71713
« 1 » 2
  Strona 1 z 2 Następna strona