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

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2192
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] [141]
misi - Törzstag | 971 hsz       Online status #136054   2010.06.17 17:57 GMT+1 óra  
Kód:
int tomb[1][3];
tomb[0][0] = 0;
tomb[0][1] = 1;
tomb[0][2] = 2;

int tomb[1][3] =
{
{0,1,2}
};

Ez a kettő között mi a különbség?
   
bit.0x8000 - Törzstag | 574 hsz       Online status #135326   2010.06.04 16:55 GMT+1 óra  
Idézet
Orphy :
Ha a hibajavitást/fejlesztést más csinálja, akkor esetleg félévig-évig, vagy akár tovább is toporoghatsz egyhelyben egy egyszerű bug miatt, amig az illető méltóztatik hozzányúlni. Már ha egyáltalán hozzányúl...

Ha használsz valami third-party libet, jól nézz küröl, mert sokat lehet vele/miatta szivni!


Nem véletlenül lőttem fel a kérdést ide, nyilván olyan lehetőséget szerettem volna, ami az általad említett dolgokat figyelembe véve is használható megoldás...
   
Orphy - Törzstag | 1893 hsz       Online status #135322   2010.06.04 16:40 GMT+1 óra  
Ha a hibajavitást/fejlesztést más csinálja, akkor esetleg félévig-évig, vagy akár tovább is toporoghatsz egyhelyben egy egyszerű bug miatt, amig az illető méltóztatik hozzányúlni. Már ha egyáltalán hozzányúl...

Ha használsz valami third-party libet, jól nézz küröl, mert sokat lehet vele/miatta szivni!
   
bit.0x8000 - Törzstag | 574 hsz       Online status #135312   2010.06.04 15:57 GMT+1 óra  
Idézet
Asylum :
És mért olyan nehéz írni egy ilyet?


Mondjuk, mert nem akarom újra feltalálni a spanyolviaszt?
(Meg az sem mindegy, hogy a hibajavítást és fejlesztést valaki más csinálja, vagy az is rád hárul.)
   
Asylum - Törzstag | 5462 hsz       Online status #135311   2010.06.04 15:45 GMT+1 óra  
És mért olyan nehéz írni egy ilyet?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #135310   2010.06.04 15:24 GMT+1 óra  
Idézet
glezmen :
szerintem o sem arra gondolt, hogy alapbol lenne a C++ -ban, inkabb valami kulon libre, ami csak erre valo


Szerintem is.

Olyasmi kéne, amiben pl. szövegfájlokban lehet a resource group-okat megadni, és amihez utólag lehet új resource típusokat implementálni, anélkül, hogy a manager rész változna...
(Az meg nyilván alap, hogy egy resource-ből egyszerre csak egy legyen megnyitva.)
   
glezmen - Törzstag | 381 hsz       Online status #135278   2010.06.04 11:33 GMT+1 óra  
Idézet
Matzi :
Gondolom az XNA féle content managerre, vagy ahhoz hasonlóra. Mondjuk olyan nyilván nincs benne alapból.



szerintem o sem arra gondolt, hogy alapbol lenne a C++ -ban, inkabb valami kulon libre, ami csak erre valo
   
Matzi - Szerkesztő | 2523 hsz       Online status #135276   2010.06.04 11:17 GMT+1 óra  
Gondolom az XNA féle content managerre, vagy ahhoz hasonlóra. Mondjuk olyan nyilván nincs benne alapból.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5462 hsz       Online status #135269   2010.06.04 10:09 GMT+1 óra  
Mire gondolsz?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #135265   2010.06.04 00:47 GMT+1 óra  
C++-hoz létezik valami kész megoldás resource manage-eléshez?
(Valami olyasmire gondolok, mint ami az OGRE-ben van.)
   
dvorgaz - Törzstag | 576 hsz       Online status #134250   2010.05.20 22:00 GMT+1 óra  
Betonba build-elni egy projektet sokáig tart, de az baromi stabilan fog működni.
   
