Sfml c++ lenght error oraz problrm z textem

Odpowiedz Nowy wątek
2020-08-01 11:14

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0
using namespace sf;
using namespace std;

int punkty = 0;

int main()
{
    string Pkt = to_string(punkty);

    CircleShape shape(20); // Tworzy kształt kółka o nazwie "shape" o wielkości 20
    shape.setFillColor(Color(100, 250, 50)); // Wypełnia objekt o nazwie "shape" kolorem zielonym
    shape.setPosition(400.f, 300.f); // Ustawia objekt na pozycji X = 400, Y = 300
    shape.setOrigin(shape.getRadius(), shape.getRadius()); // Ustawia "Punkt zaczepienia?" na środku objektu, aby podana pozycja odpowiadała rzeczywistości
    shape.setPointCount(1000);

    Text punkty;
    Font font;
    font.loadFromFile("Arial.ttf");
    punkty.setFont(font);
    punkty.setCharacterSize(24);
    punkty.setFillColor(Color(255, 255, 255));
    punkty.setString(Pkt);

Witam, mam 2 problemy. Pierwszy to jest wysypywanie błędu Nieobsłużony wyjątek w lokalizacji 0x00007FF8FA3EA799 w Smfldziałaj.exe: wyjątek języka Microsoft C++: std::length_error w lokalizacji pamięci 0x0000003D766FEBE0. Jak to naprawić? Oraz drugi problem polega na tym, że zamiast tekstu wyświetla mi się mała kropka. Dałoby się coś z tym zrobić?

Prześlij cały kod. - MrMadMatt 2020-08-01 13:34

Pozostało 580 znaków

2020-08-01 15:01

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

@MrMadMatt: ```


#include <SFML/Graphics.hpp>
#include <iostream>
#include <string>

using namespace sf;

int score = 0;

int main()
{
    string Pkt = to_string(punkty);

    CircleShape shape(20); // Tworzy kształt kółka o nazwie "shape" o wielkości 20
    shape.setFillColor(Color(100, 250, 50)); // Wypełnia objekt o nazwie "shape" kolorem zielonym
    shape.setPosition(400.f, 300.f); // Ustawia objekt na pozycji X = 400, Y = 300
    shape.setOrigin(shape.getRadius(), shape.getRadius()); // Ustawia "Punkt zaczepienia?" na środku objektu, aby podana pozycja odpowiadała rzeczywistości
    shape.setPointCount(1000);

    Font font;
    font.loadFromFile("arial.ttf");
    if (!font.loadFromFile("arial.ttf"));
    {
        std::cout << "Nie udało się załadować czcionki" << std::endl;
    }
    Text scor;
    scor.setFont(font);
    scor.setCharacterSize(24);
    scor.setFillColor(Color(255, 255, 255));
    scor.setString(Pkt);

        // Tworzy okno o nazwie "window" o szerokości (x) = 800, wysokości (y) = 600. Nadaje nazwe okna "SFML First Game", dodaje nazwe oraz przycisk zamykający okno
   RenderWindow window(VideoMode(800, 600), "SFML First Game", sf::Style::Titlebar | sf::Style::Close);

   // Główna pętla programu
   while (window.isOpen())
   {

       if (sf::Keyboard::isKeyPressed(sf::Keyboard::W) && shape.getPosition().y >= 20) {
           shape.move(0.f, -0.1f);
       }

       if (sf::Keyboard::isKeyPressed(sf::Keyboard::S) && shape.getPosition().y <= 580) {
           shape.move(0.f, 0.1f);
       }

       if (sf::Keyboard::isKeyPressed(sf::Keyboard::A) && shape.getPosition().x >= 20) {
           shape.move(-0.1f, 0.f);
       }

       if (sf::Keyboard::isKeyPressed(sf::Keyboard::D) && shape.getPosition().x <= 770) {
           shape.move(0.1f, 0.f);
       }

       // Tworzy Event o nazwie event
       Event event;

       while (window.pollEvent(event))
       {
           // Dodaje zamykanie programu po naciśnięciu "X" w prawym górnym rogu ekranu
           if (event.type == Event::Closed) {
               window.close();
           }
       }

        //Czyści okno z poprzedniej klatki
        window.clear();

        // Rysuje objekt o nazwie "shape"
        window.draw(shape);
        // Rysuje objekt o nazwie "scor"
        window.draw(scor);
        // Wyświetla elementy na oknie
        window.display();
    }
    return 0;
}
Czy ten kod (tak jak go wkleiłeś) kompiluje się u Ciebie ? Jeśli nie, to wykaż minimum wysiłku i daj coś, co będziemy mogli łatwo sprawdzić... - Bartłomiej Golenko 2020-08-01 16:02

Pozostało 580 znaków

2020-08-01 16:14

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

@Bartłomiej Golenko: Jeśli mam scor.setString(Pkt); to nie da sie włączyćbo Od razu wywala błąd o ktorym napisalem, jeśli zamienie to na np. "test" to odpala sie ale zamiast tekstu jest kropka, a czcionka sie nie laduje

Nie odpowiedziałeś na pytanie. Czy kod który tu wkleiłeś kompiluje się u Ciebie ? Zrób sobie nowy projekt i wklej to co dałeś na forum. - Bartłomiej Golenko 2020-08-01 16:21

Pozostało 580 znaków

2020-08-01 17:40

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

@Bartłomiej Golenko: po kompilacji zostaje tylko ========== Kompilacja: 0 zakończono powodzeniem, 0 zakończono niepowodzeniem, 1 zaktualizowano, 0 pominięto ========== wiec sie raczej nie kompiluje

Pozostało 580 znaków

2020-08-01 17:57

Rejestracja: 1 rok temu

Ostatnio: 9 godzin temu

0

Ok, no to drobna podpowiedź - w tym fragmencie masz już 2 błędy:

#include <iostream>
#include <string>

using namespace sf;

int score = 0;

int main()
{
    string Pkt = to_string(punkty);

Pozostało 580 znaków

2020-08-01 18:19

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

Brak std::? Jak tak to akurat zauważyłem i poprawiłem już wcześniej

Pozostało 580 znaków

2020-08-01 21:49

Rejestracja: 1 rok temu

Ostatnio: 9 godzin temu

0

OK, znalazłeś jeden problem - teraz znajdź drugi:

#include <iostream>
#include <string>

using namespace sf;

int score = 0;

int main()
{
    std::string Pkt = std::to_string(punkty);

Pozostało 580 znaków

2020-08-01 23:30

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

Mam int score A chce zmieniać punkty. W sensie ja chyba tu źle kod dałem bo ja już tyle kombinowalem przy tym że debuger nie pokazuje mi tych błędów. Wiesz co można zrobić z tym wyjątkiem oraz dlaczego mi się czcionki nie ładuja?

Pozostało 580 znaków

2020-08-01 23:46

Rejestracja: 1 rok temu

Ostatnio: 9 godzin temu

0

Oczywiście że wiem, plik z czcionką masz w innym katalogu niż program jej szuka (katalog z binarką/źródłami to niekoniecznie ten katalog w którym program jest uruchomiony)

Pozostało 580 znaków

2020-08-02 08:38

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

Plik z czcionką dałem chyba dosłownie wszędzie, tam gdzie projekt, potem tam gdzie rozwiązanie oraz do folderu z plikiem exe.Gdzie sprawdzić gdzie program szuka tego?

Pozostało 580 znaków

2020-08-02 12:04

Rejestracja: 1 tydzień temu

Ostatnio: 4 dni temu

0

@Bartłomiej Golenko: A wiesz co z tym wyjątkiem?

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0