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

Void Movement nie działa.

VPS Starter Arubacloud
0 głosów
284 wizyt
pytanie zadane 19 sierpnia 2018 w C i C++ przez Emil Panecki Bywalec (2,100 p.)
Witam! Mam problem z void'em Movement, konkretnie jak umieszczę go w main.cpp to nie dzieje się nic. Nie ma błędu ale też postać się nie rusza. ( Wydaje mi się że to przez to że tam, klasa gracza, jest "Entity e" prywatne a w main globalne ).

 

GitHub: https://github.com/OurProjectTeamSocket/RPG/tree/master/SFML-Games

1 odpowiedź

0 głosów
odpowiedź 19 sierpnia 2018 przez criss Mędrzec (172,590 p.)
wybrane 19 sierpnia 2018 przez Emil Panecki
 
Najlepsza
Dzieje się, ale nie rysujesz sprite-a którym poruszasz. Nie bardzo wiem czego oczekiwałeś. Jeśli myślałeś, że `Entity e` (to zadeklarowane w main.cpp) oraz `Entity Player::e` (member klasy Player zadeklarowany w Player.h) to te same obekty, to uświadamiam - nie, to nie są te same obiekty. Musiałeś czegoś bardzo mocno nie zrozumieć, żeby w ten sposób pomyśleć.
komentarz 19 sierpnia 2018 przez Emil Panecki Bywalec (2,100 p.)
Zmieniłem już e na Player::e; ( w Main Entity Player::e ) i dalej nie działa.
komentarz 19 sierpnia 2018 przez criss Mędrzec (172,590 p.)

Kompletnie nic nie rozumiesz. Przejdź jakiś kurs podstaw C++, bo za dużo nie rozumiesz, żeby można było ci coś tłumaczyć. Po prostu napisze ci co zrobić:

Wszystko w klasie Player zrób public. Teraz na szybko, żeby działało, potem to sobie zmienisz.
Cały plik main.cpp zamień na to:

#include <SFML/Graphics.hpp>
#include "ResourcePath.hpp"
#include "Player.hpp"

Player p;

int main(int, char const**)
{
    sf::RenderWindow window(sf::VideoMode(800, 600), "SFML window");

    sf::Image icon;
    if (!icon.loadFromFile(resourcePath() + "icon.png")) {
        return EXIT_FAILURE;
    }
    window.setIcon(icon.getSize().x, icon.getSize().y, icon.getPixelsPtr());

    p.e.SetTextures();
    p.e.SetView();
    
    while (window.isOpen())
    {
        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed) {
                window.close();
            }

            if (event.type == sf::Event::KeyPressed && event.key.code == sf::Keyboard::Escape) {
                window.close();
            }
        }

        p.Movement();
        
        window.clear();
        window.draw(p.e.PlayerSprite);
        window.setView(p.e.view);
        window.display();
    }

    return EXIT_SUCCESS;
}
komentarz 19 sierpnia 2018 przez criss Mędrzec (172,590 p.)
Dodatkowo wydaje mi się, że w Entity.cpp, linia 14 powinieneś resetować sprite rect, bo na start ma size {0,0}. Zamień na `PlayerSprite.setTexture(PlayerTxT, true);`
komentarz 19 sierpnia 2018 przez Emil Panecki Bywalec (2,100 p.)

@Criss, ... Idę się wieszać... W karzym projekcie mam podobne zmienne i miałem w jednym tak jak ty mi napisałeś... Sorry za marnowanie czasu.

komentarz 19 sierpnia 2018 przez criss Mędrzec (172,590 p.)
Spoko ale nie wieszaj się ok?? XD
komentarz 19 sierpnia 2018 przez Emil Panecki Bywalec (2,100 p.)
Spoko :)

Podobne pytania

0 głosów
3 odpowiedzi 401 wizyt
pytanie zadane 16 czerwca 2015 w C i C++ przez tarnasm Gaduła (3,030 p.)
0 głosów
0 odpowiedzi 117 wizyt
pytanie zadane 27 maja 2016 w C i C++ przez mrdropex Początkujący (430 p.)
0 głosów
2 odpowiedzi 209 wizyt

92,453 zapytań

141,262 odpowiedzi

319,088 komentarzy

61,854 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

Akademia Sekuraka 2024 zapewnia dostęp do minimum 15 szkoleń online z bezpieczeństwa IT oraz dostęp także do materiałów z edycji Sekurak Academy z roku 2023!

Przy zakupie możecie skorzystać z kodu: pasja-akademia - użyjcie go w koszyku, a uzyskacie rabat -30% na bilety w wersji "Standard"! Więcej informacji na temat akademii 2024 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!

...