No ale co Ty chcesz w końcu zrobić? Załadować bitmapę z zasobów programu, czy po prostu z pliku?
Chcę wczytać z pliku :)
To po co załączałeś te grafiki?
Chcę skompilować program, aby w efekcie utworzył się plik .exe, przez którego będzie mi wczytywało mapę "route.png" (renderowaną) i poruszające się po niej pojazdy.
Car1.png - gracz
car2.png - przeciwnik\komputer
Proszę. Treść odpowiedzialna za renderowanie mapy
I pojazdów
http://pastebin.com/pc8yvwsr
Udostępniam całość.
Jak wczytać tę mapę poprawnie?
loadTexture
zwraca NULL?
Robiłem tak, jak jest na filmie:
(w 28 minucie widać), jak jest na etapie wpisywania tych funkcji do programu. I działa.
Nie obchodzi mnie, co jest na tym filmie. Pytam Ciebie, co zwraca wspomniana funkcja.
NULL to brak informacji.
Więc wszędzie, gdzie jest, mam go usunąć/zastąpić innym?
Panie Złoty, toć to ja się pytam..
Chcę żeby to cudo działało. Byle jak, ale działało :(
Jak rozumiem, nie ładują Ci się grafiki, dlatego zadałem pytanie, co zwraca funkcja ładująca je z dysku. Dostałem jakąś dziwaczną odpowiedź, która nic mi nie mówi. Więc skąd mam wiedzieć, co nie działa?
Myślałem, że pytasz o definicję znaku "NULL".
-------------- Build: Debug in Babel Racer (compiler: GNU GCC Compiler)---------------
mingw32-g++.exe -Wall -fexceptions -g -c "C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\main.cpp" -o obj\Debug\main.o
In file included from C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\main.cpp0:
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png1: error: stray '\211' in program
‰PNG
^
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png1: error: stray '\32' in program
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png1: warning: null character(s) ignored
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png5: warning:** null** character(s) ignored
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png1: error: stray '\2' in program
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png1: error: stray '\205' in program
C:\Users\Bartek\Desktop\Studia\Semestr III\13 Zastosowania Programowania Obiektowego\Babel Racer\car1.png9: warning: **null **character(s) ignored
Ręce opadają :| Dlaczego cały czas masz załączone te grafiki?! Myślałem, że tę sprawę mamy już wyjaśnioną.
Usunąłem je, ale teraz program ma problem z deklaracją
Zamień znak -
na =
. Niektóre błędy mógłbyś sobie sam poprawiać, forum do tego nie jest potrzebne.
Zrobiłem inaczej.
Robiłem wcześniej program bez bibliotek SDL. Dołączyłem je po zrobieniu projektu, co było błędem.
Potem, jak już poszperałem w internecie: Od A do Z zainstalowałem wszystko, co niezbędne, łącznie z mingw32 (poprawnie).
Już wiem, o co chodzi.
Zacząłem program od początku, na każdym etapie produkcji - kompilując kod i sprawdzając, czy działa.
NO I DZIAŁA!
Wiem, marny sukces, ale dla takiego laika, jak ja, to (prawie, że) kamień milowy.
I teraz, uwaga!
Program działa, do momentu, gdy kompilowałem go z użyciem CPU.
Teraz zmieniłem na GPU , bo obraz zacinał, coś klatkowało.
W tym celu - pobrałem z internetu gotową część kodu, którą wkleiłem do programu. (http://lazyfoo.net/tutorials/SDL/07_texture_loading_and_rendering/index.php)
Problem jest z deklaracją. Again.
Zatrzymywałem film i wiersz, po wierszu sprawdzałem kod. Może ktoś z Was czegoś się dopatrzył?
A tutaj, część gry (gdy kompilowałem z CPU) :)
Już jedzie do przodu (w prawo).
Brakuje skrętu, przeciwników i punktów. Ale jest na dobrej drodze.
zamieniłem "printf" na strumień cout
I usunąłem: path.c_str i IMG_GetError. Nie wiem, czy dobrze zrobiłem. Czy te rzeczy są ważne.
Nie są ważne, jeśli nie interesuje Cię, jakiej tekstury program nie może załadować i jaki jest numer błędu.
Ekwiwalent z cout
może wyglądać tak:
cout << "Unable to create texture from " << path << " SDL error: " << SDL_GetError() << '\n';
Choć wystarczyłoby załączyć nagłówek <stdio.h>
, żeby kod z printf
zaczął się kompilować.
Chciałbym dodać coś od siebie do tego projektu i zrobić tak, żeby wciskając prawy przycisk - auto przyspieszało.
np. za skręt odpowiada to (w lewo):
if(keystate[SDL_SCANCODE_UP])
{
if(velY>-25)
{
velY=velY-0.6;
}
}
Nie trudno się domyślić, że:
if(keystate[SDL_SCANCODE_RIGHT]) - będzie aktywowany prawy przycisk. Analogicznie do hamowania: if(keystate[SDL_SCANCODE_LEFT]). Z tym już dam radę.
Jeżeli wiem, że:
rect2.x=loop200-(klatka6)%200;
Odpowiada za szybkość przesuwania obrazu.
Jak to skleić? : )