Forum Sveta kompjutera

Nazad   Forum Sveta kompjutera > Test Run > Programiranje

Programiranje Programski jezici, tehnike, alatke...

Odgovor
 
Alatke vezane za temu Vrste prikaza
Stara 23.4.2006, 12:21   #1
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom SDL , problemi , preporuke i ostalo

Evo teme za sve one koje interesuje SDL. Dakle ako vas nešto interesuje, ili znate neku caku ovde je pravo mesto za priču!

Moram da priznam da me je na otvaranje ove teme naterala muka, inače mi ne bi pala na pamet.

Naime imam problem , ne toliko sa SDL-om ( koji sam tek počeo da učim , BTW, pa se unapred izvinjavam na glupostima koje bih mogao da izvalim ), koliko sa DevC++ -om. Problem je sledeći: Kako naterati bloody kompajler ( zapravo , mislim da je problem u linkeru ), da iskompajlira program koji koristi SDL biblioteke ? Probao sam stvarno sve i svašta , pratio uputstva sa Cone3D, ali nema uspeha. Pa vas lepo molim, ako neko zna rešenje, hteo bih da se sklonim sa VisualC++ -a ( u kom SDL lepo radi ).
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 23.4.2006, 15:39   #2
void*
Član
 
Član od: 14.12.2005.
Poruke: 72
Zahvalnice: 0
Zahvaljeno 14 puta na 2 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Problem verovatno jeste u linkeru - reč je o nekompatibilnosti .lib i .a fajlova. Nisam koristio SDL sa DevC++-om ali su slični problemi i sa DirectX-om. Mada, ako si pratio sva uputstva onda bi trebalo da imaš verziju prilagođenu MinGW kompajleru koja dolazi sa odgovarajućim .a fajlovima umesto .lib. Napiši sta ti kompajler/linker prijavljuju, ovako napamet je teško dati neki savet...
void* je offline   Odgovor sa citatom ove poruke
Stara 24.4.2006, 17:50   #3
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Heh, rešio problem. Našao na netu DevPakove za DevC++ ( konkretno SDL DevPak na DevPaks.org ). Instalorao i dobio novi template za projekte , kaže SDL . Napravim taj projekat i gle čuda, sada nema problema.

Gledao sam malo opcije i zaista stoje parametri za linker : -lmingw32 -lSDLmain -lSDL, ali u delu za kompajler stoji nešto u fazonu main=SDL_main.

Sada imam drugi problem.

Uzeo sam funkciju DrawPixel ( crta piksel na određenu površinu ), ali mi se čini da cela stvar stoji naopako. X-osa je OK, ali Y je izvrnuta ( npr. imam prozor 800*800, i stavim koordinate piksela (100,100), on ga crta u gornjem levom uglu, 100 piksela od ivica ekrana, valjda ). Šta sad do vraga da radim? Da li da pišem funkciju koja izvrće sadržaj moje površine ( mislim na podatak tipa SDL_Surface* ), ili je problem u funkciji SDL_Flip ( mada ne bi trebalo )?
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 24.4.2006, 19:21   #4
void*
Član
 
Član od: 14.12.2005.
Poruke: 72
Zahvalnice: 0
Zahvaljeno 14 puta na 2 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Citat:
M.Silenus kaže:
Gledao sam malo opcije i zaista stoje parametri za linker : -lmingw32 -lSDLmain -lSDL, ali u delu za kompajler stoji nešto u fazonu main=SDL_main.
SDL koristi par pretprocesorskih trikova kako bi obezbedio da na svakoj platformi program počinje sa main(...). Otvori SDL.h i pročačkaj malo ako te zanima...

