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

Sfml kropka zamiast teksu oraz wyjątek

Object Storage Arubacloud
+1 głos
194 wizyt
pytanie zadane 1 sierpnia 2020 w C i C++ przez NieMaJuzNazw Użytkownik (890 p.)
#include <SFML/Audio.hpp>
#include <SFML/Graphics.hpp>
#include <iostream>



using namespace sf;
using namespace std;

int scor = 0;


int main()
{
    

    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(to_string(scor));


    // 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 <= 700) {
           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 "wysPunkty"
        window.draw(punkty);
        // Wyświetla elementy na oknie
        window.display();
    }
    return 0;
}

Witam. Gdy próbuję uruchomić ten kod to występują 2 błędy. Najpierw występuje wyjątek Nieobsłużony wyjątek w lokalizacji 0x00007FFA6583A799 w Smfldziałaj.exe: wyjątek języka Microsoft C++: std::length_error w lokalizacji pamięci 0x00000001000FEBF0.: wystąpił wyjątek  obok punkty.setString(to_string(scor)); Drugi błąd występuje jeśli zamiast to_string(scor) dam np. "test" to zamiast napisu wyświetla się malutka kropka. Proszę o pomoc, spędziłem 2 lub 3h szukając sposobu na naprawę tego lecz nic nie znalazłem.

komentarz 1 sierpnia 2020 przez VBService Ekspert (253,420 p.)
edycja 1 sierpnia 2020 przez VBService

Nie do końca w temacie, ale może się Tobie przydać. wink


Class for loading and manipulating character fonts: 
#include <Font.hpp> [ Documentation of SFML 2.5.1 ]

Graphical text that can be drawn to a render target
#include <Text.hpp> [ Documentation of SFML 2.5.1 ]

1 odpowiedź

0 głosów
odpowiedź 1 sierpnia 2020 przez VBService Ekspert (253,420 p.)
edycja 1 sierpnia 2020 przez VBService

Displaying a number with sf::string wink

Przeanalizuj sobie ten kod, powinieneś znaleść ciekawe podpowiedzi: Text::SetString Examples

 

komentarz 1 sierpnia 2020 przez NieMaJuzNazw Użytkownik (890 p.)
Tylko, że w tym pierwszym linku używają polecenia setText którego nie ma w sfml 2.5
komentarz 1 sierpnia 2020 przez NieMaJuzNazw Użytkownik (890 p.)

@VBService, a w tym 2 kodzie nie rozumiem wogole gdzie mają ustawione jaki tekst ma byc pokazany..

 

komentarz 1 sierpnia 2020 przez VBService Ekspert (253,420 p.)

Masz tu: wink

komentarz 1 sierpnia 2020 przez NieMaJuzNazw Użytkownik (890 p.)
Więc widzę tak:

Tworzą element typu text o nazwie scoreDisplayText, ustawiają wielkość tekstu na TextCharSize, wygląda to na zmienną, potem rysują to A na końcu w napisać końcowych wyświetlają ScoreDisplayText jako element Gameover czyli pod koniec gry. Gdzie tu np. 1 punkt, 2 3 itp

Podobne pytania

0 głosów
2 odpowiedzi 554 wizyt
pytanie zadane 18 kwietnia 2020 w C i C++ przez Bartosz Paterek Początkujący (410 p.)
0 głosów
0 odpowiedzi 108 wizyt
pytanie zadane 6 maja 2020 w Java przez Schulz0123 Początkujący (330 p.)
0 głosów
0 odpowiedzi 103 wizyt
pytanie zadane 5 maja 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 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!

...