Probleme mit ner kleinen TileEngine



  • Du hast sie schon erraten, rapso

    Ich lad euch morgen mal den Code hoch, dann könnt ihr nachschauen, was da schiefgeht, wenn ihr wollt.
    Hab den Code jetzt leider nicht, bin gerade nicht daheim



  • Also wenn er mit Task Manager richtig lag wieso haste dann nicht ein paar Hundert Sprites erstellt und dann mal ne Hochrechnung gemacht wieviel es wirklich ist?


  • Mod

    je nach api werden sprites garnicht im taskmanager angezeigt und selbst wenn, es... mir fehlen die worte.

    und 60L Diesel wiegen 1.2T



  • Hier bitte, 30 MB braucht die exe bei mir.
    Der Quellcode ist jetzt direkt der aus dem Buch, nur dass ich 50 Sprites erstellt habe 😃
    Ich hab die Dinger jetzt per "Hand" erstellt (CSprite* Sprite1, CSprite* Sprite2, ...), und ohne Liste, weil man so auch leichter die Texturen verändern kann.
    http://rapidshare.com/files/253727011/SpriteClass.rar.html



  • CSprite Sprite1;
    CSprite Sprite2;
    CSprite Sprite3;
    CSprite Sprite4;
    CSprite Sprite5;
    ...
    CSprite Sprite59;
    

    Wtf!? Sagt dir Array was?

    Sprite1.Create(Direct3D.GetDevice(), FILE_NAME);
    Sprite2.Create(Direct3D.GetDevice(), FILE_NAME);
    Sprite3.Create(Direct3D.GetDevice(), FILE_NAME);
    Sprite4.Create(Direct3D.GetDevice(), FILE_NAME);
    Sprite5.Create(Direct3D.GetDevice(), FILE_NAME);
    ...
    Sprite49.Create(Direct3D.GetDevice(), FILE_NAME);
    

    Oh man...

    Sprite1.Draw();
    Sprite2.Draw();
    Sprite3.Draw();
    Sprite4.Draw();
    Sprite5.Draw();
    ... 
    Sprite49.Draw();
    

    Und dann wundert dich noch, das etwas nciht funktioniert?



  • Bitte lies meinen oberen Beitrag, ich habe hier gesagt, dass ich die extra so reinkopiert hab - ohne Array oder Liste.
    Vor allem ist das nicht meine Engine, das ist die aus dem Buch.

    Hier, das ist mein MapManager, der die voreingestellten Maps "malt":

    for (it = MapSprites.begin(); it!=MapSprites.end(); it++)
        {
            (*it)->Draw();
        }
    

    Die haben dann auch einen ResourceManager 🙄



  • Arr0ws schrieb:

    Die haben dann auch einen ResourceManager 🙄

    Da sagt dein Quellcode aber was ganz anderes.

    Dein Sprite::Create ruft D3DXCreateTextureFromFileEx auf. Ich gehe mal davon aus das jeder Sprite den du irgendwo erstellst via Create initalisiert wird, heist also das du für jeden Sprite die Textur neu lädst.



  • Vor allem ist das nicht meine Engine, das ist die aus dem Buch.



  • Arr0ws schrieb:

    Vor allem ist das nicht meine Engine, das ist die aus dem Buch.

    und?



  • und?

    Dachte ich mir auch gerade!? 😕



  • Arr0ws schrieb:

    Vor allem ist das nicht meine Engine, das ist die aus dem Buch.

    Das Spielt garkeine Rolle, du arbeitest damit und beschwerst dich über Probleme, also gibts dafür auch ne Antwort, sonst hätteste dir den Thread ja auch sparen können.



  • Ich arbeite nicht damit, ich hab eine eigene geschrieben.
    Das Programm dient nur als "Fehlerfreies Beispiel", weil es der Autor des Buches so geschrieben hat (und es deshalb hoffentlich fehlerfrei ist).

    Im Endeffekt kann ich das Sprite einfach so erstellen, und es hat trotzdem 512 KB:

    LPD3DXSPRITE Sprite;
                D3DXCreateSprite(D3DDevice, &Sprite);
                Sprite->Begin(D3DXSPRITE_ALPHABLEND);
                D3DXVECTOR3 Mitte(32.0f, 32.0f, 0.0f);
                D3DXVECTOR3 Position(0.0f, 0.0f, 0.0f);
                Sprite->Draw(Textur, 
                               NULL, 
                               &Mitte, 
                               &Position, 
                               0xFFFFFFFF);
    
                Sprite->End();
    


  • Im Endeffekt kann ich das Sprite einfach so erstellen, und es hat trotzdem 512 KB

    Und wenn Du das Sprite nicht erstellst? 😃



  • Arr0ws schrieb:

    Ich arbeite nicht damit, ich hab eine eigene geschrieben.
    Das Programm dient nur als "Fehlerfreies Beispiel", weil es der Autor des Buches so geschrieben hat (und es deshalb hoffentlich fehlerfrei ist).

    Jetzt weist du ja das sie nicht fehlerfrei ist. Wenn du allerdings selbst eine geschrieben hast solltest du mindestens den Stand erreicht haben, hast du aber scheinbar nicht, ich glaub du soltest dir mal ein richtiges Buch holen und dir das mal Komplett anschaun wie mans richtig macht.



  • "Fehlerfreies Beispiel", weil es der Autor des Buches so geschrieben hat

    Du glaubst doch nicht ernsthaft, dass in dem Buch steht: "Fehlerfreies Beispiel:" oder?


Anmelden zum Antworten