Citat:
M.Silenus kaže:
Uzeo sam funkciju DrawPixel ( crta piksel na određenu površinu ), ali mi se čini da cela stvar stoji naopako. X-osa je OK, ali Y je izvrnuta
To je potpuno normalno. Još od starog dobrog dos-a i legendarnog moda 13h (320x200 u 256 boja ;) )stvari funkcionišu na taj način: gornji levi ugao je, što bi rekli, koordinatni početak. Ako si očekivao bilo šta drugačije - bio si u zabludi :) Možda postoji mogućnost da se stvar dovede na ono što hoćeš - konsultuj dokumentaciju. U najgorem slučaju napiši svoju CrtajPiksel funkciju na bazi DrawPixel-a.

Poslednja ispravka: void* (24.4.2006 u 19:33)
void* je offline   Odgovor sa citatom ove poruke
Stara 1.12.2006, 15:21   #5
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Opet ja sa svojim, ahhm, problemima...

Čisto zezanja radi, napisao sam programčić koji rotira jednu tačku i iscrtava je, pri tom sve iscrtava na ekran ( što je, je li, logično ). Napišem sve po redu, i pokrenem program i .... spirala?! Kakva sad šugava spirala, trebalo je da bude krug ( malo preciznije, trebalo bi da budu tačke koje pripadaju nekom krugu, a ne spirali ).

Posle ovoga sledi proveravanje formula, dodavao nove varijable, brisao, sa direktnog računanja cos i sin prešao na tablice ( koje program sam pravi pa rezultat ne bi trebalo da se razlikuje, ali sam malčice pošizeo pa... ).

Dakle, evo ga kod, pa ako može iko da mi kaže u čemu je do đavola problem?

PS. nisam hteo da otvaram novu temu, a rađeno je u SDL-u, pa otud ovde....
Priloženi fajlovi
Tip fajla: txt main.txt (4,2 KB, 41 puta viđeno)
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 1.12.2006, 18:49   #6
VojaM
Ad Ministrator
 
Avatar korisnika VojaM
 
Član od: 19.8.2005.
Lokacija: Beograd, SK
Poruke: 7.280
Zahvalnice: 29
Zahvaljeno 3.041 puta na 1.544 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Što si se tako upetljeo u te formule sa polarnim koordinatama? Zašto naprosto prvu tačku ne postaviš u polarnim koordinatama i svaku sledeću ne izračunavaš apsolutno, umesto da izračunavaš u odnosu na prethodnu tačku? Ne mogu sada da ti tačno nađem grešku, ali očigledno je da ti se u svakoj iteraciji dužina radijus-vektora smanjuje, pa otuda spirala.

Pređi ti, lepo, na najprostije apsolutne polarne koordinate. Odredi poluprečnik i početni ugao i izračunaj koordinate početne tačke kao Xcentra+r*cos(n) i Ycentra+r*sin(n) (unesi korekciju znaka y koordinate po potrebi, zbog položaja koordinatnog početka, mene mrzi). Onda naprosto uzimaj sledeće n i tako računaj koordinate sledeće tačke u kružnici sve dok ne nacrtaš celu kružnicu.
VojaM je offline   Odgovor sa citatom ove poruke
Stara 1.12.2006, 20:57   #7
priest (of_the_moon)
Član
 
Član od: 4.3.2006.
Lokacija: grad u oblacima
Poruke: 288
Zahvalnice: 1
Zahvaljeno 5 puta na 4 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Formule tj funkcije za crtanje liče na sve samo ne na kružnicu.

Probaj da kreneš od ovog koda konkretno:
Kod:
float fStep = PI / 32.0f;
float fAngle = PI * 2.0f;
float fRadius = 10.0;

for(float fDegree = 0; fDegree < fAngle; fDegree += fStep)
{
	float x = centar_x + float(cos(fDegree)) * fRadius;
	float y = centar_y + float(sin(fDegree)) * fRadius;


	// draw point (x, y)
}
Trebalo bi da se preradi za "tabličnu" trigonometriju.
priest (of_the_moon) je offline   Odgovor sa citatom ove poruke
Stara 2.12.2006, 14:32   #8
VojaM
Ad Ministrator
 
Avatar korisnika VojaM
 
