• 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

Aruba Cloud - Virtual Private Server VPS
+1 głos
309 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 (256,600 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 (256,600 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 (256,600 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 850 wizyt
pytanie zadane 18 kwietnia 2020 w C i C++ przez Bartosz Paterek Początkujący (410 p.)
0 głosów
0 odpowiedzi 251 wizyt
pytanie zadane 6 maja 2020 w Java przez Schulz0123 Początkujący (330 p.)
0 głosów
0 odpowiedzi 143 wizyt
pytanie zadane 5 maja 2020 w C i C++ przez amtrax Dyskutant (9,630 p.)

93,335 zapytań

142,328 odpowiedzi

322,407 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...