Lite mer kodexperiment
3 posters
Sida 1 av 1
Lite mer kodexperiment
Ladda ner zip-fil här.
Linux-binär (Ubuntu, om det spelar någon roll) finns i Debug-mappen.
Obs!
Varning: extremt fula texturer.
Koden fixar att:
* Ladda in kartor från en .map-fil (eget improviserat format. )
* Rita upp bakgrund och cachea den så att alla tiles inte måste ritas om varje gång.
* Rita upp objekt på skärmen.
Texturcachen funkar så att varje objekt som ska använda en textur kallar loadSurface, varpå cachen räknar upp antalet objekt som använder texturen (och laddar in den från fil om den inte redan fanns inladdad). När objektet inte längre behöver texturen kallar den freeSurface (t.ex. i destruktorn), och cachen räknar ned antalet objekt som använder texturen. Om inga objekt använder en textur tas den bort ur cachen och pixelvektorns minne frigörs.
Den här koden är mest som jag lekt runt med, och det är mycket troligt att den läggs på skräphögen när vi bestämt oss för perspektiv och battlesystem i spelet. Speciellt main.cpp är jävligt rörig.
Just det.. Texturfilerna måste vara ARGB-format, annars kan det bli problem. Jag har kört GIMP för att rita dem. Kunde välja att spara med XRGB där också, men då blev det ingenting. Antagligen sätts X:et till 0, och texturen blir helt genomskinlig.
Linux-binär (Ubuntu, om det spelar någon roll) finns i Debug-mappen.
Obs!
Varning: extremt fula texturer.
Koden fixar att:
* Ladda in kartor från en .map-fil (eget improviserat format. )
* Rita upp bakgrund och cachea den så att alla tiles inte måste ritas om varje gång.
* Rita upp objekt på skärmen.
Texturcachen funkar så att varje objekt som ska använda en textur kallar loadSurface, varpå cachen räknar upp antalet objekt som använder texturen (och laddar in den från fil om den inte redan fanns inladdad). När objektet inte längre behöver texturen kallar den freeSurface (t.ex. i destruktorn), och cachen räknar ned antalet objekt som använder texturen. Om inga objekt använder en textur tas den bort ur cachen och pixelvektorns minne frigörs.
Den här koden är mest som jag lekt runt med, och det är mycket troligt att den läggs på skräphögen när vi bestämt oss för perspektiv och battlesystem i spelet. Speciellt main.cpp är jävligt rörig.
Just det.. Texturfilerna måste vara ARGB-format, annars kan det bli problem. Jag har kört GIMP för att rita dem. Kunde välja att spara med XRGB där också, men då blev det ingenting. Antagligen sätts X:et till 0, och texturen blir helt genomskinlig.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Lite mer kodexperiment
Hmm jag kör ju windows(typ bara för spelen, och painter) så det kan vara därför...
Error:
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c undefined reference to `SDL_main' Loading_RPG 246 C/C++ Problem
Hmm får försöka lösa det senare när jag är pigg ^^
Går det inte att använda SDL_image (både på windows och på unix) så att man kan använda semi-transparenta png filer och liknande?
Vacker grafik i övrigt
Error:
/Users/hercules/trunk/SDL-1.2/./src/main/win32/SDL_win32_main.c undefined reference to `SDL_main' Loading_RPG 246 C/C++ Problem
Hmm får försöka lösa det senare när jag är pigg ^^
Går det inte att använda SDL_image (både på windows och på unix) så att man kan använda semi-transparenta png filer och liknande?
Vacker grafik i övrigt
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Lite mer kodexperiment
Ah, det är väl samma problem som någon hade med mitt förra exempel: jag glömmer argumenten i main-metoden. Verkar som att det inte funkar för alla att utelämna dem. Suckers.
Så, ändra
Så, ändra
- Kod:
int main()
- Kod:
int main(int argc, const char* argv[])
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Lite mer kodexperiment
SDL_Image, SDL_Mixer och SDL_TTF är ju nästan måsten, och ja de är tillägg.
netcat- Möglig vaniljpudding
- Antal inlägg : 12
Registreringsdatum : 08-07-24
Sv: Lite mer kodexperiment
Ja, SDL_image känns ju som ett måste. SDL_image* likaså. SDL_TTF däremot (fonts va?), det beror nog på vilken grafisk stil vi kör (rena sprites eller mer "tecknat"). Kör vi rena sprites bygger vi ju upp egen text i pixelgrafik (så att det passar in). Tycker jag iaf
*EDIT: SDL_mixer ska det ju stå
*EDIT: SDL_mixer ska det ju stå
Jo jag läste någonstans att man i SDL måste inkludera de argumenten för att det skall fungera överallt. Hm, men den biten hade jag redan gjort. Har du någon header/abstrakt main klass någonstans (hittar inget i sök, men får fortfarande samma fel)?QauNuckShin skrev:Ah, det är väl samma problem som någon hade med mitt förra exempel: jag glömmer argumenten i main-metoden.
Ah, titta där.. SDL_Image, alltså. Är det en del av vanliga SDL? Jag verkar inte ha funktionen, och den här sidan verkar antyda att det är ett tillägg.
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Lite mer kodexperiment
dark_volvagia skrev:Jo jag läste någonstans att man i SDL måste inkludera de argumenten för att det skall fungera överallt. Hm, men den biten hade jag redan gjort. Har du någon header/abstrakt main klass någonstans (hittar inget i sök, men får fortfarande samma fel)?QauNuckShin skrev:Ah, det är väl samma problem som någon hade med mitt förra exempel: jag glömmer argumenten i main-metoden.
Ah, titta där.. SDL_Image, alltså. Är det en del av vanliga SDL? Jag verkar inte ha funktionen, och den här sidan verkar antyda att det är ett tillägg.
Ja, SDL_image känns ju som ett måste. SDL_image likaså. SDL_TTF däremot (fonts va?), det beror nog på vilken grafisk stil vi kör (rena sprites eller mer "tecknat"). Kör vi rena sprites bygger vi ju upp egen text i pixelgrafik (så att det passar in).
Finns gott om "pixliga" fonter dock, kika igenom "Pixel/Bitmap"-sektionen på dafont.com exempelvis. Och anledningen till att man måste ha med argc/argv i main för att det skall funka bra med SDL är för att SDL definierar en egen main-funktion på vissa plattformar (windows och mac t.ex.), som då anropar den vanliga mainfunktionen och förväntar sig de argumenten.
netcat- Möglig vaniljpudding
- Antal inlägg : 12
Registreringsdatum : 08-07-24
Sv: Lite mer kodexperiment
Hm, efter mycket slit insåg jag varför det blev fel trots justeringar. Av någon anledning hade det inte hjälpt att trycka ctrl+s
Okej, såg ut att fungera bra i vilket fall. Rörigt och lite smått jobbigt att sätta sig in i dock
Okej, såg ut att fungera bra i vilket fall. Rörigt och lite smått jobbigt att sätta sig in i dock
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Lite mer kodexperiment
Fast de fontsen är väll inte gratis? Det är inte svårt att göra egna fonts däremot. Har gjort ett par tidigare som är fullt läsbara åtminstone .netcat skrev:Finns gott om "pixliga" fonter dock, kika igenom "Pixel/Bitmap"-sektionen på dafont.com exempelvis. Och anledningen till att man måste ha med argc/argv i main för att det skall funka bra med SDL är för att SDL definierar en egen main-funktion på vissa plattformar (windows och mac t.ex.), som då anropar den vanliga mainfunktionen och förväntar sig de argumenten.
Okej, då känner man sig genast klokare kring SDL. Tackar
dark_volvagia- Admin
- Antal inlägg : 163
Registreringsdatum : 08-07-21
Ålder : 35
Sv: Lite mer kodexperiment
Okej. Får skaffa dem då.netcat skrev:SDL_Image, SDL_Mixer och SDL_TTF är ju nästan måsten, och ja de är tillägg.
...Hah, de fanns i Ubuntus repository.
dark_volvagia skrev:Okej, såg ut att fungera bra i vilket fall. Rörigt och lite smått jobbigt att sätta sig in i dock
Ja, jag vet. Som sagt, mycket av koden (speciellt den i main.cpp) kommer att slängas på skräphögen. Det enda jag är någorlunda säker på att vi kommer ha användning för är TextureCache-klassen.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sv: Lite mer kodexperiment
dark_volvagia skrev:
Fast de fontsen är väll inte gratis? Det är inte svårt att göra egna fonts däremot. Har gjort ett par tidigare som är fullt läsbara åtminstone .
Okej, då känner man sig genast klokare kring SDL. Tackar
Mjoo, fontarna på dafont är gratis. Sen kanske man inte "får" använda alla beroende på olika licenser eller whatever.
netcat- Möglig vaniljpudding
- Antal inlägg : 12
Registreringsdatum : 08-07-24
Sv: Lite mer kodexperiment
Tror nog det är bäst att bara göra egna. Så slipper man bråka med licenser och såntdär. Dessutom får man ju en lite egen stil på det hela.
QauNuckShin- Kodapa
- Antal inlägg : 70
Registreringsdatum : 08-07-21
Ålder : 37
Ort : Lund
Sida 1 av 1
Behörigheter i detta forum:
Du kan inte svara på inlägg i det här forumet