Član od: 19.8.2005.
Lokacija: Beograd, SK
Poruke: 7.280
Zahvalnice: 29
Zahvaljeno 3.041 puta na 1.544 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Uh, dobro je, nisam omašio formule
Pitao sam se da li se dobro sećam. Mnogo je prošlo od vremena kad sam na Amigi crtao analogni sat sa sve brojčanikom i sekundarom
I to sve iz GFA-Basica
VojaM je offline   Odgovor sa citatom ove poruke
Stara 4.12.2006, 14:39   #9
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Vojo, genije!

Čim si spomenuo smanjivanje , palo mi je na pamet šta bi moglo da bude, i ispalo je da sam u pravu.
Evo gde je problem:
Kod:
spoint1.x=center.x+(spoint1.x-center.x)*cos(phi)-(spoint1.y-center.y)*sin(phi);
spoint1.y=center.y+(spoint1.x-center.x)*sin(phi)+(spoint1.y-center.y)*cos(phi);
Dakle, u formuli za računanje nope pozicije rotirane tačke, za x i y koordinatu koriste se vrednosti i x i y, konkretno:
Kod:
x'=cos(phi)*x-sin(phi)*y
y'=sin(phi)*x+cos(phi)*y
gde je phi ugao rotacije, (x,y) stare koordinate i (x',y') nove. Napomena ovde je reč o rotaciji oko koordinatnog početka, a ne oko proizvoljne tačke. Rotacija za ugao phi oko tačke (Cx,Cy) bi bila opisana formulama:
Kod:
x'=Cx+cos(phi)*(x-Cx)-sin(phi)*(y-Cy)
y'=Cy+sin(phi)*(x-Cx)+cos(phi)*(y-Cy)
Pa gde je onda problem? Problem je što u računanju y koordinate u svom kodu koristim x', a ne x ( što je inače jedan od najglupjih propusta koji programer može da napravi... ).
Sledi ispravna verzija:
Kod:
temp.x=center.x+(spoint1.x-center.x)*cos(phi)-(spoint1.y-center.y)*sin(phi);
temp.y=center.y+(spoint1.x-center.x)*sin(phi)+(spoint1.y-center.y)*cos(phi);
spoint1.x=temp.x;
spoint1.y=temp.y;
PS. Svešteniče, zanimljiva ideja, proučiću to čudo još malo.
PPS. Eh, da, nije mi namera da napravim program koji iscrtava krug, već sam prosto hteo isprobam nešto iz Linearne Algebre...
PPPS. Izvinjavam se ako sam nekoga udavio ovolikom pričom.
PPPPS. Preterah sa Post Scriptum-om
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 4.12.2006, 18:02   #10
VojaM
Ad Ministrator
 
Avatar korisnika VojaM
 
Član od: 19.8.2005.
Lokacija: Beograd, SK
Poruke: 7.280
Zahvalnice: 29
Zahvaljeno 3.041 puta na 1.544 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Citat:
M.Silenus kaže:
PS. Svešteniče, zanimljiva ideja, proučiću to čudo još malo.
PPS. Eh, da, nije mi namera da napravim program koji iscrtava krug, već sam prosto hteo isprobam nešto iz Linearne Algebre...
PPPS. Izvinjavam se ako sam nekoga udavio ovolikom pričom.
PPPPS. Preterah sa Post Scriptum-om
A i nije "post skriptum" jer nije "posle potpisa" (prevod na srpski latinskog izraza)
VojaM je offline   Odgovor sa citatom ove poruke
Stara 5.12.2006, 17:47   #11
al0cunit
Član
 
Član od: 1.8.2006.
Lokacija: Loznica/Sekovici
Poruke: 237
Zahvalnice: 15
Zahvaljeno 0 puta na 0 poruka
Slanje poruke preko MSN-a korisniku al0cunit
Određen forumom Re: SDL , problemi , preporuke i ostalo