Wolfee - Törzstag | 1337 hsz       Online status #134249   2010.05.20 21:52 GMT+1 óra  
úgyhogy az már egy kemény nyelv
FZoli jóváhagyásával XD

   
Matzi - Szerkesztő | 2523 hsz       Online status #134248   2010.05.20 21:52 GMT+1 óra  
Nézőpont kérdése. Például a betonhoz képest, egészen friss.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Asylum - Törzstag | 5462 hsz       Online status #134231   2010.05.20 19:52 GMT+1 óra  
A C++ már ném éppén friss...
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #134189   2010.05.20 10:28 GMT+1 óra  
A friss betonba minden beleköt:3
alias aalberik
   
Asylum - Törzstag | 5462 hsz       Online status #134186   2010.05.20 06:25 GMT+1 óra  
Azért mért éz léhét akár változó vagy függvény vagy isténutdja mi (témplétéknél ném éllénöriz ilyén dolgokat). Ézért jélézni kéll néki, hogy az ott ném téhérauto, haném égy tipus. Mit kéll mindénbé bélékötni -.-
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #134180   2010.05.20 00:12 GMT+1 óra  
Idézet
Asylum :
Élé kéll irni, hogy typénamé.
Ugyanis ném tudja éldönténi, hogy éz most tipus, vagy micsoda.



Na, ezt a szintaktikát elmagyarázhatná valaki...
   
Asylum - Törzstag | 5462 hsz       Online status #134176   2010.05.20 00:00 GMT+1 óra  
Élé kéll irni, hogy typénamé.
Ugyanis ném tudja éldönténi, hogy éz most tipus, vagy micsoda.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
bit.0x8000 - Törzstag | 574 hsz       Online status #134175   2010.05.19 23:57 GMT+1 óra  
Ha egy template-ben akarok listát (std::list, boost::ptr_list) használni, akkor azt hogyan kéne megtenni?
A konkrét probléma:
Kód:
boost::ptr_list<T> tList;
//Eddig elfogadja

boost::ptr_list<T>::iterator t;

hiba: "expected ‘;’ before ‘t’"
   
Archenemy - Törzstag | 625 hsz       Online status #134023   2010.05.18 10:52 GMT+1 óra  
lol én is azt hittem, hogy addig baszogattunk az ékezetek miatt, hogy mostantól csakazértis _mindent_ ékezettel írsz :p
------------------------------------
Army of Pixels @ facebook
------------------------------------
A világon a legjobban az ész van elosztva: mindenki meg van róla győződve, hogy neki több jutott.
   
HomeGnome - Szerkesztő | 2919 hsz       Online status #134021   2010.05.18 09:57 GMT+1 óra  
Áááá ez fájt

Klikk, a JF.hu bulvárlap.
Klikk #6 WIP: 30% (Kuz, sade, ramoryan...)
   
proof88 - Törzstag | 530 hsz       Online status #134017   2010.05.18 05:30 GMT+1 óra  
jah kiment a fejemből h pont az E betűd ment ki, bocsi tényleg azt hittem, hogy valami bajod van
   
Asylum - Törzstag | 5462 hsz       Online status #134008   2010.05.18 00:39 GMT+1 óra  
Szérintéd nékém éz fun?.... Holnap réndélék dolgokat addig kénytélén lészél élvisélni. RÉNDBÉN??
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
proof88 - Törzstag | 530 hsz       Online status #134005   2010.05.17 23:19 GMT+1 óra  
a f*szért kéll égész nap ilyén hülyén írni ?!
   
Asylum - Törzstag | 5462 hsz       Online status #133998   2010.05.17 22:03 GMT+1 óra  
Idézet
bit.0x8000 :
Idézet
Asylum :
Éz az irás pédig téljésén logikus, hiszén amikor léfoglalsz égy változonak mémoriát, akkor rögtön fél is léhét tölténi értékékkél, mig ha ugy mküdöné ahogy té szérétnéd, akkor léfoglalna 2x a mémoriát majd még méghivná az opérator= -t is...némtudom tudjátok-é dé a C/C++ térvézésékor a hatékonyság volt az élsödlégés cél.


De ha a "=" operátor referenciákkal dolgozik, és az "open" függvény referenciát ad vissza, akkor hol történne "felesleges" művelet?



