|
|
Pure linux alatt nincsen exe. Az .so a .dll megfelelöje linux alatt. A .lib megfelelöje pedig a .a, ezeket nem -l kapcsolóval kell linkelni, egyszerüen csak hozzá kell irni pl. gcc main.cpp akarmi.a
szerk.: haha
Ezt a hozzászólást Asylum módosította (2009.09.08 21:12 GMT+1 óra, ---)
|
|
|
Úgy emlékszek, hogy amikor a beépített GCC verzió >= volt, mint, amivel az irrlicht-et fordították, csak annyi volt a teendő, hogy azt a .so akármicsodát kellett linkelni és azt beleforgatta az "exe"-be. Még a linkernél kellett pár dolgot beállítani, de úgy emlékszek ennyi volt az egész. A KDevelop nevű eszközt használtam és semmilyen csomagkezelővel se küzdöttem.
Kód: -lGL
-lGLU
-lX11
-lXext
-lXxf86vm
-lIrrlicht
Az igazi mazochizmus az Ogre-t buildelni linux alatt.
|
|
|
|
Idézet bit.0x8000 :
Nekem csont nélkül felment, erről a link-ről telepítve:
https://launchpad.net/~kai-mast/+archive/ppa/+build/1094353
Mindjárt kipróbálom. Viszont utána mi a következő lépés? Ez feltelepül akárhova, utána mit kell beállítani, hogy a helloworld example-t le tudjam fordítani pl. a codeblocks-al (vagy bármi mással)?
(a végső cél nem az, hogy egy irrlicht-es csomag feltelepüljön, hanem az, hogy lehessen linuxon játékot fejleszteni)
Szerk.: kipróbáltam, de nálam csak a sima i386-os jöhet számításba, újra letöltöttem, és ugyanaz a hiba a telepítésekor mint amit már lentebb beraktam (hibás fájl leíró). Asse tudom ez mit jelent.
Ezt a hozzászólást Elf módosította (2009.09.06 15:45 GMT+1 óra, ---)
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
Ezt a hozzászólást bit.0x8000 módosította (2009.09.06 14:41 GMT+1 óra, ---)
|
|
|
A GCC fordító se mindegy mi a beépített fordító verziója. Annak a lecserélése nem triviális dolog, szóval inkább a live CD.
|
|
|
A telepített fájlok alatt fel lesz sorolva, hova telepítette a headereket/libeket.
Szerk.: Nem szóltam, bocs
|
|
|
Nekem knoppix linux live CD-vel is tökéletesen működött az irrlicht a beépített C++ fejlesztői eszközzel. Azzal a csomagkezelővel nem tudom mit csinálsz, de úgy emlékszem semmit se kellett telepíteni hozzá. (mondjuk live CD-re nehéz is lett volna.  ) Viszont a telepített UHU linuxon abszolút nem ment a fordító miatt. Érdekes ez a linux.
Szerintem rögtön ne a játékot, hanem csak egy frissen letöltött irrlicht SDK-t ban nézd meg a példaprogramokat. Azoknak mennie kéne.
|
|
|
Csak nem hagyott nyugodni a dolog, de még mindig nem jutottam semmire. Ez már a lassan a kész röhej kategóriába tartozik. Igazából a neten sem találtam semmit ami használható lenne. Az a pár "rakd fel ezt, rakd fel azt, that's all!" típusú leírás semmit nem segít, mert hiába rakom amit kell, mégsem műxik a dolog.
Megpróbáltam a launchpad-os dolgot is, de azt meg nem lehet telepíteni. Ez amit letöltöttem:

