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

Kłopoty z Viev SFML. funkcja move() nie odpowiada.

0 głosów
271 wizyt
pytanie zadane 4 kwietnia 2017 w C i C++ przez jkdfklgdf Nałogowiec (32,020 p.)

Dlaczego to nie działa???

Ten od ma pszesuwać kamerę za pomocą strzałek ale nie działa.

RectangleShape pole(Vector2f(25,50));
pole.setFillColor(Color(200,0,0,90));
pole.setOutlineThickness(-2.5);
pole.setOutlineColor(Color(200,0,0));

while(okno.isOpen())
{
RenderWindow okno(VideoMode(750,730,32),"Sala-Projekt",Style::Fullscreen);

sf::View kamera = okno.getDefaultView();
okno.setView(kamera);
while(okno.isOpen())
{
Event event;
while(okno.pollEvent(event))
{
if(Keyboard::isKeyPressed(Keyboard::Left))
{
kamera.move(-100,0);
}
if(Keyboard::isKeyPressed(Keyboard::Right))
{
kamera.move(100,0);
}
if(Keyboard::isKeyPressed(Keyboard::Up))
{
kamera.move(0,100);
}
if(Keyboard::isKeyPressed(Keyboard::Down))
{
kamera.move(0,-100);
}
if(event.type==Event::Closed)okno.close();
}
okno.clear();
okno.draw(pole);
okno.display();
}
return 0;

 

2 odpowiedzi

+1 głos
odpowiedź 4 kwietnia 2017 przez niezalogowany
wybrane 4 kwietnia 2017 przez jkdfklgdf
 
Najlepsza

Nie czujesz wstydu za kod, który podałeś?

#include <SFML/Graphics.hpp>

using namespace sf;

int main()
{
    RenderWindow okno(VideoMode(750,730,32),"Sala-Projekt");
    okno.setFramerateLimit(60);
    sf::Clock clock;

    sf::View kamera = okno.getDefaultView();

    RectangleShape pole(Vector2f(25,50));
    pole.setFillColor(Color(200,0,0,90));
    pole.setOutlineThickness(-2.5);
    pole.setOutlineColor(Color(200,0,0));

    while(okno.isOpen())
    {
        Event event;
        while(okno.pollEvent(event))
        {
            if(event.type==Event::Closed)okno.close();
        }

        double dt = clock.restart().asSeconds();

        double d = 11*dt;
        if(Keyboard::isKeyPressed(Keyboard::Left))
        {
            kamera.move(-d,0);
        }
        if(Keyboard::isKeyPressed(Keyboard::Right))
        {
            kamera.move(d,0);
        }
        if(Keyboard::isKeyPressed(Keyboard::Up))
        {
            kamera.move(0,d);
        }
        if(Keyboard::isKeyPressed(Keyboard::Down))
        {
            kamera.move(0,-d);
        }


        okno.setView(kamera);

        okno.clear();
        okno.draw(pole);
        okno.display();
    }

    return 0;
}

Chodzi o coś takiego?

komentarz 4 kwietnia 2017 przez jkdfklgdf Nałogowiec (32,020 p.)
To jest wycinek kodu
komentarz 4 kwietnia 2017 przez niezalogowany
Wycinek czy nie - kod należy formatować. Gdzie są odstępy? Co robi druga pętla while(okno.isOpen())? Jeden wielki bałagan, który najpierw trzeba naprawić zanim się zrozumie co autor miał na myśli.
+1 głos
odpowiedź 4 kwietnia 2017 przez Ehlert Ekspert (215,230 p.)
100px per frame. Nie za dużo jak na test gdzie chcesz zobaczyć efekty?
komentarz 4 kwietnia 2017 przez jkdfklgdf Nałogowiec (32,020 p.)
CO???

Wybacz ale nic z tego nie rozumiem:(

Podobne pytania

0 głosów
1 odpowiedź 196 wizyt
pytanie zadane 2 maja 2019 w C i C++ przez Gryczny Początkujący (320 p.)
0 głosów
1 odpowiedź 838 wizyt
pytanie zadane 6 września 2021 w C i C++ przez tonn204 Mądrala (7,470 p.)
0 głosów
1 odpowiedź 407 wizyt
pytanie zadane 22 grudnia 2018 w C i C++ przez NintyS Użytkownik (940 p.)

93,733 zapytań

142,669 odpowiedzi

323,287 komentarzy

63,293 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...