Nézz utána a hivási konvéncioknak (égyébként érröl akarom irni a köv tutort majd), sőtégyáltalán annak, hogy mi történik amikor méghivsz égy függvényt. A féléslégés müvélét pédig az amit az opérator= -bén végzél.... (ugyanis a konstruktor ézt ki képés optimalizálni égy darab másolásra).
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Asylum - Törzstag | 5462 hsz       Online status #133996   2010.05.17 22:02 GMT+1 óra  
És én ném ézt mondtam?
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #133992   2010.05.17 21:45 GMT+1 óra  
99% hogy ebben olvastam valamikor:
http://www.parashift.com/c++-faq-lite/

Csak most így hirtelen nem találom, de az operátor túlterhelésnél meg a konstruktoroknál is van szó ilyesmiről. Nem kötelezően betartandó szabály, hanem amolyan ajánlás.

   
bit.0x8000 - Törzstag | 574 hsz       Online status #133991   2010.05.17 21:40 GMT+1 óra  
Idézet
Asylum :
Éz az irás pédig téljésén logikus, hiszén amikor léfoglalsz égy változonak mémoriát, akkor rögtön fél is léhét tölténi értékékkél, mig ha ugy mküdöné ahogy té szérétnéd, akkor léfoglalna 2x a mémoriát majd még méghivná az opérator= -t is...némtudom tudjátok-é dé a C/C++ térvézésékor a hatékonyság volt az élsödlégés cél.


De ha a "=" operátor referenciákkal dolgozik, és az "open" függvény referenciát ad vissza, akkor hol történne "felesleges" művelet?
   
Asylum - Törzstag | 5462 hsz       Online status #133985   2010.05.17 21:16 GMT+1 óra  
Én ném hallottam ilyén szabályrol, dé ajánlott. Például ha a konstruktor privát akkor ném féltétlénül kéll.

Éz az irás pédig téljésén logikus, hiszén amikor léfoglalsz égy változonak mémoriát, akkor rögtön fél is léhét tölténi értékékkél, mig ha ugy mküdöné ahogy té szérétnéd, akkor léfoglalna 2x a mémoriát majd még méghivná az opérator= -t is...némtudom tudjátok-é dé a C/C++ térvézésékor a hatékonyság volt az élsödlégés cél.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
gaborlabor - Moderátor | 4449 hsz       Online status #133984   2010.05.17 21:03 GMT+1 óra  
Van is ilyen "alapszabály" hogy ha az = operátort túlterheljük, akkor "kell" lennie copy konstruktornak is, nem? Valahol mintha ezt olvastam volna.
És ha ennek megfelelően írod, és a 2 kód ugyanazt csinálja, akkor neked igazából mindegy lesz, hogy a háttérben melyik fut le.

   
bit.0x8000 - Törzstag | 574 hsz       Online status #133982   2010.05.17 20:48 GMT+1 óra  
Idézet
kicsy :
Szerintem utóbbi esetben a copy constructort használja.


Igen, végül is így utólag kézenfekvő, viszont a dolognak van némi szépséghibája, hiszen ha én a copy constructor-t akarnám használni, akkor ezt írnám...
Kód:
Resource<Binary> binary(binaryPool.open(""));

...viszont az alábbi két kódról...
Kód:
//Egyik
Resource<Binary> binary;
binary = binaryPool.open("");

//Másik
Resource<Binary> binary = binaryPool.open("");

...feltételezném, hogy ugyanazt "jelenti", és a második pusztán csak rövidebb forma.
No mindegy, asszem ezzel együtt kell élnem.
   
Joga - Törzstag | 1791 hsz       Online status #133980   2010.05.17 20:39 GMT+1 óra  
kicsynek van igaza, tehát kell egy copy construktor:
Kód:
template<typename T>
class Resource{

....
public:
    Resource<T>( const Resource<T>& res ){ (*this ) = res; }// vagy simán bemásolod az operator= kódját
....

}
(ಠ ›ಠ) Stewie!

   
kicsy - Szerkesztő | 4304 hsz       Online status #133977   2010.05.17 20:17 GMT+1 óra  
Szerintem utóbbi esetben a copy constructort használja.
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
bit.0x8000 - Törzstag | 574 hsz       Online status #133975   2010.05.17 20:11 GMT+1 óra  
Vajon mitől lehet, hogy ha van egy "Resource" nevezetű template-em, felüldefiniált "=" operátorral, meg egy "open" függvényem ami egy ilyen "Resource" referenciát ad vissza, akkor:
Kód:
Resource<Binary> binary;
binary = binaryPool.open("");
//Itt minden az elvárásoknak megfelelően működik