e nije ni posle potpisa .. .. vec "posle napisanog" ili "posle teksta"
al0cunit je offline   Odgovor sa citatom ove poruke
Stara 7.12.2006, 11:17   #12
M.Silenus
Veteran
 
Član od: 27.12.2005.
Lokacija: Vremenske Grobnice, Hiperion
Poruke: 680
Zahvalnice: 99
Zahvaljeno 124 puta na 82 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Latinski, eh...
Sve bi bilo u redu da ga nisam malčice zaboravio...
M.Silenus je offline   Odgovor sa citatom ove poruke
Stara 8.2.2007, 19:09   #13
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: SDL , problemi , preporuke i ostalo

Krenuo sam da pravim 2D engine.Od biblioteka koristi SDL | SDL_image | SDL_mixer | SDL_ttf

Engine je nekih 10-20%(ako je i toliko) uradjen tj. uradjeno je sledece:
1. ReaperCore - Samo jezgro sluzi za inicijalizaciju svih SDL sistema, pravljenje prozora i pokretanje aplikacije.
2. EventHandler - Klasa koja sluzi za monitoring eventa.(slicna kao kod Irrlichta)
3. Timer - Samo ime kaze.
4. SpriteBase - Baza sa Sprajtove.Sadrzi slike(frejmove) i podatke o njima.
5. Sprite - Tipican sprajt.Potrebna baza sprajtova za pravljenje
6. TrueTypeFont - Font klasa koja pravi i renderuje neki tekst(iz TTF).
7. Sound - Klasa koja sadrzi neki zvuk i po potrebi ga pusta.
8. Music - Klasa koja sadrzi muziku i funkcije koje su potrebne za reprodukciju.

Sve je ovo lepo sto sam napravio ali uvek postoje problemi zar ne? Tako i ja imam jedan. Tice se klase Sprite. Pri pravljnju je koriscena Cone-ova tehnika i to radi. Problem se javlja kada napravim dva sprajta.Kada renderujem prvi sprajt onda sve ide u redu. Kada renderujem prvi i drugi sprajt onda program puca. Kada renderujem samo drugi sprajt program puca, opet. Ne znam u cemu je problem! Molim vas pomagajte!!!
Priloženi fajlovi
Tip fajla: zip Reaper.zip (11,4 KB, 24 puta viđeno)
Andross je offline   Odgovor sa citatom ove poruke
Stara 8.2.2007, 19:17   #14
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: SDL , problemi , preporuke i ostalo

I evo ga Engine Test projekat: http://d.turboupload.com/d/1509205/R..._Test.zip.html
Andross je offline   Odgovor sa citatom ove poruke
Stara 9.2.2007, 18:35   #15
Andross
Kekule Mekule
 
Avatar korisnika Andross
 
Član od: 8.12.2005.
Lokacija: Beograd
Poruke: 4.128
Zahvalnice: 649
Zahvaljeno 1.348 puta na 690 poruka
Slanje poruke preko Skypea korisniku Andross
Određen forumom Re: SDL , problemi , preporuke i ostalo

Eh ljudi resio sam problem!!!

Prva stvar koju sam zakljucio je da bag dolazi kada se poziva metod Render. Zbog toga sam ubacio proveru varijable mDrawn da bi se sprecilo crtanje vise frejmova u sekundi (moze zatrebati). Posto to nije pomoglo nisam znao sta da radim. Posle nekog vremena razmisljanja pomislih: "Mozda nije problem u engineu nego sam ga nepravilno upotrebio!", i bio sam u pravu. Sve instance klase Sprite su bile pointeri. Pomislih: "Mozda to pravi problem!", i krenuh u akciju. Instance vise nisu bile pointeri vec "obicne" varijable. Zbog toga sam ceo konstruktor prebacio u metod Init. Iskompajlirah Engine Test i voila! Test radi! Sav srecan odlucih da ovo resenje podelim sa vama!

