Instalacja bibliotek SDL dla Codeblocks

0

Witam.
W internecie znalazłem film:

gdzie autor zaimplementował biblioteki SDL.
Więc postanowiłem je pobrać z tej strony: https://www.libsdl.org/download-1.2.php (chodzi o plik: SDL-devel-1.2.15-VC) - nawet nie wiem, czy dobra paczka.
Wzorując się na tym temacie (krok po kroku): http://cpp0x.pl/kursy/Kurs-SDL-C++/Instalacja/93
Utknąłem w jednym miejscu(w Visual Studio), gdzie trzeba wykonać następujący krok ->

  1. Przechodzimy do zakładki Project and Solutions, a potem do VC Directories.
  2. Potem rozwijamy menu znajdujące się pod napisem Show directories for i wybieramy Include files.
    I tej drugiej części właśnie nie mam. Zamiast tego, wyświetla mi się to:
    7a58952855.png

Zdaję sobie sprawę z banalności zadania; Przeszukałem kilka stron po angielsku, jeden temat w języku ojczystym - niestety nie dałem rady nic wywnioskować. (np. ten temat: http://forum.warsztat.gd/index.php?topic=16305.0)

0

Najpierw załąduj/stwórz projekt.

0

Przepraszam. Chodzi o to, że jak zaimplementuję te biblioteki w Visual Studio, to w CodeBlocks nie bd ich widział, tak?
Zależy mi na tym, żebym mógł poprawnie skompilować własnie w CB, aby odpaliła się konsola i gra, jak na filmie.

0

Jak zaimplementuje? :| Jeśli chcesz używać SDL-a w Code::Blocks z MinGW, to ściągnij wersję dla MinGW i dodaj ją do projektu.

0

Zaimplementuję, tzn. że dodam.

Jeśli chcesz używać SDL-a w Code::Blocks z MinGW, to ściągnij wersję dla MinGW i dodaj ją do projektu.

Muszę poszukać działu dla bardziej początkujących niż newbie :D

@Edit:
http://www.gefa.cba.pl/index.php/sdl_kurs-0-wgranie-bibiotek-do-codeblocks-12-xx/
W kroku 5 w miejscu "Other linker options" - widnieją różne pliczki.
U mnie nic nie ma. Wygląda to tak:
9dbeee23fb.png

Pliki SDL wypakowane w głównym katalogu dysku C:
0441633eab.png

0

U mnie nic nie ma.

:D Bo żeby coś tam było, musisz te "pliczki" tam wpisać.

ps. typ spod tego linka pisze tam, że to są flagi, a to nie są żadne flagi, tylko komenda -l<nazwa bilioteki>, która instruuje linker do dołączenia podanej bilioteki podczas konsolidacji. W zasadzie od tego jest okno po lewej.

0

Przepraszam, więc co muszę dodać?
e60428ef34.png

0

Dodaj to, co masz w opisie spod tego linka, czyli SDL2main.a, SDL2.a (i ewentualnie SDL_image.a, i SDL_ttf.a).

0

a517c9441e.png
2)
c13faa11c0.png
3)
66cfe88331.png
4)
35adcdfc35.png

I nie działa...

1

Zapomniałeś dodać ścieżkę do katalogu z nagłówkami (zakładka Search directories -> Compiler, ostatni obrazek w opisie spod linka)

0

Dziękuję bardzo, bardzo serdecznie. W końcu mogę się cieszyć bibliotekami SDL.
Jak już pisałem - wzorowałem się na pewnym kodzie ze strony.
Rozumiem, co od czego tam jest, za co odpowiada.
Nie mogę jednak poradzić sobie z tym:

a31aa9d6d8.png

Rozumiem, że coś ze średnikiem. Usuwałem go, dodawałem w różne miejsca - no i nie wiem. Myślałem, że konstrukcja jest dobra.

#include <SDL2/SDL.h>

class klasa_fps
{
public:

    int poczatek;
    int koniec;
    int roznica;
    float delay;
    int klatka=0;
    int fps=60
    void start()
    {
        poczatek=SDL_GetTicks();
    }

    void end()
    {
        koniec=SDL_GetTicks();
        roznica=koniec-poczatek;
        delay=(1000.0/(float)fps)-roznica;
        if(delay>0)
        {
            SDL_Delay(delay);
        }
    }
};
0

Patrz definicja pola fps.

0

Kłopot z "fps.cpp". Mam dużo błędów. Nie deklaruje sporej części plików, np.:
"SDL_Texture"
"rect"
"render"
"SDL_RenderCopy"
A są zadeklarowane w "main.cpp" i gdy patrzę w: Projects -> Sources -> są trzy pliki: main.cpp, fps.cpp, klasy.cpp.
Co do definicji pola fps: Kompendium -> C\C++ Gdzie dalej znajdę? :)

Mam jeszcze jakiś błąd podczas uruchomienia samego programu o treści: "Wystąpiły problemy z przesłaniem polecenia do programu."
Ale raczej nie ma on wpływu na ost. kompilację.

screenshot-20161214175746.png

0

Co do definicji pola fps: Kompendium -> C\C++ Gdzie dalej znajdę?

Średnika zapomniałeś.

0

Przepraszam, nie wiem, w odniesieniu do czego napisałeś.
Uzupełniłem wcześniej średniki w fps.cpp (nie korzystając z kompendium, bo nie wiem właśnie, gdzie jest).