Resource<Binary> binary = binaryPool.open("");
//Itt viszont se a felüldefiniált operátor kódja,
//se a Resource default constructor-a nem fut le
   
Matzi - Szerkesztő | 2523 hsz       Online status #133287   2010.05.07 23:18 GMT+1 óra  
Unsafe annyiban, hogy vannak veszélyei. Eddig is voltak, és nem egy programban (a fordítótól függetlenül) benne is van a hiba, hogy kihasználható. Persze sokan meg azon optimalizálnak, hogy kevesebb ellenőrzést használnak mint kéne, mert úgy gyors, cserébe meg veszélyes. Ilyen ez.
If your game idea starts with the story it’s not a game idea.
Stories in games are optional.
   
Pretender - Törzstag | 2498 hsz       Online status #133286   2010.05.07 22:58 GMT+1 óra  
gl: koszi, akkor erdemes vele vigyazni... Bar ezeket nem igazan hasznalom futas kozben allandoan; ezt pl. csak input config allitasnal, amikor is atkonvertalgatom a nekem tetszo formatumba a dolgokat.

   
Asylum - Törzstag | 5462 hsz       Online status #133268   2010.05.07 20:18 GMT+1 óra  
Csak a ms hivja unsafe-nek ami addig teljesen safe volt Akkor lett unsafe mikor megirták az msvc-t XD
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
Pretten - Tag | 74 hsz       Online status #133265   2010.05.07 19:37 GMT+1 óra  
Unsafe, ez tetszik. C++ ban minden unsafe.
   
gaborlabor - Moderátor | 4449 hsz       Online status #133262   2010.05.07 19:12 GMT+1 óra  
pl buffer overflow.
Az itoa konkrétan nem tudom, hogy mit csinál a háttérben, de pl. a sprintf-ből mikor sprintf_s lett, akkor a paraméterlistája kiegészült egy elemmel ami a cél mérete, így a függvény véletlenül sem írhat túl azon. (strcpy ugyanígy, meg még van egypár)
Ezektől a hibáktól lefagyhat a progid, ha nem figyelsz rá, de sokkal nagyobb gond, hogy szándékosan hibás adatok megadásával egy csomó progit lehet crackelni.

   
Pretender - Törzstag | 2498 hsz       Online status #133260   2010.05.07 18:47 GMT+1 óra  
Amikor azt mondja nekem a fordito, hogy:
Kód:
warning C4996: '_itoa': This function or variable may be unsafe. Consider using _itoa_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details

Vagy
Kód:
warning C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details.

Akkor mit jelent az a resz, hogy "unsafe" - ertem en, hogy nem biztonsagos, de mi karom szarmazhat belole, hogy ha ezt (illetve mas unsafe-nek titulalt dolgot) hasznalom?

   
syam - Törzstag | 1491 hsz       Online status #132190   2010.04.27 17:08 GMT+1 óra  
Idézet
Asylum :
És a memcpy.h pontosan ilyen asm kódot tartalmaz (csak hosszabb vmivel).



A file maga 604 soros, ebből a SIMD-mentes kód kb 500 sor. A SIMD verziót nem néztem meg :3
Kb. annyival több benne a cucc, h figyeli ha a 2 memória terület átfedi egymást.
alias aalberik
   
Joga - Törzstag | 1791 hsz       Online status #132186   2010.04.27 16:55 GMT+1 óra  
sztem a stosb, stb-re gondol, de az sztem csak szegmens:offset címmel dolgozott
(ಠ ›ಠ) Stewie!

   
Asylum - Törzstag | 5462 hsz       Online status #132180   2010.04.27 16:42 GMT+1 óra  
Ez az msvc inline assemblere (x86 szintaxis). A gcc-nek AT&T -je van, az joval ocsmányabb.
És a memcpy.h pontosan ilyen asm kódot tartalmaz (csak hosszabb vmivel).

Melyik ez az utasitás? Én nem tudok ilyenröl.
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
kiskami - Tag | 265 hsz       Online status #132177   2010.04.27 16:39 GMT+1 óra  
Melyik fordító ez? Kézi?
Régen volt már asm, de kb. 386 környékén is volt már olyan utasítás, ami egy menetben másolt adatblokkot.
[Silent Vertigo] { Solarah }
http://www.silentvertigo.hu
   
