játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5484
FZoli:    4893
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2526

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2196
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] > 100 < [105] [110] [115] [120] [125] [130] [135] [140] [142]
TPG - Tag | 3402 hsz       Online status #66238   2007.08.08 14:46 GMT+1 óra  
Idézet
gaborlabor :
Akadt egy kis gondom a realloc-kal.
Olyat szeretnék, hogy van egy mutatóm, kezdetben lefoglalok vele mondjuk 500 byte-ot, dolgozgatok a tömbbe, mikor a változó amivel indexelem a tömböt eléri az 500-at, akkor realloc-kal megnövelem a tömb méretét újabb 500-zal...
Azért ez a módszer mert stl vectort még nem ismerem, azaz nem tudom használni...

A gond az, hogy ezt írják a neten a realloc kapcsán:
If the new size is larger, the contents of the newly allocated portion of the object are unspecified.

Akkor ezek szerint ha megnövelem a tömb méretét 500-ról 1000-re, akkor az első 500 elem értéke elveszik?

szerk: ez sebességkritikus programrész, ezért nem szeretném láncolt listával csinálni.


Én úgy tudom hogy megmaradnak az eredeti blokkban lévő adatok. De az angol szöveg amit idézel az is csak annyit mond hogy az újonnan lefoglalt rész tartalma meghatározatlan.
Reality is almost always wrong. - House

   
gaborlabor - Moderátor | 4449 hsz       Online status #66234   2007.08.08 14:38 GMT+1 óra  
Akadt egy kis gondom a realloc-kal.
Olyat szeretnék, hogy van egy mutatóm, kezdetben lefoglalok vele mondjuk 500 byte-ot, dolgozgatok a tömbbe, mikor a változó amivel indexelem a tömböt eléri az 500-at, akkor realloc-kal megnövelem a tömb méretét újabb 500-zal...
Azért ez a módszer mert stl vectort még nem ismerem, azaz nem tudom használni...

A gond az, hogy ezt írják a neten a realloc kapcsán:
If the new size is larger, the contents of the newly allocated portion of the object are unspecified.

Akkor ezek szerint ha megnövelem a tömb méretét 500-ról 1000-re, akkor az első 500 elem értéke elveszik?