0

W odniesieniu do tego posta -> Instalacja bibliotek SDL dla Codeblocks

0

Przepraszam Cię. Wiem, że udzielając się, chcesz mi pomóc nieodpłatnie. Doceniam to. Naprawdę.
Gdybym wiedział, że mieszkasz gdzieś nie daleko - odwdzięczyłbym się z przyjemnością, jakimś podarunkiem, szczerym uśmiechem, pomocą w dziedzinie, która jest moją mocniejszą stroną, niżeli programowanie obiektowe.
Niestety, nie mam programistów w moim otoczeniu; Nie mam do kogo się poradzić o pomoc. To forum jest jedynym zalążkiem internetu, w którym próbuję uzyskać tę pomoc.
Zdaję sobie także sprawę, że jestem nie pierwszym (żeby skromnie napisać) GAMONIEM programowania, który nie zna prawidłowej konstrukcji pliku: "fps.cpp", tylko naparza metodą prób i błędów, z myślą - a może się uda.

Paradoks jest taki, że człowiek raczkujący w zakresie "Obiektowego C++", nie musi być idiotą, ale pragnie - aby spróbować wytłumaczyć mu w taki sposób.

Więc:
Problem jest z deklaracją, jak na niżej zamieszczonym zdjęciu; Czy pomoże mi ktoś?

screenshot-20161214225208.png

0

Załączyłeś odpowiednie nagłówki SDL-a do klasy.cpp?

0

Tylko te podstawowe:
klasy.cpp

#include <iostream>
#include <vector>

W pliku: main.cpp, mam:

#include <iostream>
#include <vector>
#include <SDL2/SDL.h>
#include <SDL2/SDL_image.h>
#include <SDL2/SDL_mixer.h>
#include <SDL2/SDL_ttf.h>
#include <sstream>
#include "car1.png"
#include "car2.png"
#include "route.png"

using namespace std;

#include "fps.cpp"
#include "klasy.cpp"

a w fps.cpp

#include <SDL2/SDL.h>

@Edit:
Przepraszam, podpowiesz mi, jakie mam załączyć?

0

screenshot-20161215093750.png
Nie rozumiem, dlaczego komunikat o brakujących bibliotekach wyskakuje. Przecież wszystkie są pobrane. Zarówno wersja 1.2 jak i 2.0

0

Jeśli w klasy.cpp używasz SDL-a, to powinieneś tam załączyć nagłówek z definicjami/deklaracjami typów/struktur/funkcji tej biblioteki (ewentualnie załączyć inny nagłówek, który to robi). Jaki plik powinieneś tam załączyć - nie wiem, ale podejrzewam, że <SDL2/SDL.h>. Zresztą jest dokumentacja, czytaj ją.

Przecież wszystkie są pobrane.

I co z tego, że są pobrane? Trzeba je jeszcze dodać. Sprawdź, czy w Search directories -> Compiler masz poustawiane ścieżki do nagłówków SDL-a v2.

0

screenshot-20161221180958.png

screenshot-20161221181006.png

Jak widać, ścieżki są ustawione :/

0

Z czystej ciekawości, stworzyłem nowy program i przy próbie skompilowania:

screenshot-20161221181929.png

Mam jeden, wielki syf w tym programie.
Jakieś biblioteki MinGW, Python27, biblioteki SDL dziwnie poinstalowane.

Chyba usunę to wszystko i zainstaluję CodeBlocks na nowo + same biblioteki SDL.
Przydałby się schemat poprawnie zainstalowanego programu z tym dodatkiem.

1

Odnośnie wcześniejszego posta: internety mówią, że SDL_Image.h to plik z oddzielnej biblioteki, musisz ją sobie ściągnąć i dodać do projektu.

Jakieś biblioteki MinGW ...

MinGW to kompilator, więc jakieś biblioteki są niezbędne ;)

0

No tak, jakieś. Tylko chodzi o to, aby zrobić to umiejętnie. Pobrać rzeczy, które nie będą się gryzły z innymi = )

0

Biblioteki poinstalowane. Prawidłowo. Program powinien też kompilować.

screenshot-20170104121727.png
Zauważyłem, że coś nie tak, z plikiem Car1.png, ale co to może oznaczać?

0

Co Ty, plik .png załączyłeś jak zwykły nagłówek? :|

0

Nie tak się załącza pliki z zewnątrz:

#include "car1.png"
#include "car2.png"
#include "route.png"

??

1

Oczywiście, że nie. Wszelkie bitmapy, ikony, pliki audio/video i inne rzeczy, które nie są plikami źródłowymi, dodajesz do zasobów programu. Inna opcja to użycie jakiegoś programu, który wygeneruje tablicę char[] z zawartością bitmapy, i wtedy możesz taki plik zawrzeć poprzez #include. Musisz sprawdzić, czy w SDL-u jest możliwość czytania bitmap z pamięci (pewnie jest, ale sprawdzić warto).

0

http://cpp0x.pl/dokumentacja/SDL-1-2/SDL_LoadBMP/544

To może przerobić na BMP ?

Choć widziałem na filmie, że programista używał właśnie tego formatu.
Nie wspominał jednak o programie, który wspomagałby CB w takim stopniu.

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