Asylum - Törzstag | 5462 hsz       Online status #132171   2010.04.27 16:03 GMT+1 óra  
Ugyanez C++ .ban:

Kód:
inline void memcpy(void* dest, const void* src, size_t size)
{
    _asm
    {
        mov EDX, dest
        mov EBX, src
        mov EAX, size

    _cpstart:
        mov DL, [EBX]
        mov [EDX], DL

        inc EDX
        inc EBX
        dec EAX
        jnz _cpstart
    }
}


C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
syam - Törzstag | 1491 hsz       Online status #132140   2010.04.27 14:22 GMT+1 óra  
Kód:
        static void* memcpy(void* dest, void* src, int count)
        {
            if (dest == null)
                throw new ArgumentNullException("dest");
            if (src == null)
                throw new ArgumentNullException("src");
            if (count == 0)
                throw new ArgumentOutOfRangeException("count");
            Type type = Type.GetType("Microsoft.Xna.Framework.GamerServices.ZuneKernelMethods+Marshal, Microsoft.Xna.Framework");
            MethodInfo method = type.GetMethod("MarhalCopy", BindingFlags.Static | BindingFlags.Public); // [sic]
            MarshalCopyDelegate dgate = (MarshalCopyDelegate)Delegate.CreateDelegate(typeof(MarshalCopyDelegate), null, method);
            dgate(dest, src, count);
            return dest;
        }


éljen a c++...
ja de most látom csak ez c#
alias aalberik
   
Wolfee - Törzstag | 1337 hsz       Online status #131943   2010.04.25 23:51 GMT+1 óra  
Idézet
dvorgaz :
Wolfee: ez nem igazán jó, mert a párját CEntity*-ként kapom meg, vagyis le kell majd kasztolni a megfelelő típusra, így meg kb ugyan az, mint Asylum megoldása.


jaaaa, úgy tényleg nem jó
FZoli jóváhagyásával XD

   
dvorgaz - Törzstag | 576 hsz       Online status #131929   2010.04.25 21:48 GMT+1 óra  
Asylum: köszi, azt hiszem ez a GetType()-os megoldás jó lesz, viszonylag kevés dolog lesz az CEntity-ből leszármaztatva és nem kell bazinagy switch szerkezet hozzá.

Wolfee: ez nem igazán jó, mert a párját CEntity*-ként kapom meg, vagyis le kell majd kasztolni a megfelelő típusra, így meg kb ugyan az, mint Asylum megoldása.
   
Wolfee - Törzstag | 1337 hsz       Online status #131926   2010.04.25 21:31 GMT+1 óra  
Kód:
class CEntitiy
{
    virtual void OnHit(const CBullet& other)
    {
        //do nothing
    }

    virtual void OnHit(const CPlayer& other)
    {
        //do nothing
    }
};

class CPlayer : public CEntity
{
    void OnHit(const CBullet& other)
    {
        hp--;
    }

    void OnHit(const CPlayer& other)
    {
        moveBack();
    }
};

class CNullet : public CEntity
{
    void OnHit(const CPlayer& other)
    {
        die();
    }
};


most hirtelen ez jutott eszembe. szerintem nem rondább megoldás, mint asylumé
FZoli jóváhagyásával XD

   
Asylum - Törzstag | 5462 hsz       Online status #131913   2010.04.25 19:15 GMT+1 óra  
Hát az vicces ha implementálsz valami és nem tudod mit csinálj vele
Lehet valami ilyesmi:

Kód:
enum EnttiyType
{
    Player,
    Bullet
};

class CEntity
{
    virtual EnttiyType Type() const = 0;
    virtual void OnHit(const CEntity& other) = 0;
};

class CPlayer : public CEntity
{
    EntityType Type() const { return Player; }

    void OnHit(const CEntity& other)
    {
        switch( other.GetType() )
        {
            // ...
        }
    }
};

// ...


Hogyan dolgozd fel az ütközéseket:

Kód:
void CGame::Update()
{
    KiszámolÜtközések();

    for( minden párra )
    {
        entity->OnHit(otherentity);
        otherentity->OnHit(entity);
    }
}
C++ fordítóval és macival alszom
http://darthasylum.blog.hu/
   
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] [141]