szerk: ez sebességkritikus programrész, ezért nem szeretném láncolt listával csinálni.

   
gaborlabor - Moderátor | 4449 hsz       Online status #66116   2007.08.08 03:01 GMT+1 óra  
köszi, megnézem ezt is!

   
kiskami - Tag | 265 hsz       Online status #66108   2007.08.07 22:46 GMT+1 óra  
Aszinkron vagy overlapped (file) io lenne a user-thread nélküli megoldás.
(http://msdn2.microsoft.com/en-us/library/Aa365683.aspx)
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
gaborlabor - Moderátor | 4449 hsz       Online status #66095   2007.08.07 13:59 GMT+1 óra  
Idézet
ferchild :
mellesleg a timer is plusz thread csak el van rejtve előled


hát, az engem most nem zavar, ha el van rejtve előlem!
először kipróbálom timerrel, mert azt tudom használni, aztán ha nem jön be, akkor kell manuálisan megoldanom.

   
feamatar - Tag | 11 hsz       Online status #66093   2007.08.07 13:55 GMT+1 óra  
Matzi: köszönöm, azt hiszem értem már hogy s mint működik

   
ferchild - Törzstag | 815 hsz       Online status #66092   2007.08.07 13:52 GMT+1 óra  
mellesleg a timer is plusz thread csak el van rejtve előled
Feci Barath (by Kuz)
XD
http://már nem elérhető...új lesz
   
TPG - Tag | 3402 hsz       Online status #66085   2007.08.07 13:35 GMT+1 óra  
Idézet
gaborlabor :
.......
Szerintetek hogy lehet, hogy érdemes ezt megoldani? Gondoltam már a multithreading-re de nagyon remélem, hogy nem kell hozzá hanem anélkül is megoldható amit szeretnék. Nem szeretnék most egy ilyen apróság miatt a multithreading-gel foglalkozni, remélem van rá valami más mód vagy trükk.

Előre is köszi a tippeket!


Biztos van plusz thread-ek nélküli megoldás, de a legegyszerűbb thread-el megoldani.
Reality is almost always wrong. - House

   
gaborlabor - Moderátor | 4449 hsz       Online status #66082   2007.08.07 13:33 GMT+1 óra  
Matzi, beast: köszi! Akkor ezen majd elgondolkodom. Ha tényleg nem olyan nehéz, akkor érdemes lesz az alapjait megismerni. Egyelőre tényleg csak ilyen minimális szinten lenne rá szükségem.
Mondjuk amit feamatar mondott, az is megfontolandó. Az időzítős megoldás. Mert glutban alapból van glutTimerFunc, annak megadom hogy mondjuk x századmásodperc múlva hívja meg a frissítést elvégző függvényt, az a függvény meg újra meghívja az időzítőt saját magával... csak mindig ellenőrizni kell hogy végzett-e már a betöltés.
Bár a multithreading sokkal elegánsabb megoldás az is biztos.

   
beast - Törzstag | 1241 hsz       Online status #66079   2007.08.07 13:24 GMT+1 óra  
Logikusan gondolkodva, ha valamit csinálsz, akkor mást perpill nem tudsz, vagyis thread kell. Matzi kb. elmondta az én véleményemet is.

   
Matzi - Szerkesztő | 2526 hsz       Online status #66076   2007.08.07 13:22 GMT+1 óra  
gaborlabor:
Pedig rohadt egyszerű, asszem van egy olyan fv. hogy _beginThread(), és csak simán átadsz neki egy fv. címet, ami az új szálad lesz, és csinálsz egy egyszerű szemafort, ami jelzi ha vége, és akkor befejeződik. Én mondjuk inkább a betöltést tenném hátsó szálba, de amúgy sem bonyolult dolog. Ha nem tudod megoldani, hogy a betöltés szakaszosan menjen (pl szerintem a betöltő fv-ek nem nagyon engedélyeznek ilyesmit, akkor kénytelen leszel rá.

feamatar:
Az első megfigyelésed helyes, bár ez elég érdekes konstruktor, de működik.
A második kérdésedet nem értem. Arra gondolsz, hogy ha egy származtatott osztályt létrehozol, akkor előtte nem kell e alaposztálybéli objektum? Mert ez így van, a származtatott magában foglal egy alaposztálybéli objektumot. Ha arra gondolsz, hogy ez esetben kell e, akkor igen, ehhez nyilván kell egy, mert paraméterként át kell adjad.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
feamatar - Tag | 11 hsz       Online status #66067   2007.08.07 12:53 GMT+1 óra  
a Segédletek közt van a Programozás Játékfejlesztésen belül van DirectX programozás 1. - Bevezetés, Windows ablak létrehozása, Időzítő ez a cikk, ott van a timer leírása, szerintem azzal lehetne megcsinálni

   
gaborlabor - Moderátor | 4449 hsz       Online status #66060   2007.08.07 12:28 GMT+1 óra  
Üdv,
nekem is lenne egy kérdésem. Azt hiszem, ide tartozik leginkább.

Az lenne a kérdésem, hogy hogyan lehet azt megoldani, hogy egy játék elején a betöltés ideje alatt valami egyszerű animáció jelezze az állapotot. Valami ami elég egyszerű, de nem csak egy statikus loading kép, hanem valami amit ugyebár frissíteni kell a betöltés közben. De nem mindegy, hogy mikor..
Mert azt még egyszerű megcsinálni, hogy ha van 10 textúra akkor mindegyik betöltése után 10%-ot ugrik az állapotjelző (feltéve hogy csak a textúrák betöltése alatt akarjuk jelezni a loading állapotát).
De mi van akkor, ha én olyat szeretnék, hogy egy négyzet vagy kör vagy textúrázott poligon vagy bármi hasonló folyamatosan forogjon, lehetőleg szaggatás nélkül? Mert ilyenkor az nem megoldás, hogy minden egyes textúra betöltése után az eltelt idő függvényében elforgatom és újra megjelenítem, mert egyrészt nem lesz folyamatos, szaggatni fog, másrészt meg a forgás sebessége sem lesz állandó harmadrészt meg az is lehet hogy meg sem tesz egy kört. Szóval ez semmiképp nem jó.

Szerintetek hogy lehet, hogy érdemes ezt megoldani? Gondoltam már a multithreading-re de nagyon remélem, hogy nem kell hozzá hanem anélkül is megoldható amit szeretnék. Nem szeretnék most egy ilyen apróság miatt a multithreading-gel foglalkozni, remélem van rá valami más mód vagy trükk.

Előre is köszi a tippeket!

   
feamatar - Tag | 11 hsz       Online status #66000   2007.08.07 00:57 GMT+1 óra  
OOPt nemrég kezdtem, és az lenne a kérdésem, ha van egy származtatott osztályom,és a konstruktora a következőképp néz ki:

szarmaztatott(alap &dc, [további argumentumok]) : alap(dc)
{
}

ha jól értem ebben az esetben az alap osztály egy már létező példányának értékeivel tölti fel a származtatott osztály alaposztályának adattagjait. Vagy mivel referencia ezért itt nem történik értékmásolás, hanem egyszerűen a származtatott osztály a már létező példányt használja

és még egy kérdésem lenne amiben nem vagyok biztos, hogy jól értettem:
nem szükséges hogy létezzen az alaposztálynak példánya, mivel annak is lefut a konstruktora.?

   
Orphy - Törzstag | 1893 hsz       Online status #65140   2007.08.01 02:00 GMT+1 óra  
Megvan a hiba!

Betettem egy elég durva loggolást, és így végigteszteltem a cuccot.
A virtual függvények jól mentek, csak abban az esetben, amikor debugoltam, az App osztály előbb semmisült meg, minthogy megkapta volna az üziket, ezért csak a BaseApp-ig ment a cucc.

Továbbá máshogyan viselkedett fullscreen-re váltásnál és alt-tab-os elváltásnál az üziküldés - mint végül kiderült azért, mert elnéztem a Reset() függvényt... A régi motorból vettem át a kezelőosztályt, és a Reset ott BOOL-t ad vissza, én meg HRESULT-re vizsgáltam...
Ennek pedig az lett a vége, hogy nem jöttek az üzik.

Amiket én debugoltam, azok meg a CleanUp miatt jöttek...

( Ez van akkor, ha az ember munkaidőben, munka mellett, amikor a főnök nem figyel... Kapkod )

Mindenesetre sokat tanultam belőle, mindenkinek köszi.

   
Orphy - Törzstag | 1893 hsz       Online status #65035   2007.07.31 06:37 GMT+1 óra  
Jah, én is gondoltam erre, csak...

egy pure virtual ősosztályon kereszül nyomom a függvényhívásokat, és mindenhol ennek a pointerét használom - így az érték szerinti cast nem csúszhatott be, a pointer meg ilyen szempontból ugyanúgy műxik mint a ref - ergó azzal működnie kell.

A másik furcsaság, hogy a pure virtual ősosztály kb 6 függvényéből (amik közül mindegyik paraméter nélküli ráadásul) 3 rendesen működik, a maradék 3 pedig csak az első leszármazottig jut (a 2. leszármazott a cél).

Azért nem értem, mert ha ugyanolyan a deklaráció, ugyanúgy vannak hívva és kezelve ezek a függvények, akkor hogy lehet, hogy a fele jó... A másik fele meg nem...

   
Matzi - Szerkesztő | 2526 hsz       Online status #65032   2007.07.31 06:30 GMT+1 óra  
Idézet
Namármost, itt véletlenül nem a cDerived2 virtuális függvényének kellett volna meghívódnia?

SZERK:
Kód:
void Teszt2()
{
cDerived2 derived = cDerived2(6);
cBase& baseCast = (cBase&)derived;

baseCast.GetIOverride();
}
Ha castolod, akkor nem. Teljesen jogos a részéről, hogy így viselkedik, ha egyszer átírod a típusát.

Az eredeti felvetésedben is szerintem valami ilyesmi hiba csúszhatott be, hogy valahol kimaradt egy virtual jelző, vagy valamit castoltál, amit nem kellene. Így hirtelen ilyesmire tudok gondolni.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
kiskami - Tag | 265 hsz       Online status #65031   2007.07.31 06:27 GMT+1 óra  
Egyáltalán minek a típuskényszerítés?
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
Orphy - Törzstag | 1893 hsz       Online status #65027   2007.07.31 06:13 GMT+1 óra  
Ez eddig mind szép és jó, de sajnos az eredeti problémára nem nagyon sikerült rájönnöm...

Ez vajon miért?
   
Orphy - Törzstag | 1893 hsz       Online status #65025   2007.07.31 06:08 GMT+1 óra  
Még 1 érdekes.

Az előző kódhoz írtam egy második tesztet is:

Kód:
void Teszt2()
{
cDerived2 derived = cDerived2(6);
cBase baseCast = (cBase)derived;

baseCast.GetIOverride();
}


Tehát az override-olt függvényt a bázisosztályon keresztül hívom.
Eredmény:


cBase::cBase(int i)
cDerived::cDericed(int i)
cDerived2::cDericed2(int i)

cBase::GetIOverride()

cBase::~cBase()
cDerived2::~cDericed2()
cDerived::~cDericed()
cBase::~cBase()
A folytatáshoz nyomjon meg egy billentyűt . . .


Namármost, itt véletlenül nem a cDerived2 virtuális függvényének kellett volna meghívódnia?




SZERK:
Kód:
void Teszt2()
{
cDerived2 derived = cDerived2(6);
cBase& baseCast = (cBase&)derived;

baseCast.GetIOverride();
}


Referenciaként már működik.
   
Orphy - Törzstag | 1893 hsz       Online status #65023   2007.07.31 05:58 GMT+1 óra  
Matzi, kösz


Akkor az eddigieket összefoglalva írtam 1 kis bemutató-projektet, amin látszik hogy mi hogyan történik. 3 osztály lesz, ezek egymásból származnak.

Kód:
#include <iostream>
using namespace std;

class cBase
{
public:
cBase(int i)
{
cout << "cBase::cBase(int i)" << endl;
this->i = i;
}
~cBase()
{
cout << "cBase::~cBase()" << endl;
}

int GetI()
{
cout << "cBase::GetI()" << endl;
return this->i;
}

virtual int GetIOverride()
{
cout << "cBase::GetIOverride()" << endl;
return 0;
}

protected:
int i;
};



class cDerived : public cBase
{
public:
cDerived(int i) : cBase(i)
{
cout << "cDerived::cDericed(int i)" << endl;
}
~cDerived()
{
cout << "cDerived::~cDericed()" << endl;
}

virtual int GetIOverride()
{
cout << "cDerived::GetIOverride()" << endl;
return this->i;
}
};



class cDerived2 : public cDerived
{
public:
cDerived2(int i) : cDerived(i)
{
cout << "cDerived2::cDericed2(int i)" << endl;
}

~cDerived2()
{
cout << "cDerived2::~cDericed2()" << endl;
}

virtual int GetIOverride() override
{
cout << "cDerived2::GetIOverride()" << endl;
return cDerived::GetIOverride();
}
};



void Teszt()
{
cout << "Creating cDerived object." << endl << endl;
cDerived derived = cDerived(5);
cout << endl << endl;

cout << "Calling base method." << endl << endl;
int x = derived.GetI();
cout << endl << endl;

cout << "Calling overridden method." <<endl << endl;
int y = derived.GetIOverride();
cout << endl << endl;

cout << "Creating cDerived2 object." << endl << endl;
cDerived2 derived2 = cDerived2(3);
cout << endl << endl;

cout << "Calling base method." << endl << endl;
x = derived2.GetI();
cout << endl << endl;

cout << "Calling overridden method." <<endl << endl;
y = derived2.GetIOverride();
cout << endl << endl;

cout << "Resources will go out of scope." <<endl << endl;
}



int main()
{
Teszt();

system("pause");
return 0;
}



A program kimenete:

Creating cDerived object.

cBase::cBase(int i)
cDerived::cDericed(int i)


Calling base method.

cBase::GetI()


Calling overridden method.

cDerived::GetIOverride()


Creating cDerived2 object.

cBase::cBase(int i)
cDerived::cDericed(int i)
cDerived2::cDericed2(int i)


Calling base method.

cBase::GetI()


Calling overridden method.

cDerived2::GetIOverride()
cDerived::GetIOverride()


Resources will go out of scope.

cDerived2::~cDericed2()
cDerived::~cDericed()
cBase::~cBase()
cDerived::~cDericed()
cBase::~cBase()

A folytatáshoz nyomjon meg egy billentyűt . . .
   
Matzi - Szerkesztő | 2526 hsz       Online status #65018   2007.07.31 05:31 GMT+1 óra  
Orphy:
Ha jól értem amit szeretnél, akkor az a megoldás, hogy minden virtuális függvényben meghívod az ősosztály függvényét, mert a virtuális függvény esetén mindig csak a legújabb hívódik meg.

Tehát:
Kód:
class Os{
  A(){}
};
class Ez: public Os{
virtual void A(){
  Os::A();
};
}

Azthiszem legalábbis, hogy így van valahogy. Nyilván, ha az elején hívod meg, akkor a legalsó ősosztályé fut le először, ha a végén, akkor meg a legújabb fut le, értelemszerűen.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Orphy - Törzstag | 1893 hsz       Online status #65012   2007.07.31 04:54 GMT+1 óra  
Köszi.

A másodikra: virtuális tagfüggvényt csak a konstruktor lefutása után lehet használni, mert csak akkor állítódik be a virtuális fvtábla.
Az elsőre annyi tippem lett volna, hogy nem pointeren keresztül hívod, de aztán láttam hogy a szerkben mit írtál.


Az a baj, hogy az a virtuális függvény maga a konstruktor volt...
Így akartam ugyanis megoldani, hogy a legfontosabb dolgok átadását semmiképpen se lehessen kikerülni.
Most átraktam default konstruktorra, és külön kell hívni, így megy.

A másodikat elolvasva az a sanda gyanúm támadt, hogy ezt nem is lehet akkor a konstruktoros módszerrel megoldani...



A másikra...

Az a legfőbb gond, hogy a Render() és az Update() hívások mennek, a DeviceLost és a DeviceReset viszont nem jut el a GameApp-ig.
A vicces, hogy tényleg mindegyik ugyanúgy van kezelve, még a paraméterlistájuk is ugyanaz, és kidebugoltam, az engine elküldi a hívást. Mégis, a DeviceLost és DeviceReset nem jut el az App-ig, hanem megrakaed az ősosztályban, míg a Render és Update esetében az ősosztálybeli megfelelőjük soha nem fut le.

Ha mindegyik menne, vagy egyik sem, akkor ok, de így nem értem.


Jah, és ha már itt tartunk...
Ha ez ilyen furán működik, egy ilyen buborék-szerű event rendszert hogyan érdemes megoldani?
Gondolok itt arra, hogy megkapja az ős az üzit, és az végigmenjen az ÖSSZES virtual függvényen. Ha pl az eventkezelős ősből 3 osztályon keresztül vittem az eventeket, akkor kapja meg mind a három...

SceneGraph-os objektekhez ez kelleni fog
   
WToma - Szerkesztő | 635 hsz       Online status #65007   2007.07.31 04:17 GMT+1 óra  
A másodikra: virtuális tagfüggvényt csak a konstruktor lefutása után lehet használni, mert csak akkor állítódik be a virtuális fvtábla.
Az elsőre annyi tippem lett volna, hogy nem pointeren keresztül hívod, de aztán láttam hogy a szerkben mit írtál.

Szerk: találtam egy forrást is, mivel tudom hogy te C#-ből érkeztél: "C++ constructs objects from base to derived, so when the base constructor is executing the object is effectively a base object, and virtual method calls are routed to the base class implementation. By contrast, in .NET the derived constructor is executed first, which means the object is always a derived object and virtual method calls are always routed to the derived implementation." (http://www.andymcm.com/csharpfaq.htm#3.9)
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
Orphy - Törzstag | 1893 hsz       Online status #64996   2007.07.31 03:42 GMT+1 óra  
Még 1 nagy gond...

Kód:
cGameApp(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd): cApplicationBase(hInstance,hPrevInstance,lpCmdLine,nShowCmd)
{
InitApp();
}


Itt az InitApp() nem fut le, amikor az osztályt példányosítom... Kidebugoltam...
Valahogyan nagyon furán működnek itt ezek a függvény override-ok...

Tud valaki segíteni?
   
Orphy - Törzstag | 1893 hsz       Online status #64973   2007.07.30 23:26 GMT+1 óra  
Nah, nálam is egy kérdés...

Szeretnék felépíteni egy event-láncot:

pl a grafikus objektum érzékeli hogy elveszítette az eszközt, ezért az engine mélyéről küld egy OnDeviceLost üzit, ami aztán keresztülmenne az alkalmazás bázis osztályán, és végül maga az app kapná meg.

ez a gyakorlatban nálam így néz ki:

Kód:
class cGFXEventHandler
{
public:
virtual void OnGFX_CreateDevice(){};
virtual void OnGFX_DestroyDevice(){};
virtual void OnGFX_LostDevice(){};
virtual void OnGFX_ResetDevice(){};
virtual void OnGFX_Update(){};
virtual void OnGFX_Render(){};
};


Az alkalmazás bázisának több őse van, az egyik a fenti osztály.
A fenti függvények itt is megvannak.

Kód:
virtual void OnGFX_CreateDevice(){};
virtual void OnGFX_DestroyDevice(){};
virtual void OnGFX_LostDevice(){};
virtual void OnGFX_Render(){};
virtual void OnGFX_ResetDevice(){};
virtual void OnGFX_Update(){};



Végül magában az alkalmazás osztályban is definiálva vannak az osztályok (az osztály az alkalmazás bázisból származik), és itt van implementálva minden amit a különböző események hatására tenni kell.

Az a gond, hogy érdekesen viselkedik.
Egészen pontosan nem kap meg minden eseményt...

Az engine osztályál még látom, hogy meghívja az alkalmazás-bázis megfelelő függvényét - ami pl a Render() esetében szépen végig is megy, de pl DeviceLost-nál azt látom, hogy az alkalmazás-bázisban levő, üres fv hívódik, és nem jut tovább magára az alkalmazásra, holott elviekben teljesen ugyanúgy működik, mint a Render()...

Van valakinek valami ötlete, hogy mi lehet a baj?

Szerk:
Az alkalmazás-bázis megfelelő függvényét az Engine hívja meg, egy alkalmazás-bázis típusú pointeren keresztül. Az egyik függvény esetében csak az alkalmazásban levő kód, a másik esetében pedig csak az alkalmazás-bázisban levő üres függvénytörzs fut, holott ugyanúgy működnek, ugyanúgy lettek hívva, stb.
   
gaborlabor - Moderátor | 4449 hsz       Online status #64965   2007.07.30 15:53 GMT+1 óra  
Idézet
TheProGamer :
Idézet
gaborlabor :
öö..izé... mi az az engine movie?


Az engine-el készült videók, nincsenek videóként előre felvéve hanem real-time "történnek meg" (lényegében egy halom script, animáció és hang).
Pl.: Doom3 videói, GTA3+ részek átkötő videói, HL2-ben a kivetítők (általában Dr Breen-el) stb.


köszi köszi, így már vágom, csak nem tudtam, hogy azokat engine movie-nak nevezik.
hmm most veszem csak észre, hogy az "engine movie" milyen beszédes elnevezés valójában

   
Joga - Törzstag | 1791 hsz       Online status #64962   2007.07.30 15:47 GMT+1 óra  
Idézet
TheProGamer :
Idézet
gaborlabor :
öö..izé... mi az az engine movie?


Az engine-el készült videók, nincsenek videóként előre felvéve hanem real-time "történnek meg" (lényegében egy halom script, animáció és hang).
Pl.oom3 videói, GTA3+ részek átkötő videói, HL2-ben a kivetítők (általában Dr Breen-el) stb.

jedi Knight 2
(ಠ ›ಠ) Stewie!

   
TPG - Tag | 3402 hsz       Online status #64961   2007.07.30 15:46 GMT+1 óra  
Idézet
gaborlabor :
öö..izé... mi az az engine movie?


Az engine-el készült videók, nincsenek videóként előre felvéve hanem real-time "történnek meg" (lényegében egy halom script, animáció és hang).
Pl.: Doom3 videói, GTA3+ részek átkötő videói, HL2-ben a kivetítők (általában Dr Breen-el) stb.
Reality is almost always wrong. - House

   
gaborlabor - Moderátor | 4449 hsz       Online status #64960   2007.07.30 15:43 GMT+1 óra  
Idézet
TheProGamer :
[...]
Ha valaki talál ingyenes videó lejátszó/dekódoló lib-et C++ hoz akkor az ne habozzon szólni mert engem is érdekelne a dolog (valamivel meg kell oldani a videólogókat ).


AVIFile
http://avifile.sourceforge.net/
crossplatformnak tűnik
Ott vannak leírások is, de OGL-hez ott van NeHe cikke is:
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=35
(bár szerintem nem lehet túl nehéz átírni DX-esre)

   
gaborlabor - Moderátor | 4449 hsz       Online status #64956   2007.07.30 15:31 GMT+1 óra  
öö..izé... mi az az engine movie?

   
TPG - Tag | 3402 hsz       Online status #64955   2007.07.30 15:27 GMT+1 óra  
Idézet
beast :
Idézet
MaximumViolence :
ellenjavalltakkor mit javasol a jóisten DShow helyett?


Engine movie-k.


Mondjuk egy ideig meg lehet így is oldani (lásd HL2 kivetítői Dr Breen-el).


Ha valaki talál ingyenes videó lejátszó/dekódoló lib-et C++ hoz akkor az ne habozzon szólni mert engem is érdekelne a dolog (valamivel meg kell oldani a videólogókat ).
Reality is almost always wrong. - House

   
beast - Törzstag | 1241 hsz       Online status #64952   2007.07.30 15:13 GMT+1 óra  
Idézet
MaximumViolence :
ellenjavalltakkor mit javasol a jóisten DShow helyett?


Engine movie-k.

   
WToma - Szerkesztő | 635 hsz       Online status #64947   2007.07.30 15:04 GMT+1 óra  
Azért most nagyon tolják a Vistát + DX10-et + új fícsöröket... és eléggé agresszívan. emlékeim szerint a 9x-XP váltás nem volt ekkora trauma. (vagy csak az idő szépít?)
Ez nem bug, hanem feature!
http://sohivatal.uw.hu
   
TPG - Tag | 3402 hsz       Online status #64942   2007.07.30 14:55 GMT+1 óra  
Idézet
MaximumViolence :
ellenjavalltakkor mit javasol a jóisten DShow helyett?


Tudtommal jelenleg semmit. Nem kell videót lejátszani és kész. A Vista-ban van helyette a Microsoft Media Foundation, az XP meg gondolom le van tojva.
Reality is almost always wrong. - House

   
MaximumViolence - Törzstag | 1020 hsz       Online status #64922   2007.07.30 14:32 GMT+1 óra  
ellenjavalltakkor mit javasol a jóisten DShow helyett?
Ez egy reszeg post...

   
Swinkx - Törzstag | 106 hsz       Online status #64896   2007.07.30 10:25 GMT+1 óra  
Idézet
TheProGamer :
Emlékeim szerint még létezik de már a franc sem tudja mióta a Platform SDK része (és nem a DXSDK-é) és kb azóta ellenjavallt az MS által a használata.


2005.április...

   
TPG - Tag | 3402 hsz       Online status #64888   2007.07.30 07:59 GMT+1 óra  
Idézet
kuzanth :
A DirectShow még él?...Azt hittem, hogy már kb augusztus óta deprecated...Vagy az az mdx-es DirectShow ...


Emlékeim szerint még létezik de már a franc sem tudja mióta a Platform SDK része (és nem a DXSDK-é) és kb azóta ellenjavallt az MS által a használata.
Reality is almost always wrong. - House

   
MaximumViolence - Törzstag | 1020 hsz       Online status #64876   2007.07.30 05:39 GMT+1 óra  
Idézet
kuzanth :
A DirectShow még él?...Azt hittem, hogy már kb augusztus óta deprecated...Vagy az az mdx-es DirectShow ...


hát azt nemtom,én natívan kódolok
Idézet
gaborlabor :
Hééé, ne térítsd el, simán lehet, hogy OGL-es!


megverekszünk érte?

Szerk.:666 hsz
Ez egy reszeg post...

   
pataiadam - Tag | 3 hsz       Online status #64875   2007.07.30 05:18 GMT+1 óra  
Megnézem mindkettőt de szerintem a DirectShownál maradok de persze megnézem az opent is.

A válaszokat köszönöm
   
Kuz - Törzstag | 4455 hsz       Online status #64869   2007.07.30 04:48 GMT+1 óra  
A DirectShow még él?...Azt hittem, hogy már kb augusztus óta deprecated...Vagy az az mdx-es DirectShow ...
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
gaborlabor - Moderátor | 4449 hsz       Online status #64866   2007.07.30 04:44 GMT+1 óra  
Hééé, ne térítsd el, simán lehet, hogy OGL-es!
És igen, meg lehet csinálni, OGL-lel is!
DE ennek semmi köze a Dev-C++hoz, az csak egy IDE (fejlesztőkörnyezet).
Ha OpenGL-t használsz, akkor
http://nehe.gamedev.net/
és ott keress rá, van egy tutorial ami pontosan avi fájlok betöltéséről és lejátszásáról szól.
Ha DX-et használsz, akkor az van ami MaximumViolence írt.

   
MaximumViolence - Törzstag | 1020 hsz       Online status #64864   2007.07.30 04:33 GMT+1 óra  
Ha elkezdesz játékot fejleszteni,előbb-utóbb össze fogsz futni a DirectX SDK-val,aminek egyik "darabja" a DirectShow,az pont erre van kitalálvaitt a portálon találsz is néhány DX-es tutorialt DevCpp alá
Ez egy reszeg post...

   
pataiadam - Tag | 3 hsz       Online status #64863   2007.07.30 04:23 GMT+1 óra  
Egyet viszont kérdeznék (később többet is).

Azt meglehet DevC++-ban csinálni, hogy egy .avi fájlt beillesztünk és lejátsza.

Pontosabban:

Van egy animáció készítő progim...Azzal készítek .avi-ban egy animációt. ( D:/film.avi ) Ezután mondjuk, hogy a játékot kijátszottam és bejönne ez az animáció ami a játék sztoriját lezárja. Tehát meglehet csinálni azt hogy egy animációt a játékomba beillesszek, mondjuk az elérési utján??? Vagy valahogy?DevC++

köszönöm
   
pataiadam - Tag | 3 hsz       Online status #64862   2007.07.30 04:10 GMT+1 óra  
HI
Új tag vagyok. Most keztem tanúlni a C++ nyelvet. Előte tanúltam a QBasic, Html és Pascal nyelvet, de csak a QBasic ment jól. Most egy kicsit nehezebbe vágtam a fejszét... Remélem jót választottam... Az alapokat már tudom (hello world, int, if, else...) és most találtam egy honlapot ahól 2D-s játékfejlesztésről van szó DevC++-ban. Tehát mostmár áttértem a játékfejlesztésre... Remélem hamarosan (6-8 hónap) ott lesz a garázsban az egyik játékom
   
gaborlabor - Moderátor | 4449 hsz       Online status #64850   2007.07.29 15:37 GMT+1 óra  
Ezt írtam be a googleba:
Visual Studio Express Edition CD image

Első találat


   
Kuz - Törzstag | 4455 hsz       Online status #64847   2007.07.29 15:28 GMT+1 óra  
Idézet
TheProGamer :
Idézet
feamatar :
köszi a tippet, leszedtem már csak az a gond hogy elkezd telepíteni és megáll, annyit éír ki hogy
...


Ne a netes telepítőt szedd le hanem a CD image-t, a netes nekem sem működött.


És azt hol is kell keresni? Dobj egy linket pls, mert nekem sem megy a letöltött exe, ezt az image-et meg nem lelem !
A memóriám már nem a régi. És ráadásul még a memóriám sem a régi...
Az élet attól szép, hogy bármi megtörténhet. És attól szar, hogy meg is történik...
Ha az egyik szinkronúszó megfullad, mit csinál a többi???

   
beast - Törzstag | 1241 hsz       Online status #64845   2007.07.29 14:41 GMT+1 óra  
Megesik az ilyen mással is.

   
g_imi - Tag | 236 hsz       Online status #64844   2007.07.29 14:01 GMT+1 óra  
jajj bocsánat
Most nézem h 1 oltári nagy baromságot írtam!!!
Nem példányosítottam.
Mégegyszer elnézést!

   
g_imi - Tag | 236 hsz       Online status #64843   2007.07.29 13:56 GMT+1 óra  
Helló!
Nekem az lenne a problémám, hogy code::blocks-ban írok 1 egyszerű osztály öröklődéses progit, de sajnos nem fordul le.
A program a következő:
Kód:
class A{
public:
    int a;
};
class B:public A{
};

int main()
{
      B.a=10;

return 0;
}


A lényeg h nem érem el "B"-n keresztül "A" "a" adattagját.
Elvileg az öröklődés folyamán "B" is rendelkezik "a"-val nem?
Biztos én rontottam el valamit.
Tudnátok segíteni?
A neten nem találtam semmit sem rólla.

   
Frissebbek | Korábbi postok
[1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [15] [20] [25] [30] [35] [40] [45] [50] [55] [60] [65] [70] [75] [80] [85] [90] [95] > 100 < [105] [110] [115] [120] [125] [130] [135] [140] [142]