és az eredmény:
A CodeBlocks-ban sem jutottam semmire. A beállításai:
A fordításkori hibaüzenet:
Az include könyvtár és tartalma:
Azt nem értem, hogy linux alatt nincs valami dll-szerű akármi amit a lefordított program könyvtárába kellene másolni (vagy egy shared folderbe), ahonnan el tudná érni a program az irrlicht-et? Az irrlicht honlapjáról letölthető legfrissebb verzióban én nem láttam ilyesmit, de lehet, hogy vakegér vagyok már megint.
Van valakinek tapasztalata irrlicht-linux páros használatában/telepítésében?
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
Idézet Elf :
Meg aztán még azt is el tudom képzelni, hogy a linuxnak hála a csodaszuper kis játékom az én gépemen működik, másén meg nem mert valami szaros lib régebbi vagy újabb mint kellene a gépén.
Erre találták ki a csomagkezelőt, az kezeli a függőségeket. Persze, ha te írsz egy progit, akkor ahhoz a csomagot is neked illik megcsinálni, ahol tudnod kéne hogy mit és miért jelölsz meg függőségként.
Ha binárisból telepítesz (telepítik a progid), akkor "manuálisan" kell telepítened/megadnod a szükséges csomagokat.
Forráskódból fordításnál szintúgy, de itt még a "fejlesztői" csomagokra (általában "-dev" végződésűek) is szükséged lesz.
szerk.:
Ha új lib-eket telepítettél/másoltál, néha hasznos lehet egy "ldconfig" a terminálról...
Ezt a hozzászólást bit.0x8000 módosította (2009.09.05 16:19 GMT+1 óra, ---)
|
|
|
A /usr/lib/ vagy /usr/share/ alatt van valami irrlichtes?
Azokat linkelted?
Csak tipp!
Vagy nézd meg ezt a linket, az oldal alján van valami leforditott irrlicht, meg lib-eket is láttam!
https://launchpad.net/~kai-mast/+archive/ppa
A launchpad.net egyébként elég nagy közösség akik különböző programokat forditanak le különböző ubuntu distrokra!
|
|
|
|
Akkor viszont több tippem nincs, mert linux téren én sem vagyok túl tapasztalt
|
|
|
Az irrlichtet ki sem lehet választani benne.
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
Akkor kapcsold be a Synaptic csomagkezelőt, és az majd telepíti magától a libeket
|
|
|
Hát, szerintem feladom a dolgot. Minden elismerésem a linuxon programozó mazochistáknak, de ez egy kész elmebaj. Elvileg minden be van állítva, a leírások alapján minden hülye lib és függőség telepítve van (bár igazából nem is kellene az irrlichthez), Joga útmutatása alapján beállítottam a lib-ek és az include-ok útvonalát, mégsem megy még a hello world sem. Meg aztán még azt is el tudom képzelni, hogy a linuxnak hála a csodaszuper kis játékom az én gépemen működik, másén meg nem mert valami szaros lib régebbi vagy újabb mint kellene a gépén. Asszem marad a winfosos játékfejlesztés. (persze ha valami linuxos hozzáértő elmondaná hogy is van ez, az nagy segítség lenne)
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
hmm... A libeket rendesen linkelted?
( Vagy mivel irrlicht és Ubuntu említése esetén a multiplatform esete is fennáll, ezért a fordító által pl Windows-ban generált .o fájlokat törölni kell  )
Szerk.: De szvsz linux alatt linuxon fordított libek és .o-k kellenek, de ebben annyira nem vagyok biztos
|
|
|
Hozzáadtam és ugyanaz a hibaüzenet: "undefined reference to irr:.... blabla"
Ilyenkor mi van? (azon kívül, hogy hülye vagyok)
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
Settings -> Compiler and Debugger -> search directories -> compiler vagy linker -> add
És itt hozzáadod a libek, include-ok elérési útvonalát
|
|
|
Megpróbáltam Ubuntura codeblocks-al használva beüzemelni az irrlichtet, de semmire sem jutottam. Azt értem, hogy nem kell(ene) újra fordítanom az irrlichtet, de akkor hogyan kell ezt használni codeblocksból? Ha új projectet kezdek, akkor ott ki lehet választani, hogy új irrlichtes project, de aztán azt kéri, hogy adjam meg, hova lett telepítve. Ez OK, de itt melyik könyvtárat kell megadni?
I, Robot
1. A robotnak nem szabad kárt okoznia emberi lényben.
2. A robot engedelmeskedni tartozik az emberi lények utasításainak.
3. A robot tartozik saját védelméről gondoskodni.
|
|
|
Köszi, ez a CollisionAnimator valóban működik, és ez az egész sokkal egyszerübb mint gondoltam 
A kamera vezérlő átírásával még mindig nem boldogulok - lehet azért, mert nem foglalkoztam vele?  - úgyhogy marad az egyszerübb - kevésbé elegáns - beillentyűzetkezelgetés.
THX mégegyszer a segítőkész hozzászólásokert )
|
|
|
Idézet mates86 :
Hali
Egy kis segítségre lenne szükségem. Az FPS camerát szeretném úgy megoldani, hogy az a WASD billentyűkkel mozogjon. Arra rájöttem, hogy valami sKeyMap* -ra lesz szükség, de használnatára nem jöttem még rá.
A másik amiben a segítségetek kérem, az a lebegés megszüntetése. Tehát ne lebegjen a kamera, hanem csak a terrain -on mozogjon, ne lehessen repülni. A noVerticalMovement bekapcsolása önmagában nem müködik, mert ha a dombon felmegyek, azután tovább lebegek. Úgyhogy ha valakinek van erre jó ötlete, ne tartsa magában. 
A lebegést purebasic irrlicht wrapper alatt így lehet megszűntetni :
*ret = IrrAddCollisionAnimator( *MapCollision, *CameraNode, 30.0,30.0,30.0, 0.0,-3.0,0.0, 0.0,50.0,0.0 )
Ahol a -3 érték az y tengelyre ható gravitációt reprezentálja,és mivel ez negatív így mindíg "esik lefelé" a játékos.Valójában hogy irrlicht alatt ez hogyan működik azt nemtudom de keress valami olyat hogy "CollisionAnimator" vagy "CollisionResponseAnimator" valami és azzal kisérletezz / tanulmányozd
Ja és még valami :
szerk:
Ezt olvasd el lehet hogy segít időközben ezt találtam
http://irrlicht.sourceforge.net/docu/example007.html
Ezt a hozzászólást Dookle módosította (2009.04.18 15:29 GMT+1 óra, ---)
|
|
|
A "lebegés" megszüntetése egyszerű:
a kamera y pozíciója legyen egyenlő a terrain magasságával (a kamera x,z pontjánál).
A többihez, meg egyszerűen egér pozícióját megnézed, a gombokat ellenőrzöd, és az alapján mozgatod a kamerát.
|
|
|
ötletem van egy rakás de ahhoz programozni kell (tudni).
a többi ötletermhez googlezni kell tudni.
és van egy harmadik is amihez meg dokumentációt kell olvasni.
|
|
|
Hali
Egy kis segítségre lenne szükségem. Az FPS camerát szeretném úgy megoldani, hogy az a WASD billentyűkkel mozogjon. Arra rájöttem, hogy valami sKeyMap* -ra lesz szükség, de használnatára nem jöttem még rá.
A másik amiben a segítségetek kérem, az a lebegés megszüntetése. Tehát ne lebegjen a kamera, hanem csak a terrain -on mozogjon, ne lehessen repülni. A noVerticalMovement bekapcsolása önmagában nem müködik, mert ha a dombon felmegyek, azután tovább lebegek. Úgyhogy ha valakinek van erre jó ötlete, ne tartsa magában.
|
|
|
Kösz a javaslatokat mindekinek. Szerintem menni fog a lock() függvénnyel, de még nem próbáltam magát az adatterületet írni, majd valamikor ha lesz időm kipróbálom.
|
|
|
<off>
Kandur ez nem az a téma hogy mindenki használjon c#-ot...
<on>
keedav tudsz olyan trükköt játszani egy tökéletes körre, hogy kirajzolsz egy quadot, és írsz hozzá egy pixel shadert ami méegnézi hogy az adott részt ki-e kell rajzolni és ha nem akkor kill-ezed a shadert (vagyis nem rajzolsz pixelt).
raytraceisten és übermedic
|
|
|
az ITexture-nak van olyan metódusa, hogy lock(), ezzel irhatod magát az adatterületet és nem kell image.
én hogy csinálnám: lenne egy db texturám amit mindig felülirok a következö "frame"-el a körböl.
Ezt a hozzászólást Asylum módosította (2009.02.22 23:41 GMT+1 óra, ---)
|
|
|
Idézet keedav :
Mit tegyek ahhoz, hogy folyamatosan változzon a körcikk, de ne emésszen nagy memóriát?
Használ az Irrlicht.NET-et és nem lesznek ilyen gondjaid.
dynamic calc = GetCalculator();
var sum = calc.Add(10, 20);
|
|
|
Üdv.
Elég nagy problémába ütköztem miközben használtam az irrlichtet C++ alatt, remélem valaki tud segíteni.
Az a helyzet, hogy olyan HUD elemet kezdtem el csinálni, ami egy körcikket rajzol ki egy képből, megadott szöggel. Ezt úgy csináltam, hogy a betöltött képnek csak azokat a pixeleit rajzoltam át egy üres képbe, amik teljesítik az egyenlőtlenséget. Ezzel nincs is probléma. Viszont az van, hogy én csak ITexture* típust tudok kirajzoltatni a képernyőre, pixeleket meg IImage*-en lehet állítani, úgyhogy ideiglenesen létrehoztam egy ideiglenes ITexture* típust és a már manipulált képet abba másoltam és azt rajzoltam ki. Így kirajzolja a növekvő körcikket, futás közben viszont folyamatosan halmozódik fel a textúra a memóriában és ez nem jó. Viszont ha használom a textúratörlő parancsot, akkor meg nem akarja frissíteni az ideiglenes textúrámat az új kép szerint, így a körcikk a képernyőn nem növekszik.
Mit tegyek ahhoz, hogy folyamatosan változzon a körcikk, de ne emésszen nagy memóriát? Itt a függvény amit használok.
Kód: void korrajzol(video::IVideoDriver* driver,video::IImage* source,video::IImage* image,float szog)
{
int i,j;
video::ITexture* target=NULL;
image->fill(video::SColor(255,255,0,255));
for (i=1;i<=200;i++)
{
for (j=1;j<=200;j++)
{
if (j>(tan(-rad(szog))*(i-100)+100)&&j<100)
{
image->setPixel(i,j,source->getPixel(i,j));
}
}
}
target=driver->addTexture("cur",image);
driver->draw2DImage(target,core::position2d<s32>(300,200),core::rect<s32>(0,0,200,200),
0,video::SColor(255,255,255,255),true);
//driver->removeAllTextures();
//driver->removeTexture(target);
cout<<driver->getTextureCount()<<endl;
//target->drop();
}
Előre is köszi.
|
|
|
Kösz. Olvasgattam a leírást, de marhára nem értem hogy mi a rákot akar. Lehet hogy én vagyok holt suta, de semmit nem akar nekem csinálni...
|
|
|
|
De én msvs használok, és véletlen se találok patch-hez hasonló dolgot sem...
|
|
|
Meglepő módon, a progit úgy hívják, hogy patch. 
Nálam a mingw/msys része. Patch fájlokat meg a diff-el lehet gyártani.
|
|
|
A forráskódhoz vannak javítások, és a javítások ilyen patch fájlban vannak. Aminek igazából a tartalma annyi, hogy melyik fájl melyik részét mire cserélje. Ki is cserélném, csak az a baj hogy egy kicsit sok... Ezek egy egyszerű xy.patch fájlok... szerintem van valami kis progi valahol ami ezt megcsinálja, csak nem találom  .
|
|
|
Szvsz Berakod, elindítod az exe-t, és az kicseréli a módosított file-okat( pl exe, vagy a képek, stb )
|
|
|
Lehet hogy hülye kérdés, de hogy lehet a patch -eket alkalmazni?
|
|
|
Kössz
nem értem mért nem gondoltam erre, a program ablakának címsorába ráadásul ki is van íratva a magasság
|
|
|
beolvasod a terrain magassagat azon a ponton ahol karakter all,majd beallitod a karakter 'Y' koordinatajat erre az ertekre.
|
|
|
Hali
Heightmap-al létrehozott terrainon hogy lehet egy karakterrel mozogni?
igazából csak az a része kellene hogy a terrain felszínén mozogjon és ne menjen át rajta.
|
|
|
Kösz, bár guihoz akartam, 2D-ben ( egy egyszerű háttérkép ), de akkor megcsinálom így, késöbb úgy is lehet hogy 3d-s cuc lesz ott.
|
|
|
|
Megkérhetnék valakit hogy írjon egy mintát, hogy hogyan kell egy képet átméretezni. Olvastam minden félét, de nem értem miért nincs egy normális setScale ... vagy akármi ilyen...
|
|
|
Nos, először is. A .pk3 fájlok sima tömörített mappákat tartalmaznak.
Nem a pk3 a pálya, csak abban van. Irrlicht esetén abban valószínüleg egy *.bsp van.
Na, az a pálya fájl!
Amint megnézed, h. mivel hívja be, már az is árulkodó egy kicsit.
device->getFileSystem()->addZipFileArchive("valami.pk3"  ;
|
|
|
nem ellenörzött semmit a progi,egyszerűen a nyomogómb létrehozása előtt törölted az 'env' objektumot!
|
|
|
hát én ilyen stratégiárol még nem hallottam...amikor egy másik oldalra mész egyszerűen az kapja meg a fókuszt és csak az rajzolódik ki (volt egy ilyen xna-s példaprogram).
|
|
|
hát biztos van előnye annak is, hogy láthatatlanná teszek valamit, illetve annak is, hogy törlöm, és amikor kell, újra létrehozom.
egy adminisztrációs felületet szerkesztek, ahol gombok és editboxok tömkelege tornyosul, és mivel hivatkozni kell szinte az összes editbox-ra, illetve reagálni egy gombkattintásra, valamint a menükben ide-oda mászkálni, szal számomra a clear() fgv a legtisztább megoldás.
és azzal is para volt, hogy amikor egy oldalat betöltöttem, akkor létrejöttek az objektumok, kirajzolódott szépen minden, köv oldalra ugrás, clear() fgv meghívása, egyéb dolgok, aztán back az előző oldalra, ami ismét clear() fgv-el kezdődik, DE az előzőekben létrehozott objektumok élnek, hiába törölte a clear() fgv a képernyőt. ez furcsa volt számomra.
a lehetséges objektumokra kellett egy if(objektum) objektem = NULL; pointer törlést csinálnom minden objektumra.
ezek szerint a clear() bár letörli a képernyőt, de a létrehozott objektumokat (pointereket) mégsem állítja NULL-ra...
|
|
|
Idézet Asylum :
de...nem értem hogy az hogy letörlöm a képernyőt az hogy tud bármit is befolyásolni. csak a back/front bufferek értékeit beállitja valami konstansra nem vész el semmilyen adat lehetetlen hogy ettől szálljon el.
Előző postba már beírtam. GUI-nál van olyan, hogy egy combo box pointerre hivatkozol, ami nincs akkor az bizony elszál, ha menet közben letörlöd. Az más kérdés, hogy minek törölgetni, ha láthatalanná is lehet tenni.
|
|
|
de...nem értem hogy az hogy letörlöm a képernyőt az hogy tud bármit is befolyásolni. csak a back/front bufferek értékeit beállitja valami konstansra nem vész el semmilyen adat lehetetlen hogy ettől szálljon el.
szerk.:
"removes all elements from the environment."
maxnak volt igaza ez minden létrehozott objektumot kitöröl.
de olyat miért kell futási időben?
|
|
|
Úgy értettem én is, hogy a képernyőn mindent, hiszen az ellenőrzés is állítólag arra vonatkozott.
Egyébként igen fura probléma. Konkrétan GUI-nál én egyszerűen a visible-t falsra állítottam és akkor nem jelent meg adott elem, nem törlés után újra rajzolgatás. Így nem volt rossz hivatkozás sem. Akkor van a gond, ha az ember magának csinálja a problémát.
Ezt a hozzászólást ~Cre@tine~> módosította (2008.02.28 12:45 GMT+1 óra, ---)
|
|
|
Legújabb project:
Smashed Potatoes
Legutóbb frissített project:
Smashed Potatoes
Friss kép a galériából:
|