Samo ne znam zasto klasa Sprite pravi probleme kada su njene instance pointeri???
Andross je offline   Odgovor sa citatom ove poruke
Stara 20.8.2014, 21:07   #16
grim
Član
 
Član od: 14.12.2005.
Lokacija: Uspavan Dolina
Poruke: 91
Zahvalnice: 12
Zahvaljeno 2 puta na 2 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Krenuh da se ucim SDL, i sve je lepo super i fino, ali se javlja jedan problem koji nikako ne mogu da resim. Kada pritisnem strelicu za desno umesto da se slika koja treba da se pomeri za 10 piksela, pomera kao luda, nekad ode i van prozora. Evo dela koda , da li neko mozda zna gde gresim.
Kod:
int i = 0;

	while (i == 0)
	{
		SDL_PollEvent(&e);
		if (e.type == SDL_QUIT)
			i = 1;
		else if (e.type == SDL_KEYDOWN)
			switch (e.key.keysym.sym)
		{
			case SDLK_RIGHT:
				prr.x += 10;
				break;
			case SDLK_LEFT:
				prr.x -= 10;
				break;
			default:
				break;
		}

		SDL_RenderClear(pr);
		SDL_RenderCopy(pr, pt, NULL, &prr);
		SDL_RenderPresent(pr);
	}
grim je offline   Odgovor sa citatom ove poruke
Stara 20.8.2014, 22:05   #17
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Problem je zato sto ce dodavati +10 svakog frejma sve dok je taj taster down, verujem da si hteo to da radis na SDL_KEYUP event.
Belphegor je offline   Odgovor sa citatom ove poruke
Stara 20.8.2014, 23:36   #18
Neky
Starosedelac
 
Član od: 15.6.2007.
Lokacija: Amsterdam
Poruke: 1.817
Zahvalnice: 463
Zahvaljeno 310 puta na 230 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Kad ovako "podigne" temu posle 7 godina i naiđeš na Vojin post...
Neky je offline   Odgovor sa citatom ove poruke
Stara 21.8.2014, 8:40   #19
grim
Član
 
Član od: 14.12.2005.
Lokacija: Uspavan Dolina
Poruke: 91
Zahvalnice: 12
Zahvaljeno 2 puta na 2 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Probao sam i SDL_KEYUP isto se desava.
grim je offline   Odgovor sa citatom ove poruke
Stara 22.8.2014, 17:27   #20
Belphegor
V.I.P. Programiranje
 
Član od: 29.8.2007.
Lokacija: Valjevo
Poruke: 1.349
Zahvalnice: 983
Zahvaljeno 371 puta na 280 poruka
Određen forumom Re: SDL , problemi , preporuke i ostalo

Ne bi trebalo, verovatno nesto radis pogresno, postuj kod ponovo.
Belphegor je offline   Odgovor sa citatom ove poruke
Odgovor

Bookmarks sajtovi

Alatke vezane za temu
Vrste prikaza

Vaš status
Ne možete postavljati teme
Ne možete odgovarati na poruke
Ne možete slati priloge uz poruke
Ne možete prepravljati svoje poruke

BB kod: uključeno
Smajliji: uključeno
[IMG] kod: uključeno
HTML kod: isključeno


Slične teme
tema temu započeo forum Odgovora Poslednja poruka
Problemi sa Post Mortem Boranija Avanturističke igre 21 29.12.2011 19:30
xp - problemi Cika Crni Kvarovi 4 17.4.2006 20:45
Nokia 6230 problemi oko instaliranja igara Spomenko Aparati i oprema 3 18.3.2006 22:31
Problemi u igrama-Radeon 9000 PRO Grond Grafika 7 29.1.2006 23:41
Windows XP Desktop problemi don_kibo Operativni sistemi 9 7.12.2005 2:52


Sva vremena su po Griniču +2 h. Sada je 14:52.


Powered by vBulletin® verzija 3.8.7
Copyright ©2000–2024, vBulletin Solutions, Inc.
Hosted by Beograd.com