Sattuisko joku tietämään, kuinka C :lla koodataan grafiikkaa? Ongelma on lähinnä grafiikkakirjaston nimessä, C:ssä ja vissiin C :nkin varhaisemmissa versioissa (ainakin 3.0:ssa) se oli graphics.h (tai graph.h tai jotain sellaista...), mutta C 6.0 antaa kyseisestä kirjastosta errorin.
Kuinka koodata grafiikkaa C++:lla?
Eelis
111224
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 11
Vanhimmat
http://keskustelu.suomi24.fi/show.cgi?category=108&conference=652
Jos vaikka imuttaisi ilmaisen kääntäjän DJGPP ja siiheen grafiikka kirjaston Allegro
#Include
tee ite omat kirjastot. Noi valmiit on ihan sairaan hitaita. Ite tein omat kirjastot jotka on 2^x kertaa nopeemmat. (Hieman itsekehua ;) )
Laita ne omat grafiikkakirjastot jakoon ja kerro missä ne ovat?
Kiitoksia neuvosta, ainoa ongelma on vain siinä että kuinka kummassa koodaan oman grafiikkakirjaston???
Imuttele Ralf Brownin Interrupt list, sieltä löytyy vaikka mitä hauskaa.
http://www-2.cs.cmu.edu/afs/cs/user/ralf/pub/WWW/files.html
esim Borland C/C :lla (dos):
void mode13(){ // 320x200x256 vga-moodi
asm{
mov ax,0x0013
int 0x10
}
}
void pset(int x, int y, char col){ // pisteen piirto mode13:ssa
char *scrnptr=(char far*)0x0a0000000;
scrnptr[x y*320]=col;
}
void setpalette(char i, char r, char g, char b){ //vga-tilassa paletin vaihto
asm{
mov dx,0x3e8
outb dx,i
mov dx,0x3e9
outb dx,r
outb dx,g
outb dx,b
}
}
int main(){ //dorka testiohjelma
int x,y;
mode13();
for (y=0;y
Mut alussa on hyvä käyttää valmiita grafiikka kirjastoja. Sulkin on tilas 320*200, Sivutuksessahan ne ongelmat alkaa. Enemmämkö 64kt
Vaikka tuo oli hatusta temmattu niin muiden kannattaa aina muistaa tuplapuskurointi(double buffer), jos aikoo tehdä paljon videomuistin arvoja lyhyessä ajassa muuttelivia ohjelmia. Se on paljon nopeampi ja ei näy videomuistin hitaudesta johtuvaa kuvan repeilyä,säröilyä ja vilkkumista.
täältä se lähtee:
www.opengl.org
www.gamedev.net
tutoriaaleja:
nehe.gamedev.net
www.gametutorials.com
No niin, kiitoksia paljon vinkeistä vinkeistä mutta perusongelma on edelleen ratkaisematta. Joten jos ja kun en omista aavistustakaan siitä, kuinka luodaan omia grafiikkakirjastoja, kuinka Microsoft Visual C 6.0 -ympäristössä käytetään edes inline assembleria ja kun käsittääkseni kyseisessä ympäristössä on olemassa valmiita grafiikkakirjastoja, niin millaisella koodinpätkällä saan nämä valmiit kirjastot käyttöön? Mikäli jollakulla olisi tarjota koodinpätkä, joka copy-pastettuna suoraan VB 6.0:aan piirtäisi esim. ympyrän mustalle kuvaruudulle tai jotain muuta vastaavaa, tuntisin itseni paljon viisaammaksi. Mutta kiitos kuitenkin jo kaikille apuaan tarjonneille.
Kun kerran on kyse Windows-ohjelmoinnista niin kannattaa käyttää DirectX-rajapinnan DirectDraw-palveluja, jossa on erilaisia rutiineja 2D-piirtelyä varten. Itse en ole edes vielä hankkinut koko kääntäjää, joten en osaa vielä koodia sinulle kirjoittaa, mutta yleensä erilaiset manuaalit, joita löytyy kirjakaupasta/kirjastosta/netistä, selittävät hyvin, miten voit ottaa kyseiset kirjastot käyttöösi. Nykyisin ei minun mielestä kannata pahemmin itse alkaa tekemään grafiikkarutiineja, koska valmiit ovat yleensä optimoituja, mutta tietysti on tilanteita, joissa oma jälki on nopeampaa.