• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

SFML-problem z klasami

Object Storage Arubacloud
0 głosów
361 wizyt
pytanie zadane 11 września 2018 w C i C++ przez oliwzcak12 Użytkownik (550 p.)

Chciałem sprawdzić jak działają klasy w SFML'u na prostym renderowaniu kółka tylko że nie wiem co tu jest źle. Wyskakuje błąd z brakiem deklaracji klasy w mainie i nie do końca wiem co z tym zrobić bo z tego co mi się wydaje dobrze deklaruje klasę w mainie.

Plik główny:

#include <SFML/Graphics.hpp>
#include "Game.h"

int main()
{
    sf::RenderWindow oknoAplikacji( sf::VideoMode( 640, 480, 32 ), "Kurs SFML - http://cpp0x.pl" );

   koloo p1;

    while( oknoAplikacji.isOpen() )
    {
        sf::Event zdarzenie;
        while( oknoAplikacji.pollEvent( zdarzenie ) )
        {
            if( zdarzenie.type == sf::Event::Closed )
                 oknoAplikacji.close();

            if( zdarzenie.type == sf::Event::KeyPressed && zdarzenie.key.code == sf::Keyboard::Escape )
                 oknoAplikacji.close();


        }
        oknoAplikacji.clear( sf::Color::Black );
        oknoAplikacji.draw(kolo);
        oknoAplikacji.display();
    }
    return 0;
}

plik .h:

#include <SFML/Graphics.hpp>

class koloo
{
public:

    void stworz();

};

Plik .cpp:

#include <SFML/Graphics.hpp>
#include "Game.h"


void koloo::stworz
{

sf::CircleShape kolo(20);
kolo.setposition(0,0);

}


Z góry dziękuje. :)

1 odpowiedź

0 głosów
odpowiedź 11 września 2018 przez criss Mędrzec (172,590 p.)
oknoAplikacji.draw(kolo);

Co to jest `kolo`? Widze `p1`. Ale klasa koloo nie dziedziczy z sf::Drawable więc i tak nic z tego.

void koloo::stworz
{
 
sf::CircleShape kolo(20);
kolo.setposition(0,0);
 
}

brakuje ci nawiasów za nazwą funkcji. Poza tym: jaki sens ma ta funkcja. Podpowiem, że żadnego.

komentarz 11 września 2018 przez oliwzcak12 Użytkownik (550 p.)

Co to jest `kolo`? Widze `p1`. Ale klasa koloo nie dziedziczy z sf::Drawable więc i tak nic z tego.

 kolo to ten circleshape który jest w klasie tylko właśnie nie wiem czy funkcje draw muszę dać w klasie czy w mainie. A poza tym klasa musi dziedziczyć po  sf::Drawable  żeby móc użyć w niej sf::CircleShape albo setposition? 

Poza tym: jaki sens ma ta funkcja. Podpowiem, że żadnego.

Ma narysować koło. 

komentarz 11 września 2018 przez criss Mędrzec (172,590 p.)

A poza tym klasa musi dziedziczyć po  sf::Drawable  żeby móc użyć w niej sf::CircleShape albo setposition? 

Musi, dziedziczyc z sf::Drawable i nadpisywac metode wirtualną sf::Drawable::draw (polimorfizm). Serio, poczytaj tutoriale na stronie sfml, bo śa skrajnie prosto napisane a widać że nic nie ogarniasz.

Ma narysować koło. 

Tworzy lokalny obiekt sf::CircleShape. żadnego rysowania tam nie ma 

komentarz 11 września 2018 przez oliwzcak12 Użytkownik (550 p.)
Ale przecież muszę użyć draw żeby sprite pojawił się na oknie.
komentarz 12 września 2018 przez criss Mędrzec (172,590 p.)
Poczytaj te tutoriale. Nie chce mi się ich przepisywać, żeby ci to wytłumaczyć. Być może kurs podstaw obiektowego cpp też się przyda.

Podobne pytania

0 głosów
1 odpowiedź 300 wizyt
pytanie zadane 12 stycznia 2020 w C i C++ przez Dawid_1900 Nowicjusz (210 p.)
0 głosów
3 odpowiedzi 1,635 wizyt
0 głosów
2 odpowiedzi 135 wizyt
pytanie zadane 1 maja 2019 w C i C++ przez NEFOS Początkujący (320 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...