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

[SFML] Dzielenie kodu na pliki i klasa

Ostatnio zmodyfikowano 2020-03-25 22:28
Autor Wiadomość
R0ut4
Temat założony przez niniejszego użytkownika
» 2020-03-25 21:21:12
Pekfos, a jak mogę użyć funkcji void setPosition(), która nie jest w klasie Gracz, ale używałbym jej na obiekcie tej klasy?
Funckja jest stworzona przed funkcją main().
P-176500
pekfos
» 2020-03-25 21:34:57
Możesz to pokazać w kodzie? Chodzi o te setPosition(), jakie możesz wykonać na obiekcie np sf::Sprite?
P-176501
R0ut4
Temat założony przez niniejszego użytkownika
» 2020-03-25 21:40:09
Tak, ta od sf::Sprite'ów
Tutaj masz kawałek kodu:
C/C++
[...]
#include "sterowanie.hpp"

enum Stan
{
    Menu, Gra, Esc
};
void setPosition( int x, int y );
int main()
{
    sf::RenderWindow aplikacja( sf::VideoMode( 840, 720 ), "Ogrod" );
    aplikacja.setFramerateLimit( 60 );
    Stan stan = Menu;
   
    Gracz player;
   
    player.setPosition( 200, 200 );
   
    sf::Texture tekstura_menu;
    tekstura_menu.loadFromFile( "Menu.png" );
    sf::Texture tekstura_start;
    tekstura_start.loadFromFile( "przycisk_start.png" );
   
    sf::Sprite tlo_menu;
    tlo_menu.setTexture( tekstura_menu );
    sf::Sprite sp_start;
    sp_start.setTexture( tekstura_start );
   
    while( aplikacja.isOpen() )
    [...]

Error: 'class Gracz' has no member named 'setPosition'
P-176502
pekfos
» 2020-03-25 21:42:16
To co dodałeś to zwykła funkcja, niezwiązana z żadną klasą. setPosition() w sf::Sprite bierze się z sf::Transformable. Zobacz diagram w https://www.sfml-dev.org​/documentation/2.5.1​/classsf_1_1Sprite.php.
P-176503
R0ut4
Temat założony przez niniejszego użytkownika
» 2020-03-25 21:50:53
Ogarnąłem, ale nie rysuje się obiekt klasy Gracz
Potrzebny kod, czy zajrzysz do pierwszej wiadomość?

Edit:
Rysuje, ale musiałem ustawić pojedzyncze wierzchołki w klasie Gracz. Da się ominąć tę część kodu? Tego ustawiania każdego wierzchołka?

Edit 2:
Sterowanie tym obiektem również nie działa...
P-176504
pekfos
» 2020-03-25 22:05:35
P-176505
R0ut4
Temat założony przez niniejszego użytkownika
» 2020-03-25 22:21:00
Osobiście nie widzę tam nic, co by mi miało pomóc :/
P-176506
pekfos
» 2020-03-25 22:28:14
Chodzi mi o ten przykład:
C/C++
class MyEntity
    : public sf::Transformable
     , public sf::Drawable
{
    virtual void draw( sf::RenderTarget & target, sf::RenderStates states ) const
    {
        states.transform *= getTransform();
        target.draw(..., states );
    }
};
MyEntity entity;
entity.setPosition( 10, 20 );
entity.setRotation( 45 );
window.draw( entity );
Mają też tutorial na ten temat: https://www.sfml-dev.org​/tutorials/2.5​/graphics-vertex-array.php.
P-176507
1 « 2 »
Poprzednia strona Strona 2 z 2