C++ -kysymykset
-
- Active Member
- Posts: 126
- Joined: Wed Aug 29, 2007 3:55 pm
Re: C++ -kysymykset
Onko jostain saatavana valmista Hash funktiota C++:lle ? (Googlettamalla en löytänyt)
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
Standardikirjastoista ei löydy valmiina(?), mutta netti on toteutuksia pullollaan.
Nämä taisi olla ekat hakutulokset googlesta (koetapa hakea "md5 c++", "crc c++", "sha c++").
MD5: http://www.langfine.com/rsa_md5.htm
CRC: http://www.programmersheaven.com/zone3/cat846/index.htm
SHA: http://www.codeproject.com/cpp/csha1.asp
Codeproject.comista löytyy muutenkin hyvin. Tässä yksi: http://www.codeproject.com/cpp/chash.asp
Nämä taisi olla ekat hakutulokset googlesta (koetapa hakea "md5 c++", "crc c++", "sha c++").
MD5: http://www.langfine.com/rsa_md5.htm
CRC: http://www.programmersheaven.com/zone3/cat846/index.htm
SHA: http://www.codeproject.com/cpp/csha1.asp
Codeproject.comista löytyy muutenkin hyvin. Tässä yksi: http://www.codeproject.com/cpp/chash.asp
OoO
-
- Active Member
- Posts: 126
- Joined: Wed Aug 29, 2007 3:55 pm
Re: C++ -kysymykset
Kiitos. Hain vähän erilaisilla hakusanoilla Googlesta.
Tiimit ja tuotokset:
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
RE:Ydintuho
Drahtlose:Infernalisch, Pienet pelit
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Olen miettiny tätä jo pidemmän aikaa. Tämä koodi ei enna mitään virhe ilmoitusta mutta kun yritän piirtää tekstiä ruudulle ohjelma sammuu.
Ja tässä vielä funktio jolla tekstiä piirretään.
Code: Select all
#include "EasyFunctionLibrary.h"
int main(int argc, char *argv[])
{
#include "EFLObjects.h"
/////////////////////////////////////////////////
// Write your code between of thease marks. //
////////////////////////////////////////////////
PROGRAM.Boot();
SCREEN.Set(1024,768,16,0);
Image testikuva;
TEXT.LoadFont("comic",20);
testikuva.LoadImage("PGD.png");
while(1){
EVENT.Update();
if(EVENT.KeyDown(key_d)) testikuva.DrawImage(0,0,SCREEN.screen);
if(EVENT.KeyHit(key_e)) break;
if(EVENT.KeyHit(key_m)) testikuva.SetMaskColor(255,0,255);
if(EVENT.KeyHit(key_t)) TEXT.PrintSolid("1",30,30,SCREEN.screen); // TÄSSÄ OHJELMA SAMMUU...
SCREEN.Draw(1);
};
testikuva.DeleteImage();
SCREEN.ShutDown();
PROGRAM.ShutDown();
/////////////////////////////////////////////////
// Write your code between of thease marks. //
////////////////////////////////////////////////
return EXIT_SUCCESS;
}
Code: Select all
void Text::PrintSolid(const char* teksti, int x, int y, SDL_Surface *dstscreen)
{
t_face = TTF_RenderText_Solid(font, teksti, f_color);
SDL_Rect alue;
alue.x = x;
alue.y = y;
SDL_BlitSurface(t_face, NULL, dstscreen, &alue);
}
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
Koetapa debugata ja katso mikä on viimeinen rivi joka suoritetaan PrintSolidissa. Katso mitä arvoja muuttujilla t_face, font, teksti, f_color, dstscreen, ja alue on niiden käyttöhetkellä ja katso SDL:n dokumentaatiosta minkälaisia ovat validit arvot TTF_RenderText_Solid:lle ja SDL_BlitSurface:lle.Sami The Great wrote:Olen miettiny tätä jo pidemmän aikaa. Tämä koodi ei enna mitään virhe ilmoitusta mutta kun yritän piirtää tekstiä ruudulle ohjelma sammuu.
Luultavasti t_face on NULL tai jotain. Missä tuo muuten esitellään? En ole koodannut metriäkään SDL-kirjastoa käyttäen, mutta mitä tuolle t_face:n edelliselle sisällölle tapahtuu?
OoO
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Noniin sain toimimaan. Ongelma oli tekstin lataamisessa.
Tässä on näppäinten tarkistus systeemi:
Ja itse pää ohjelma:
Voisiko ongelma olla että näppäimistö puskuriin ei mahdu enempää toimintoja jonoon? Mistä sitä voisi kokeilla kasvattaa?
EDIT: Onko mitään tapaa kääntää koodia toiselle käyttikselle (MAC os) windowssilla? Eli siis saako winukkaan mitään kääntäjää toimimaan minkä käännös toimis sit toisessa käyttiksessä?
t_face esitellään Text luokassa jota en tuohon äskeiseen viestiin liittänyt. t_facen edellinen sisältö jää uuden alle tämä on ns. "väli suraface" johon teksti aluksi renderöidään ja sitten se teksti surface piirretään näyttöön. Nyt kun sai tuon toimimaan tuli taas ongelma, nimittäin syötteiden kanssa... Tuli ongelmasksi että nykyinen systeemi lukee kunnolla vain kahta näppäintä yhtäaikaa. Eli jos ohjelmassa on 3 tekstiä 2 niistä vain näkyy samaan aikaan vaikka painan kaikkien "näyttämis" nappia.anttipanda wrote:Koetapa debugata ja katso mikä on viimeinen rivi joka suoritetaan PrintSolidissa. Katso mitä arvoja muuttujilla t_face, font, teksti, f_color, dstscreen, ja alue on niiden käyttöhetkellä ja katso SDL:n dokumentaatiosta minkälaisia ovat validit arvot TTF_RenderText_Solid:lle ja SDL_BlitSurface:lle.Sami The Great wrote:Olen miettiny tätä jo pidemmän aikaa. Tämä koodi ei enna mitään virhe ilmoitusta mutta kun yritän piirtää tekstiä ruudulle ohjelma sammuu.
Luultavasti t_face on NULL tai jotain. Missä tuo muuten esitellään? En ole koodannut metriäkään SDL-kirjastoa käyttäen, mutta mitä tuolle t_face:n edelliselle sisällölle tapahtuu?
Tässä on näppäinten tarkistus systeemi:
Code: Select all
class Event
{
public:
void Update();
bool KeyDown(Uint16 EFL_key);
bool KeyHit(Uint16 EFL_key);
private:
SDL_Event event;
Uint8 *button;
Uint8 *hitbutton;
bool hit_taulukko[350];
};
bool Event::KeyDown(Uint16 EFL_key)
{
if(button[EFL_key]) return true;
else return false;
SDL_PushEvent(&event);
}
bool Event::KeyHit(Uint16 EFL_key)
{
if(hitbutton[EFL_key] == 0) hit_taulukko[EFL_key] = 0;
if(hit_taulukko[EFL_key] == 0){
if(hitbutton[EFL_key]){
hit_taulukko[EFL_key] = 1;
return true;
}
else return false;
}
}
void Event::Update()
{
SDL_PollEvent(&event);
button = SDL_GetKeyState(NULL);
hitbutton = SDL_GetKeyState(NULL);
}
Code: Select all
#include "EasyFunctionLibrary.h"
int main(int argc, char *argv[])
{
/////////////////////////////////////////////////
// Write your code between of thease marks. //
////////////////////////////////////////////////
PROGRAM.Boot();
SCREEN.Set(1024,768,16,0);
Event EVENT;
Image testikuva;
TEXT.LoadFont("comic.ttf",20);
TEXT.SetFontColor(255,255,255);
TEXT.SetBackgroundColor(0,0,0);
while(1){
EVENT.Update();
if(EVENT.KeyHit(key_e)) break;
if(EVENT.KeyDown(key_t)) TEXT.PrintSolid("Moi olen juu",30,30,SCREEN.screen);
TEXT.SetFontColor(255,0,255);
if(EVENT.KeyDown(key_y)) TEXT.PrintShaded("Moi Olenkin pöö 2",30,60,SCREEN.screen);
TEXT.SetFontColor(50,200,200);
if(EVENT.KeyDown(key_u)) TEXT.PrintBlended("Moi tämä on 3 mas teksti joka on blendaddu",30,90,SCREEN.screen);
SCREEN.Draw(1);
};
SCREEN.ShutDown();
PROGRAM.ShutDown();
/////////////////////////////////////////////////
// Write your code between of thease marks. //
////////////////////////////////////////////////
return EXIT_SUCCESS;
}
EDIT: Onko mitään tapaa kääntää koodia toiselle käyttikselle (MAC os) windowssilla? Eli siis saako winukkaan mitään kääntäjää toimimaan minkä käännös toimis sit toisessa käyttiksessä?
Last edited by Sami The Great on Thu Nov 29, 2007 6:32 pm, edited 1 time in total.
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: C++ -kysymykset
Onko Visual c++ hyvä ohjelma c++ ohjelmoinnin aloittamiseen? Ja onko se muuten hyvä ohjelma. Kysyin vain koska pitäähän tuotakin kieltä hiukan koittaa
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Itse käytän DEV-Cpp:tä ja se on mielestäni ihan hyvä, ainakin aloittamiseen ja eikös tuo Visual C++ maksa jotain?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: C++ -kysymykset
Toki maksaa, mutta ilmaisversio ( onkohan uusin edelleen 2005 express edition, ken tietää.. ) on myös olemassa. Itsekin olen Dev-Cpp:hen tykästynyt, simppeli ja toimiva. Koodin kirjoittaminen tekstitiedostoon NotePadilla tuntuu itselleni luontaisimmalta, mutta menee vaikeaksi kun pitää kopsia koodia eestaas. ( riennänpäs tästä vääntämään batchi-tiedostoa heplompaa komentorivikääntämistä varten ) Oman editorin tekemistäkin voi kokeilla, ( siis nimenomaan kokeilla, ei omaa räpellystä käyttäisi edes asennesyistä.. ellei nyt tee asiasta elämää suurempaa systeemiä ) voisi olla ihan jännä projekti. ( kyllä, minulle on monasti huomautettu liian pitkistä suluissa olevista virkkeistä, mutta tätä sivuasiaa vaan syntyy niin paljon >.< )Sami The Great wrote:Itse käytän DEV-Cpp:tä ja se on mielestäni ihan hyvä, ainakin aloittamiseen ja eikös tuo Visual C++ maksa jotain?
Re: C++ -kysymykset
Itse käännän projektini linuxiin Virtuaali PC:n kautta. Mac OS:n intel versiota olen myös kokeillut asentaa, mutta en ole onnistunut.Sami The Great wrote:EDIT: Onko mitään tapaa kääntää koodia toiselle käyttikselle (MAC os) windowssilla? Eli siis saako winukkaan mitään kääntäjää toimimaan minkä käännös toimis sit toisessa käyttiksessä?
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
Tuo vanha surface pitää ainakin tuhota. Pikaisesti silmäilin ohjelmointiputkan SDL-opasta, jota olet ilmeisesti itsekin vilkaissut, ja siellä on komento jolla vapautetaan surface muistista. Tuossa tapahtuu ainakin muistivuoto ihan takuulla.Sami The Great wrote: t_face esitellään Text luokassa jota en tuohon äskeiseen viestiin liittänyt. t_facen edellinen sisältö jää uuden alle tämä on ns. "väli suraface" johon teksti aluksi renderöidään ja sitten se teksti surface piirretään näyttöön. Nyt kun sai tuon toimimaan tuli taas ongelma, nimittäin syötteiden kanssa... Tuli ongelmasksi että nykyinen systeemi lukee kunnolla vain kahta näppäintä yhtäaikaa. Eli jos ohjelmassa on 3 tekstiä 2 niistä vain näkyy samaan aikaan vaikka painan kaikkien "näyttämis" nappia.
Ei näppäimistökomentojen käsittelyä pelissä pitäisi niin tehdä. Kaikkien näppäinten tila voidaan hakea ennen näppäinten käsittelyä, yhdellä komennolla. Nämä tilat tallennetaan taulukkoon, kuten ilmeisesti olet tehnyt. Tämän jälkeen voidaan minkä vain näppäimen tila hakea sieltä taulukosta. Vertailemalla näppäimen edellistä tilaa nykyiseen saadaan aikaiseksi KeyDown ja KeyUp -tyyliset tapahtumat. En kerkeä tuota sinun koodia enempää tutkiskelemaan, mutta varmasti netistä löytyy helppoja tapoja käyttää näppäimistöä oikein.Sami The Great wrote: Voisiko ongelma olla että näppäimistö puskuriin ei mahdu enempää toimintoja jonoon? Mistä sitä voisi kokeilla kasvattaa?
#edit: Tuosa Event-luokassa on aikamoisia ihmeellisyyksiä:
Koodilohko johon ei päästä:
Code: Select all
bool Event::KeyDown(Uint16 EFL_key)
{
if(button[EFL_key])
return true;
else
return false;
SDL_PushEvent(&event); //<====== unreachable code
}
Code: Select all
bool Event::KeyHit(Uint16 EFL_key)
{
if(hitbutton[EFL_key] == 0)
hit_taulukko[EFL_key] = 0;
if(hit_taulukko[EFL_key] == 0) //<========= mitä tapahtuu jos hitbutton[EFL_key] ei palauttanutkaan nollaa? hit_taulukossa voi olla odottamaton arvo.
{
if(hitbutton[EFL_key])
{
hit_taulukko[EFL_key] = 1;
return true;
}
else
{
return false;
}
}
// <======== Ja kun arvo on mitä vain paitsi nolla, mennään tänne. mitä ihmettä? mitään ei palauteta?
}
- Jos näppäintä ei ole painettu
- - Tallenetaan tila taulukkoon
- Jos näppäintä ei ole painettu
- - Jos näppäintä onkin painettu O_o?
- - - Tallennetaan tila, return true
- - muuten
- - - return false
- (ei palauteta mitään arvoa)
Etkö voisi tehdä tuosta metodista vain tällaisen:
Code: Select all
bool Event::KeyHit(Uint16 EFL_key)
{
return hitbutton[EFL_key] != 0; //palauttaa true, jos arvo ei ole nolla, ja false jos arvo on nolla.
}
OoO
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Noniin muutimpa noi niin kuin neuvoit. Kiitos avusta. Kannattaako muuten harjoitella heti joku toinen grafiikka kirjasto missä olisi 3D ominaisuudet vai kannattaako pysytellä SDL llässä ?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: C++ -kysymykset
Dodih, uudet foorumit jo coolbasicille tullut. Njoo, itse nykyisin pyrin keskittymään C++:aan siitä syystä, että CoolBasic on vain niiiiiin rajoittunut näin ohjelmapuolella.
Olen pari opusta lukenut, harjoituskoodeja vääntänyt ja netistäkin vinkkejä selannut ja nyt osaan c++ alkeet hyvin.
Muuttujat, ehtolausekkeet, funktiot, taulukot, osoittimet (oikea käännös pointerista?) , luokat, linkkilistat (oikea käännös linked lististä?) sekä yrittänyt sisäistää OOP ohjelmointia.
Mitään peliä en todellakaan ala vielä koodaamaan missään muodossa vaan yleisiä Windows ohjelmointia olisi kiva tehdä.
Kuten vaikkapa ikkunan avaamista, prosessien katsomista, tiedostojen etsintää yms. pikkutehtäviä joilla voisi harjaantua.
Ohjelmapuolessa näyttää WIN32 Api dominoivan. Suomipeleistä luin pikku johdannon mutta kirjaa siitä en ole löytänyt.
Netistä sitä on kurja lukea sivutolkulla. Eli siis suomenkielistä (myös eng. kielinen käy, mutta rennompaa se on suomeksi lukea.) win32 api -opasta voi suositella. Mielellään löytyisi jostain päin suomea ostettavana esim. kirjakaupasta.
Koko läänin kirjastot kävin läpi (asun Mikkelissä) ja yhtään kirjaa ei hakutulokseksi tullut :/
Olen pari opusta lukenut, harjoituskoodeja vääntänyt ja netistäkin vinkkejä selannut ja nyt osaan c++ alkeet hyvin.
Muuttujat, ehtolausekkeet, funktiot, taulukot, osoittimet (oikea käännös pointerista?) , luokat, linkkilistat (oikea käännös linked lististä?) sekä yrittänyt sisäistää OOP ohjelmointia.
Mitään peliä en todellakaan ala vielä koodaamaan missään muodossa vaan yleisiä Windows ohjelmointia olisi kiva tehdä.
Kuten vaikkapa ikkunan avaamista, prosessien katsomista, tiedostojen etsintää yms. pikkutehtäviä joilla voisi harjaantua.
Ohjelmapuolessa näyttää WIN32 Api dominoivan. Suomipeleistä luin pikku johdannon mutta kirjaa siitä en ole löytänyt.
Netistä sitä on kurja lukea sivutolkulla. Eli siis suomenkielistä (myös eng. kielinen käy, mutta rennompaa se on suomeksi lukea.) win32 api -opasta voi suositella. Mielellään löytyisi jostain päin suomea ostettavana esim. kirjakaupasta.
Koko läänin kirjastot kävin läpi (asun Mikkelissä) ja yhtään kirjaa ei hakutulokseksi tullut :/
Re: C++ -kysymykset
Kirjoista en tiiä mut oikeestaan varmaa ainut paikka mis on oikeen kunnolla on mikkisoftan oma mdsn
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
Jos teet 2D-pelejä, SDL voi olla yksinkertaisempi, sillä 3D-kirjastolla voit joutua tekemään kohtalaisen pohjatyön ennenkuin voit esimerkiksi alkaa vain piirtämään kuvia tai tekstiä näytölle.Sami The Great wrote:Noniin muutimpa noi niin kuin neuvoit. Kiitos avusta. Kannattaako muuten harjoitella heti joku toinen grafiikka kirjasto missä olisi 3D ominaisuudet vai kannattaako pysytellä SDL llässä ?
OoO
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: C++ -kysymykset
Tästä pitänee todeta olevani hieman eri mieltä. Itse olen OpenGL:llä ohjelmoinut jonkin aikaa, ja kuvat ovat helppoja ja hyvin monipuolisia ( oikeilla kirjastoilla ainakin ;D ) ja tekstin piirtäminen (joskaan ei lataaminen, mutta siihenkin löytyy hienosti apu netistä) paljon yksinkertaisempaa kuin SDL:llä, jossa jostain kumman syystä se täytyy ensin renderöidä kuvaksi ja vasta sen jälkeen sitä voi käyttää o: Ja voithan toki käyttää SDL:n kanssa OpenGL:ää, jolloin sinulla on myös 3D-ominaisuudet.anttipanda wrote:Jos teet 2D-pelejä, SDL voi olla yksinkertaisempi, sillä 3D-kirjastolla voit joutua tekemään kohtalaisen pohjatyön ennenkuin voit esimerkiksi alkaa vain piirtämään kuvia tai tekstiä näytölle.Sami The Great wrote:Noniin muutimpa noi niin kuin neuvoit. Kiitos avusta. Kannattaako muuten harjoitella heti joku toinen grafiikka kirjasto missä olisi 3D ominaisuudet vai kannattaako pysytellä SDL llässä ?
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Voisiko Irrlicht olla hyvä? Latasin sen vähän aikaa sitten ja siinä näyttäisi olevan 3D ominaisuudet ja törmäys tunnistus valmiina. Onko kenelläkää kokemusta tästä, että saako tällä suht helposti tehtyä 2D grafiikkaa? Ainakin tämä näytti hiukan monimutkaisemmalta kuin SDL.
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
- Dibalo
- Advanced Member
- Posts: 298
- Joined: Mon Aug 27, 2007 8:12 pm
- Location: Espoo, Finland
- Contact:
Re: C++ -kysymykset
Irrlicht on hyvä engine aloittaa: se sisältää helpot 2D- sekä 3D-ominaisuudet.Sami The Great wrote:Voisiko Irrlicht olla hyvä? Latasin sen vähän aikaa sitten ja siinä näyttäisi olevan 3D ominaisuudet ja törmäys tunnistus valmiina. Onko kenelläkää kokemusta tästä, että saako tällä suht helposti tehtyä 2D grafiikkaa? Ainakin tämä näytti hiukan monimutkaisemmalta kuin SDL.
Re: C++ -kysymykset
Miten voi kääntää C++ ohjelman niin että sen voisi ajaa puhelimessaa? Voiko sen siirtää käyttäen bluetooth:ia? Tietokoneessani on bluetooth sovitin ja matka puhelimeni tukee sitä. Kääntäjäni on Visual Studion .NET Professional 60 päivän kokeilu versio.
PS. Tiedän ettei Visual Studion .NET Professional ole kääntäjä. En vain muista mikä se on.
PS. Tiedän ettei Visual Studion .NET Professional ole kääntäjä. En vain muista mikä se on.
Projektit: Fiperus - Jäädytetty pidemmäksi aikaa.
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Voitot: Viikkokisa XIII, Pikapelikisa 3, Pikapelikisa 13
http://www.sami345.tk/
Re: C++ -kysymykset
Käytä VC++ Express Editionia ja asenna WIN32 SDK.Sami345 wrote:Miten voi kääntää C++ ohjelman niin että sen voisi ajaa puhelimessaa? Voiko sen siirtää käyttäen bluetooth:ia? Tietokoneessani on bluetooth sovitin ja matka puhelimeni tukee sitä. Kääntäjäni on Visual Studion .NET Professional 60 päivän kokeilu versio.
PS. Tiedän ettei Visual Studion .NET Professional ole kääntäjä. En vain muista mikä se on.
Mille alustalle ajattelit tehdä sovellukset? Pienellä googletuksella sain Symbian 60 serien SDK:ta ja Työkaluja. http://www.forum.nokia.com/main/resourc ... index.html
PS. Visual Studion .NET Professional on paketti, mikä sisältää Visual Studion oman kääntäjän ja IDE:n.