Itse käytän ihan standard I/O:ta. Wanha kunnon stdio.h siis. Valmista funktiota se ei (tietenkään) moiseen sisällä, van sen saa ihan itse väkertää. Formaatteja on monia, enkä nyt muista mihin kaikkeen 3DSM exporttii, mutta ainakin .3ds toiminee, siihen löytyy mahtava tutoriaali esimerkiksi tästä. Sivusto on periaatteessa avaruussimulaatioita varten (ja täysin kuollut), mutta suurin osa siellä olevasta asiasta on yleishyvää, rautaista asiaa.Jormalaz wrote:Tiedättekö millä kirjastolla pystyisi mallintamaan objekteja tai jotain vastaavaa projektiini? Käytän Visual C++:tä. Olisi tarkoitus, että jotenkin 3D Studio Maxilla mallintamat aseet yms. saisi peliin jotenkin. Millä kirjastolla se onnistuu?
C++ -kysymykset
-
- Moderator
- Posts: 1583
- Joined: Mon Aug 27, 2007 11:24 pm
- Location: Otaniemi - Mikkeli -pendelöinti
Re: C++ -kysymykset
Re: C++ -kysymykset
Irrlichtiä oon nyt kaks päivää koodaillu, ja voin suositella erityisen lämpimästi. Tälläinen aloittelijakin pääsi sisälle suht helposti, kun jaksoi vähän tutoriaaleja katsella.
Itselleni ainakin oli Irrlicht huomattavasti helpompaa kuin OGRE, vaikka monet toisin sanovatkin
Itselleni ainakin oli Irrlicht huomattavasti helpompaa kuin OGRE, vaikka monet toisin sanovatkin
- Dibalo
- Advanced Member
- Posts: 298
- Joined: Mon Aug 27, 2007 8:12 pm
- Location: Espoo, Finland
- Contact:
Re: C++ -kysymykset
Irrlicht on paljonkin OGRE:a käyttäjä- ja erityisesti aloittelijaystävällisempi. Mutta sitten kun sitä tehoa halutaan puristaa, niin OGRE pwnaa ihan mennen tullen Irrlichtin!
-
- Active Member
- Posts: 111
- Joined: Fri Jun 13, 2008 9:06 pm
Re: C++ -kysymykset
Hei, olen teossa pientä ohjelmaa, jolla pitäisi pystyä keskustelemaan ja pelaamaan shakkia netin välityksellä toista vastaan, niin mitä kirjastoja käytetään tähän netin läpi kommunikointiin?
Samalla myös miten tulee toimia, jos toisen kone on lähiverkossa, eli miten sen saa varmasti toisessa päässä oikeaan osoitteeseen?
Samalla myös miten tulee toimia, jos toisen kone on lähiverkossa, eli miten sen saa varmasti toisessa päässä oikeaan osoitteeseen?
Re: C++ -kysymykset
lukutoukka wrote:Hei, olen teossa pientä ohjelmaa, jolla pitäisi pystyä keskustelemaan ja pelaamaan shakkia netin välityksellä toista vastaan, niin mitä kirjastoja käytetään tähän netin läpi kommunikointiin?
Samalla myös miten tulee toimia, jos toisen kone on lähiverkossa, eli miten sen saa varmasti toisessa päässä oikeaan osoitteeseen?
EDIT:
Ööö... Lähiverkko-osoitteella? Vai tarkoititko netin yli jonkun toisen verkkoon? Sehän on oma ongelmansa, josseivät ole ohjanneet porttejaan.Jos ihan nollasta alat tekemään, niin joko UNIX Socketteja tai WinSockia, riippuen alustasta.
-
- Active Member
- Posts: 111
- Joined: Fri Jun 13, 2008 9:06 pm
Re: C++ -kysymykset
Okei, siis tuota juuri portitusta meinaan. Löytyykö tuosta WinSockista suomenkielistä tutoriaalia?esa94 wrote:EDIT:Ööö... Lähiverkko-osoitteella? Vai tarkoititko netin yli jonkun toisen verkkoon? Sehän on oma ongelmansa, josseivät ole ohjanneet porttejaan.Jos ihan nollasta alat tekemään, niin joko UNIX Socketteja tai WinSockia, riippuen alustasta.
Re: C++ -kysymykset
Dun believe so.
Tuossois englanninkielinen, mut kannattaa vaan ladata joku valmis verkkokirjasto mieluummin, tästä VoittoSukasta ei saa paskaakaan selvää
http://tangentsoft.net/wskfaq/
Tuossois englanninkielinen, mut kannattaa vaan ladata joku valmis verkkokirjasto mieluummin, tästä VoittoSukasta ei saa paskaakaan selvää
http://tangentsoft.net/wskfaq/
-
- Active Member
- Posts: 111
- Joined: Fri Jun 13, 2008 9:06 pm
Re: C++ -kysymykset
Eli jos hankin jonkun valmiin kirjaston, niin mikä olisi sopiva?
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Itse käytän RakNet:iä.lukutoukka wrote:Eli jos hankin jonkun valmiin kirjaston, niin mikä olisi sopiva?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
-
- Active Member
- Posts: 111
- Joined: Fri Jun 13, 2008 9:06 pm
Re: C++ -kysymykset
Osaisitko sanoa miten tuo asennetaan Dev-c++ ympäristöön? Tämänkun saisin tiedettyä, niin voisin aloittaa testaamisen.Sami The Great wrote:Itse käytän RakNet:iä.lukutoukka wrote:Eli jos hankin jonkun valmiin kirjaston, niin mikä olisi sopiva?
Ja chat systeemin perustoimintahan on, että palvelin ottaa asiakkaiden syötteet vastaan ja jakaa ne eteenpäin? Sitten tämä porttisysteemi, niin meneekö se siten, että palvelin kuuntelee tiettyä/tiettyjä portteja ja kun asiakas ottaa siihen yhteyden, niin se avaa sen kanssa uuden portin ja pystyy näin pitämään yhteyden?
Ja tuosta saankin johdettua uuden kysymyksen, eli onko näiden porttien käytössä rajoitteita?
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Tässä on .a tiedosto jota tarvitset. Se on Dev-Cpp:n käyttämä library tiedosto. http://files.filefront.com/RakNetLibrar ... einfo.htmllukutoukka wrote:Osaisitko sanoa miten tuo asennetaan Dev-c++ ympäristöön? Tämänkun saisin tiedettyä, niin voisin aloittaa testaamisen.Sami The Great wrote:Itse käytän RakNet:iä.lukutoukka wrote:Eli jos hankin jonkun valmiin kirjaston, niin mikä olisi sopiva?
Ja chat systeemin perustoimintahan on, että palvelin ottaa asiakkaiden syötteet vastaan ja jakaa ne eteenpäin? Sitten tämä porttisysteemi, niin meneekö se siten, että palvelin kuuntelee tiettyä/tiettyjä portteja ja kun asiakas ottaa siihen yhteyden, niin se avaa sen kanssa uuden portin ja pystyy näin pitämään yhteyden?
Ja tuosta saankin johdettua uuden kysymyksen, eli onko näiden porttien käytössä rajoitteita?
Käänsin sen puolestasi RakNetin Sourcesta. Eli, jotta saat RakNetin toimimaan niin sinun pitää linkittää tuo tiedosto projektiisi.
Serverille yhdistäessä tarvitsee portti tietää, mutta RakNet hoitaa automaattisesti jokaiselle eri clientille eri portin. Eli kun Server ja Client on yhdistetty niin voit alkaa suoraan lähettelemään paketteja.
Itseasiassa olen tehnyt jonkun esimerkinkin RakNetistä yhteen kouluprojektiin.
Code: Select all
Merkkijonojen lähettäminen ja vastaanottaminen RakNetin avulla
Tässä esimerkissä näytetään miten merkkijonojen lähettäminen verkon yli onnistuu RakNetiä käyttäen. Esimerkki ei käsittele RakNetin alustusta vaan ainoastaan osan, jossa merkkijono lähetetään. Alustuksesta saat lisätietoa RakNetin sivuilta.
[KOODI LÄHETTÄJÄN PUOLELLA]
/* Luodaan paketti struct, joka sisältää paketti tunnisteet ja itse merkkijonon. */
struct stringPackage
{
unsigned char typeId; //Paketin tunniste tallennetaan tähän.
char STRING[256]; //Merkkijono tallennetaan kirjain taulukkoon.
};
//Luodaan string muuttuja, johon teksti laitetaan.
std::string outGoingString = "This string is going to be sent over network";
//Luodaan uusi paketti
stringPackage pack;
//Tunniste id, katso RakNetin manuaalista miten voit luoda uusia tunnisteita.
pack.typeId = ID_STRING_PACK;
//Kopioidaan merkkijono taulukkoon.
strcpy(pack.STRING, outGointString.c_str());
RakNet::BitStream mBitStream; //Luodaan BitStream.
mBitStream.Write(pack.typeId);
mBitStream.Write(pack.STRING);
//Lähetetään bitStream
Send(mBitStream, HIGH_PRIORITY, RELIABLE_ORDERED, 0, 0, true);
[KOODI VASTAANOTTAJAN PUOLELLA]
struct stringPackage
{
unsigned char typeId; //Paketin tunniste tallennetaan tähän.
char STRING[256]; //Merkkijono tallennetaan kirjain taulukkoon.
};
//Vastaanotetaan paketti verkosta.
Packet *packet;
packet = peer->Receive();
stringPackage pack;
//Luodaan BitStream saapuneesta paketista.
RakNet::BitStream mBitStream(packet->data, packet->length, false);
//Luetaan tiedot merkkijono pakettiin.
mBitStream.Read(pack.typeId);
mBitStream.Read(pack.STRING);
//Luodaan merkkijono muuttuja ja alustetaan se kirjain taulukolla.
std::string receivedString(pack.STRING);
Nyt receivedString muuttujan pitäisi sisältää lähetetty merkkijono.
EDIT2: Jaahas. Huomasin juuri, että RakNetistä on tullut uusi versio, joten minun kääntämä kirjasto ei toimi jos latasit uusimman version. Eli saat käännettyä sen kirjaston itse, kun avaat sen projekti tiedoston ja "Rebuild All". Projektitiedostolla tarkoitan sitä RakNet.dev tiedostoa.
Last edited by Sami The Great on Mon Apr 20, 2009 9:51 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
Porttien käyttö on melko vapaata, mutta kannattaa käyttää portteja vasta 1024:stä alkaen. Tietääkseni sitä alemmat portit on voitu varata käyttöjärjestelmälle, näin on todennäköisepmää että yhteyden alustus epäonnistuu. Joku "5432" kelpaa jo vallan mainiosti portiksi. Vaan asiasta toiseen: oletko jo päättänyt protokollan? TCP vai UDP?
-On selkeästi impulsiivinen koodaaja joka...
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Ilmeisesti UDP, kun RakNet sitä käyttääJATothrim wrote:Porttien käyttö on melko vapaata, mutta kannattaa käyttää portteja vasta 1024:stä alkaen. Tietääkseni sitä alemmat portit on voitu varata käyttöjärjestelmälle, näin on todennäköisepmää että yhteyden alustus epäonnistuu. Joku "5432" kelpaa jo vallan mainiosti portiksi. Vaan asiasta toiseen: oletko jo päättänyt protokollan? TCP vai UDP?
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: C++ -kysymykset
Olen erittäin kiinnostunut C++ mutta kaikki oppaat joita olen lukenut niin koodit eivät yksinkertaisesti toimi omassa C++, joten sellaisia oppaita on turha lukea kun ei mikään toimi mitä siellä neuvotaan. Onko netissä mitään hyvää ladattavaa ilmaista c++ kirjaa? :O
Tai onko jotain kunnollisia oppaita.
Viho viimeisenä voi olla jokin ladattava ilmainen kirja.
Kirjastoon en jaksa mennä, joten päätän ensin koittaa jos netistä löytyisi edes joku C++ kirja/opas.
Tai onko jotain kunnollisia oppaita.
Viho viimeisenä voi olla jokin ladattava ilmainen kirja.
Kirjastoon en jaksa mennä, joten päätän ensin koittaa jos netistä löytyisi edes joku C++ kirja/opas.
Glory&Pride <--- selainpeli projektini
Pelilä<- yksi ylläpitämäni sivusto.
World leaders Ensimmäinen CoolBasic projektini
Pelilä<- yksi ylläpitämäni sivusto.
World leaders Ensimmäinen CoolBasic projektini
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Tämä on mielestäni hyvä opas http://www.nic.funet.fi/c++opas/matti3 wrote:Olen erittäin kiinnostunut C++ mutta kaikki oppaat joita olen lukenut niin koodit eivät yksinkertaisesti toimi omassa C++, joten sellaisia oppaita on turha lukea kun ei mikään toimi mitä siellä neuvotaan. Onko netissä mitään hyvää ladattavaa ilmaista c++ kirjaa? :O
Tai onko jotain kunnollisia oppaita.
Viho viimeisenä voi olla jokin ladattava ilmainen kirja.
Kirjastoon en jaksa mennä, joten päätän ensin koittaa jos netistä löytyisi edes joku C++ kirja/opas.
Itse harjoittelin C++:ssan perusteet tuosta oppaasta ja minulla oli myös vähän ongelmia saada ohjelmat toimiaan.
Suureksi ongelmaksi tuli main funktion määrittely. Oppaassa se esitellään void main(), mutta useissa kääntäjissä se ei toimi. Eli vaihdat vain void main():in int main():iksi niin pitäisi kaikki tuon oppaas koodit toimia ainakin Dev-Cpp:ssä ja MS visual C++ 9.0:assa.
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
Re: C++ -kysymykset
Se, etteivät oppaissa annetut koodinpätkät toimi, ei johdu kääntäjästä vaan omasta evotuksestasi.
Ladattavia C++-kirjoja en tiedä, mutta yksi varteenotettava opas on tässäkin topikissa n+1 kertaa mainittu, joskin hitusen vanhentunut Hassun Hauska C++- opas. (http://www.nic.funet.fi/c++opas/)
e. Sami, en vastannut viestiisi vaan ehdit vain lähettää sen sillä välin kun kirjoitin omaani
Ladattavia C++-kirjoja en tiedä, mutta yksi varteenotettava opas on tässäkin topikissa n+1 kertaa mainittu, joskin hitusen vanhentunut Hassun Hauska C++- opas. (http://www.nic.funet.fi/c++opas/)
e. Sami, en vastannut viestiisi vaan ehdit vain lähettää sen sillä välin kun kirjoitin omaani
Last edited by dem0 on Tue Apr 21, 2009 8:57 pm, edited 2 times in total.
- Sami The Great
- Advanced Member
- Posts: 485
- Joined: Tue Aug 28, 2007 4:15 pm
- Contact:
Re: C++ -kysymykset
Toki muussa koodissa voi olla omia evotuksia, mutta ainakin tuon void main() määrittelyn korjaus auttaa asiaan (ainakaan minulla ohjelma ei käänny jos main funktio palauttaa tyhjää). Ja muistithan includettaa kaiken tarvittavan mukaan? Sillä useimmat esimerkit käyttävät standard IO:ta eli iostream pitäisi olla includetettu. Ja yksi virhe mikä voisi näin aluksi tulla on jos unohdat määritellä std nimiavaruuden käyttöön. Toki voit käyttää aina standardi kirjaston funktioita tapaan std::funktio, mutta aluksi on helpompaa määritellä nimiavaruus käyttöön. Eli using namespace std;dem0 wrote:Se, etteivät oppaissa annetut koodinpätkät toimi, ei johdu kääntäjästä vaan omasta evotuksestasi.
Ladattavia C++-kirjoja en tiedä, mutta yksi varteenotettava opas on tässäkin topikissa n+1 kertaa mainittu, joskin hitusen vanhentunut Hassun Hauska C++- opas. (http://www.nic.funet.fi/c++opas/)
Ja dem0 tuon oppaan linkittäminen oli sinänsä turhaa, koska linkitin siihen juuri edellisessä viestissä johon vastasit
EDIT: Matti olisi myös helpompi auttaa jos kertoisit mitä editoria ja kääntäjää käytät.
EDIT2: Ainakin heti pisti silmään kaksi virhettä tuossa oppaassa miksi ohjelma ei toimi.
Code: Select all
#include <iostream.h>
void main() //tämä määrittely ei toimi ainakaan minulla
{
cout << "Hello world!"; //tästä puuttuu nimiavaruus, koska sitä ei ole otettu käyttöön aikaisemmin
}
Code: Select all
#include <iostream.h>
int main()
{
std::cout << "Hello world!";
}
http://www.rockodilegames.com
CoolBasickin käyttäjä vuodesta 2004.
CoolBasickin käyttäjä vuodesta 2004.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: C++ -kysymykset
Jos ei vieläkään toimi, kannattaa vaihtaa ensimmäinen rivi muotoon:
Code: Select all
#include <iostream>
Re: C++ -kysymykset
Juu toimii, mutta vielä sellainen, että nyt tuo kuva vain välähtää tuossa.
Glory&Pride <--- selainpeli projektini
Pelilä<- yksi ylläpitämäni sivusto.
World leaders Ensimmäinen CoolBasic projektini
Pelilä<- yksi ylläpitämäni sivusto.
World leaders Ensimmäinen CoolBasic projektini
-
- Active Member
- Posts: 248
- Joined: Mon Aug 27, 2007 9:23 pm
- Location: Oulu
Re: C++ -kysymykset
Jos konsoli vain välähtää ruudulla, se pitää saada pysymään siinä esimerkiksi pyytämällä käyttäjää painamaan enteriä. Automaattisestihan tämä ei tietenkään tapahdu. Esimerkiksi getch() auttaa.
OoO