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

Dynamiczna kamera w grze RPG 2D

Ostatnio zmodyfikowano 2024-05-05 23:47
Autor Wiadomość
tBane
Temat założony przez niniejszego użytkownika
» 2024-05-05 23:35:13
ok, w złej kolejności przypisałem view. Teraz nie działa view.setCenter(player->x, player->y);

C/C++
int main()
{
   
window->setFramerateLimit( 120 );
   
   
loadTextures();
   
prefabs.clear();
   
gameObjects.clear();
   
loadPrefabs();
   
   
sf::View view;
   
view.setSize( sf::Vector2f( screenWidth, screenHeight ) );
   
window->setView( view );
   
   
player = new Player();
   
player->setPosition( halfScreenWidth, halfScreenHeight );
   
gameObjects.push_back( player );
   
view.setCenter( player->x, player->y );
   
   
createGameObjects();
   
   
while( window->isOpen() ) {
       
// UPDATES
       
cout << "cursor at: " << sf::Mouse::getPosition( * window ).x << "," << sf::Mouse::getPosition( * window ).y << endl;
       
       
for( auto & go: gameObjects )
           
 go->update();
       
       
std::sort( gameObjects.begin(), gameObjects.end(),[ ]( const auto & a, const auto & b ) { return a->y < b->y; } );
       
view.setCenter( player->x, player->y );
       
       
// RENDER
       
window->clear( sf::Color( 64, 128, 64 ) );
       
for( auto & go: gameObjects )
           
 go->render( window );
       
       
window->display();
       
sf::sleep( sf::milliseconds( 100 ) );
       
   
} //while
   

P-181023
tBane
Temat założony przez niniejszego użytkownika
» 2024-05-05 23:47:42
dobra już wiem. Trzeba za każdym razem podczas renderowania przypisywać na nowo view do okna.

C/C++
window->clear( sf::Color( 64, 128, 64 ) );
window->setView( view );
for( auto & go: gameObjects )
   
 go->render( window );

window->display();

P-181024
1 « 2 »
Poprzednia strona Strona 2 z 2