Kleines Ballerspiel mit der Irrlicht Engine und Irrklang als Einstieg



  • if (receiver.IsKeyDown(KEY_SPACE))
    {
               [...]
                        // Shoot sound
                        irrklang::ISound* snd = (irrklang::createIrrKlangDevice())->play3D(
                                                                         "../media/impact.wav", v, false, false, true); 
    }
    

    Hi,

    das kommt aber gar nicht gut



  • das kommt aber gar nicht gut

    Vorschläge zur Verbesserung?



  • Ich bin in Irrlicht auch nicht gerade fit, aber mir ist aufgefallen, dass beim schiessen die Framerrate von etwa 800 Fps auf 200 Fps zurückgeht.

    Laut http://www.ambiera.com/irrklang/docu/index.html gibt es die Funktion addSoundSourceFromFile, die Sounds einliest, damit man sie nicht bei jedem spielen neuladen muss.



  • kann ich bestaetigen, laut der konsole wird Irrklang dauernd neu initialisiert.

    ansonsten sieht das fuer recht wenig code schonmal wirklich nett aus.



  • Ich habe dies mit dem Sound berichtigt, bringt aber wenig bezüglich Frames:

    // start Irrklang sound engine and load sound waves
    irrklang::ISoundEngine* sndEngine = irrklang::createIrrKlangDevice();
    irrklang::ISoundSource* backgroundSound = sndEngine->addSoundSourceFromFile("../media/IrrlichtTheme.ogg");
    irrklang::ISoundSource* shootSound = sndEngine->addSoundSourceFromFile("../media/impact.wav");
    irrklang::ISoundSource* muhahaSound = sndEngine->addSoundSourceFromFile("../media/muhaha.wav");
    
    //...
    
    irrklang::ISound* snd = sndEngine->play2D(backgroundSound, true, false, true);
    if(snd)	{ snd->setVolume(0.2f);	snd->drop(); }
    
    // etc.
    
    // ...
    
    device->drop();    // delete grafic engine
    sndEngine->drop(); // delete sound engine
    

    Fehlt hier noch etwas zur Performancesteigerung?

    Wie kann man eigentlich die Frames per Second auf einen fixen Wert (z.B. 60) begrenzen?

    IrrlichtDevice* device = createDevice(EDT_DIRECT3D9, dimension2d<s32>(800,600),32,0,0,true,&receiver); //vsync
    


  • Erhard Henkes schrieb:

    Ich habe dies mit dem Sound berichtigt, bringt aber wenig bezüglich Frames:

    // start Irrklang sound engine and load sound waves
    irrklang::ISoundEngine* sndEngine = irrklang::createIrrKlangDevice();
    irrklang::ISoundSource* backgroundSound = sndEngine->addSoundSourceFromFile("../media/IrrlichtTheme.ogg");
    irrklang::ISoundSource* shootSound = sndEngine->addSoundSourceFromFile("../media/impact.wav");
    irrklang::ISoundSource* muhahaSound = sndEngine->addSoundSourceFromFile("../media/muhaha.wav");
    
    //...
    
    irrklang::ISound* snd = sndEngine->play2D(backgroundSound, true, false, true);
    if(snd)	{ snd->setVolume(0.2f);	snd->drop(); }
    
    // etc.
    
    // ...
    
    device->drop();    // delete grafic engine
    sndEngine->drop(); // delete sound engine
    

    Fehlt hier noch etwas zur Performancesteigerung?

    Wie kann man eigentlich die Frames per Second auf einen fixen Wert (z.B. 60) begrenzen?

    IrrlichtDevice* device = createDevice(EDT_DIRECT3D9, dimension2d<s32>(800,600),32,0,0,true,&receiver); //vsync
    

    Höh? was macht diese zeile?

    irrklang::ISound* snd = sndEngine->play2D(backgroundSound, true, false, true);
    

    der sound wird doch anscheinend abgespielt, oder erzeugt play2D nur den sound und man muss ihn mittels des ISound objekts abspielen?

    eigentlich sollte sndEngine->play2D(...) doch genügen? [ohne jedesmal eine ISound instanz/pointer zu erzeugen)



  • Parameter vsync = true begrenzt z.B. bei mir auf 60 Hz (TFT-Monitor), also 60 Frames per Second.

    Den Rückgabewert bei Sound benötige ich kurz, lösche ihn dann aber sofort wieder:

    // Shoot sound
    irrklang::ISound* snd = sndEngine->play3D(shootSound, v, false, false, true); 
    if (snd)
    {
      snd->setMinDistance(1000.0f);
      snd->setVolume(1.0f);	
      snd->drop();
    }
    

    Ohne diese Anweisungen benötigt man den Pointer nicht.



  • Auf einem Rechner mit Vista 64bit kommt beim Versuch, das Spiel zu starten, eine Meldung bezüglich "Side-by-side-Konfiguration" als Fehler. Kennt das jemand?



  • Erhard Henkes schrieb:

    Fehlt hier noch etwas zur Performancesteigerung?

    Hast du dir mal http://www.ambiera.com/irrklang/docu/index.html#memoryPlayback durchgelesen?

    Ansonsten kann ich nur sagen: dein Code sieht *grauenvoll* aus, in so ziemlich jeder Hinsicht!

    Wenn du dich lediglich mit Irr* vertraut machen willst, dann erstelle ein Dutzend oder so Testapps die sich nur mit dem jeweiligen Aspekt den du unter die Lupe nehmen willst befassen (ähnlich den Demos oder Tutorials die solchen Libs/Frameworks/Engines oft beiliegen).

    Wenn du alles in einem (oder auch mehreren) Minispielen unter einen Hut bringen willst, wegen des Zusammenspiels oder des Erfolgserlebnisses oder was auch immer, dann mach es lieber gleich richtig. Schon deine 350 Zeilen sind ein unüberschaubarer Wust an Spaghettiausschuss, was denkst du wie das bei 10k+ LOC aussieht?

    edit: und ich meine wirklich Ausschuss:

    // bullet
                        IAnimatedMeshSceneNode* bullet = 0;
                        IAnimatedMesh* meshBullet = smgr->getMesh("../media/sphere.3ds");
                        if (meshBullet)
                        {
                             bullet = smgr->addAnimatedMeshSceneNode(meshBullet);
                             bullet->setPosition(v);
                             bullet->getMaterial(0) = matSpaceShip;
                             bullet->setMaterialFlag(EMF_LIGHTING, false);
                        }
                        bullet->setScale(vector3df( 1.0f, 0.3f, 0.3f ));
    

    Mit setup(...) und make_bullet(...) wäre sowas sicher nicht passiert, und auch wesentlich unkomplizierter.



  • @finix: wenn Du so oberschlau bist, dann erklär mir mal, wie man diese "Side-by-side-Konfiguration" bei Vista64 verschwinden lässt. Anregungen zu irrlicht/irrklang hole ich mir ab jetzt im englischen Forum, kann ich nur jedem empfehlen.



  • Oh Mann, Erhard, du solltest mich lange genug kennen um dich von meinem Diplomatieverständnis nicht so aus der Fassung bringen zu lassen.

    Willst du mir ernsthaft erzählen dass dein Code irgendwie auch nur annähernd toll aussieht? Dass mein Vorschlag bezüglich zu bevorzugender Vorgehensweise nicht gut ist? Dass es nicht geschickt wäre sich mit Sound Sources, bzw. der Funktionsweise der Libs und insbesondere der Frage wie Ressourcen gehandlet werden zu beschäftigen?

    Lass dich von mir bloß nicht vertreiben; wenn du das willst, halte ich mich da in Zukunft ganz raus, und der Rest hier ist ohnehin auf Kuschelkurs.

    Ach ja, zu deinem anderen Problem: ich habe weder VC, noch Vista, noch Vista64. Selbst wenn, müsste dir eigentlich klar sein dass man

    Erhard Henkes schrieb:

    eine Meldung bezüglich "Side-by-side-Konfiguration" als Fehler

    nicht allen ernstes eine Fehlerbeschreibung nennen kann. Dennoch habe ich spaßeshalber mal google angeschmissen, und via der ersten Ergebnisseite folgende Links zu Tage gefördert:

    http://www.softgames.de/forum/frage124357.html
    http://blogs.msdn.com/junfeng/archive/2006/04/14/576314.aspx



  • Na gut, ich werde deinem Sarkasmus Stand halten, ist vielleicht eine gute Übung.

    Dass der Code noch nicht vernünftig gekapselt und kompaktiert ist, ist klar. Davon, dass ich alles in Funktionen oder Member-Funktionen stecke, wird für mich momentan nichts besser.

    Sounds aus dem Speicher: sag mal, ist das wirklich Ernst, dass man seine wav-Datei mit bin2h.exe in eine Array umwandelt und dann als solches aus dem Speicher abspielt.

    Also impact.wav ==>

    unsigned int impact_size=3942;
    unsigned char impact[] = {
    0x52,0x49,0x46,0x46,0x5e,0x0f,0x00,0x00,0x57,0x41,0x56,0x45,0x66,0x6d,0x74,
    0x20,0x12,0x00,0x00,0x00,0x01,0x00,0x01,0x00,0x11,0x2b,0x00,0x00,0x11,0x2b,
    0x00,0x00,0x01,0x00,0x08,0x00,0x00,0x00,0x66,0x61,0x63,0x74,0x04,0x00,0x00,
    0x00,0x2b,0x0f,0x00,0x00,0x64,0x61,0x74,0x61,0x2b,0x0f,0x00,0x00,0xab,0xa2,
    0x9d,0xb5,0xc3,0xa6,0x8e,0x94,0x9e,0x9d,0x9a,0x9f,0xac,0xb6,0xb2,0xa2,0xa2,
    0xbc,0xce,0xc9,0xab,0x81,0x7c,0x92,0xa0,0xa2,0xa1,0x9d,0x97,0xa3,0xb4,0xc2,
    0xc2,0xb6,0xb3,0xb7,0xb4,0xa4,0x94,0x89,0x88,0x85,0x86,0x90,0x97,0x9e,0xb3,
    0xc6,0xcc,0xce,0xc5,0xb5,0xa7,0xa2,0xa2,0xa5,0xa0,0x8e,0x79,0x78,0x88,0x8b,
    0x82,0x72,0x5f,0x44,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x3d,0x51,0x43,
    0x2f,0x2f,0x2f,0x2f,0x33,0x37,0x33,0x2f,0x34,0x43,0x58,0x72,0x94,0xb1,0xbe,
    0xc7,0xce,0xd0,0xd0,0xce,0xc2,0xa6,0x82,0x66,0x62,0x6e,0x77,0x86,0x8d,0x82,
    0x7e,0x83,0x87,0x90,0xa1,0xa4,0x9d,0x9e,0xae,0xbd,0xbf,0xb8,0xb0,0xad,0xac,
    0xa6,0xa1,0x96,0x7c,0x6e,0x76,0x79,0x73,0x70,0x6e,0x73,0x7b,0x79,0x7b,0x88,
    0x95,0x9d,0x9a,0x90,0x8c,0x87,0x86,0x91,0x97,0x89,0x82,0x98,0xa8,0x9f,0xa5,
    0xbd,0xc3,0xc4,0xcc,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xce,0xc4,0xb3,0xab,0x9f,0x7e,0x53,0x36,0x37,0x3f,0x40,0x3d,0x43,0x5b,
    0x5c,0x50,0x62,0x69,0x5b,0x56,0x56,0x46,0x34,0x3c,0x43,0x38,0x2f,0x7f,0x84,
    0x33,0x2f,0x2f,0x2f,0x2f,0x31,0x43,0x58,0x66,0x76,0x8a,0xa4,0xae,0xb0,0xac,
    0xa0,0x9e,0xa6,0xab,0xab,0xad,0xa9,0xa3,0xb1,0xc8,0xcc,0xc9,0xc4,0xbb,0xb3,
    0xb8,0xc5,0xcd,0xd0,0xd0,0xd0,0xd0,0xca,0xc4,0xc3,0xbe,0xaa,0x85,0x60,0x54,
    0x4d,0x38,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x3c,0x45,0x48,0x4e,0x4c,0x50,0x5e,
    0x73,0x72,0x5b,0x53,0x6b,0x76,0x57,0x47,0x4b,0x54,0x60,0x75,0x8f,0x95,0x9d,
    0xa9,0xae,0xb7,0xb1,0x9e,0x94,0x86,0x6f,0x5a,0x4c,0x4c,0x4c,0x3e,0x32,0x36,
    0x41,0x54,0x64,0x68,0x69,0x6f,0x6d,0x6c,0x81,0x93,0x94,0x8e,0x82,0x84,0x9a,
    0xb4,0xc2,0xc1,0xbd,0xb9,0xbc,0xc3,0xc2,0xc0,0xbd,0xb6,0xb4,0xb7,0xc0,0xcc,
    0xc3,0xb8,0xb8,0xb0,0xac,0xac,0xa0,0x85,0x67,0x6a,0x89,0x95,0x82,0x68,0x6c,
    0x81,0x8d,0x9b,0x92,0x74,0x60,0x5a,0x57,0x57,0x68,0x6f,0x6c,0x75,0x73,0x6b,
    0x76,0x85,0x88,0x86,0x8a,0x89,0x80,0x75,0x75,0x6f,0x5e,0x5f,0x6e,0x76,0x71,
    0x71,0x6f,0x5f,0x63,0x76,0x88,0x8f,0x8d,0x90,0x90,0x9a,0xa8,0xa7,0xa6,0xb7,
    0xca,0xd0,0xd0,0xcb,0xc1,0xc6,0xcd,0xcb,0xce,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xd0,0xd0,0xc4,0xbd,0xbd,0xb2,0x96,0x6c,0x54,0x5f,0x6d,0x63,0x5f,0x68,
    0x74,0x75,0x7c,0x7e,0x6f,0x75,0x8a,0x95,0x87,0x7e,0x88,0x8e,0x90,0x88,0x89,
    0x94,0x91,0x85,0x77,0x76,0x7f,0x8d,0x88,0x62,0x45,0x3a,0x36,0x33,0x2f,0x2f,
    0x7b,0xcb,0xd0,0xcb,0x7b,0x2f,0x2f,0x31,0x47,0x72,0x89,0x98,0x9f,0x8e,0x8f,
    0xa0,0xad,0xb9,0xc0,0xc6,0xce,0xd0,0xd0,0xd0,0xb8,0xa2,0xa7,0xa7,0xa3,0xa7,
    0xa6,0x94,0x8b,0x86,0x83,0x85,0x85,0x7d,0x71,0x6d,0x75,0x89,0x8e,0x89,0x92,
    0xa6,0xb6,0xc3,0xcc,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xc6,0xb7,0xb6,0xad,
    0x8f,0x6c,0x53,0x3d,0x39,0x39,0x2f,0x2f,0x74,0xc4,0xd0,0xd0,0xc4,0x74,0x2f,
    0x2f,0x2f,0x2f,0x3e,0x64,0x79,0x78,0x78,0x7e,0x88,0x89,0x8c,0x8e,0x8f,0x9a,
    0xa0,0x91,0x88,0x93,0x9a,0x9f,0x9d,0x93,0x92,0x94,0x88,0x83,0x87,0x7f,0x7b,
    0x7a,0x7d,0x90,0xa5,0xae,0xae,0xab,0xbd,0xd0,0xd0,0xc4,0xa9,0x99,0x98,0x8f,
    0x7f,0x7d,0x89,0x8b,0x85,0x8c,0x99,0xa9,0xc2,0xd0,0xd0,0xcc,0xbb,0xa3,0x90,
    0x92,0x9d,0x8e,0x72,0x58,0x45,0x40,0x4b,0x5e,0x62,0x62,0x63,0x63,0x64,0x5d,
    0x64,0x74,0x7a,0x84,0x8b,0x8b,0x89,0x8a,0x8f,0x94,0xa4,0xb9,0xba,0xaf,0xa2,
    0xa1,0xa5,0xa5,0xa0,0x95,0x89,0x82,0x8c,0x93,0x93,0x97,0x95,0x99,0xa9,0xb7,
    0xb6,0xb6,0xbe,0xb4,0xa7,0xaa,0xc0,0xd0,0xca,0xc0,0xb7,0xb8,0xb7,0xb1,0xbd,
    0xc1,0xae,0xa1,0xa5,0x94,0x7e,0x76,0x58,0x38,0x44,0x58,0x54,0x57,0x5f,0x67,
    0x72,0x84,0x94,0x93,0x9a,0xa2,0x9b,0x99,0xa2,0xa7,0xa8,0xad,0xa4,0x8c,0x83,
    0x82,0x89,0x8d,0x73,0x6d,0x76,0x6e,0x6a,0x7e,0x99,0x8f,0x7a,0x86,0x91,0x8b,
    0x82,0x84,0x89,0x79,0x6e,0x77,0x7b,0x66,0x52,0x47,0x50,0x62,0x64,0x56,0x40,
    0x33,0x2f,0x37,0x3e,0x36,0x2f,0x2f,0x2f,0x36,0x48,0x4e,0x43,0x3f,0x3b,0x39,
    0x47,0x55,0x59,0x65,0x69,0x67,0x82,0xa7,0xba,0xb5,0xb4,0xba,0xaf,0xa1,0x9b,
    0x97,0x94,0x8a,0x81,0x80,0x7e,0x82,0x89,0x8e,0x86,0x74,0x73,0x7b,0x7a,0x7f,
    0x88,0x89,0x88,0x90,0xb4,0xca,0xbd,0xc1,0xce,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xc7,0xb2,0xac,0xaa,0x98,
    0x92,0x8e,0x7b,0x75,0x6c,0x50,0x47,0x58,0x5d,0x52,0x4c,0x51,0x57,0x61,0x75,
    0x7b,0x72,0x78,0x81,0x7c,0x89,0x9b,0x92,0x8d,0x9b,0x98,0x85,0x81,0x7d,0x6d,
    0x77,0x91,0x91,0x82,0x82,0x7f,0x71,0x74,0x7a,0x70,0x66,0x6e,0x6e,0x5d,0x6b,
    0x88,0x88,0x89,0x93,0x7b,0x66,0x74,0x7e,0x7d,0x7e,0x7a,0x66,0x50,0x46,0x3f,
    0x4b,0x56,0x51,0x3f,0x2f,0x39,0x3f,0x48,0x55,0x46,0x35,0x3e,0x5e,0x71,0x62,
    0x58,0x61,0x66,0x6c,0x86,0x9f,0x9e,0x90,0x90,0x90,0x8c,0x85,0x7b,0x74,0x6e,
    0x7a,0x93,0xa5,0xa7,0x9c,0x8d,0x88,0x8a,0x86,0x83,0x76,0x5d,0x45,0x3b,0x3c,
    0x4b,0x63,0x69,0x68,0x6c,0x71,0x84,0x96,0xa3,0xa7,0x9b,0x9c,0xa6,0xa5,0x9e,
    0x90,0x8a,0x84,0x7e,0x83,0x8d,0x98,0xa1,0xb5,0xc8,0xce,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xbc,0xaa,0xa9,0x97,0x76,
    0x55,0x4a,0x48,0x46,0x57,0x6d,0x7e,0x91,0xb6,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xc7,0xbf,0xbd,0xb0,0x97,0x8d,0x8d,0x78,0x6e,0x6a,0x52,0x4e,0x5a,0x4a,
    0x34,0x39,0x4a,0x4f,0x61,0x83,0xa2,0xad,0xae,0xc0,0xcf,0xd0,0xca,0xb1,0x92,
    0x74,0x5c,0x4f,0x45,0x39,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x31,
    0x3c,0x48,0x47,0x3c,0x3a,0x46,0x4f,0x46,0x3b,0x34,0x2f,0x2f,0x36,0x87,0xd0,
    0xd0,0xd0,0xd0,0xd0,0xd0,0xca,0x79,0x2f,0x3e,0x65,0x87,0x9a,0x9c,0x99,0xa0,
    0xb2,0xc8,0xc7,0xb7,0xb9,0xbe,0xc5,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xcf,0xcd,0xc1,0xa4,0x95,
    0x97,0x94,0x9c,0x9f,0x86,0x6e,0x6f,0x7b,0x7b,0x7c,0x7b,0x77,0x87,0xab,0xc8,
    0xd0,0xce,0xcc,0xce,0xd0,0xd0,0xd0,0xc3,0xbb,0xc3,0xbf,0xa8,0x86,0x74,0x6a,
    0x62,0x5e,0x56,0x58,0x67,0x70,0x6a,0x69,0x6d,0x77,0x8a,0x92,0x89,0x7c,0x7b,
    0x8a,0x92,0x7c,0x6f,0x75,0x65,0x65,0x6f,0x68,0x77,0x88,0x81,0x74,0x75,0x89,
    0x8f,0x90,0x8d,0x74,0x73,0x80,0x78,0x6c,0x76,0x7e,0x6a,0x6c,0x89,0xa6,0xbc,
    0xb1,0xa1,0x94,0x97,0xab,0xa9,0xa8,0xa8,0x9a,0x8c,0x8f,0x95,0x85,0x78,0x7e,
    0x7d,0x6f,0x61,0x5e,0x57,0x3e,0x2f,0x2f,0x2f,0x38,0x3a,0x3c,0x4f,0x4e,0x48,
    0x46,0x4b,0x53,0x3e,0x2f,0x2f,0x45,0x57,0x47,0x43,0x4b,0x4b,0x4a,0x59,0x75,
    0x6e,0x5e,0x68,0x71,0x78,0x84,0x98,0xa8,0x9c,0x96,0xa5,0xac,0xaf,0xb6,0xb2,
    0xa4,0xa3,0xbc,0xd0,0xd0,0xc6,0xbc,0xc6,0xd0,0xc6,0xb6,0xab,0xa5,0x9b,0x95,
    0x99,0x8c,0x79,0x74,0x7d,0x94,0x9c,0x9a,0xa7,0xb4,0xb6,0xbc,0xc5,0xbc,0xa9,
    0xae,0xbe,0xbf,0xb0,0xa2,0xa5,0xa3,0x95,0x94,0x92,0x98,0x98,0x7a,0x6c,0x6c,
    0x72,0x81,0x89,0x88,0x77,0x7e,0xa0,0xae,0xb8,0xba,0xc2,0xcd,0xc5,0xc3,0xbb,
    0xaf,0xa1,0x9a,0xa5,0x91,0x69,0x58,0x5f,0x6e,0x77,0x81,0x84,0x76,0x77,0x8e,
    0x9c,0xaa,0xac,0xa4,0xa4,0x99,0x90,0x89,0x7e,0x8c,0x9e,0x9c,0x89,0x7d,0x83,
    0x72,0x74,0x8c,0x86,0x78,0x6c,0x6a,0x6b,0x65,0x6a,0x6d,0x6b,0x72,0x61,0x4f,
    0x75,0x9d,0x8b,0x5d,0x59,0x6b,0x67,0x7a,0x87,0x76,0x70,0x7f,0x87,0x87,0x9a,
    0x9c,0x89,0x84,0x8d,0x85,0x72,0x78,0x81,0x7b,0x6d,0x5b,0x55,0x61,0x68,0x4e,
    0x38,0x43,0x4b,0x48,0x50,0x5b,0x48,0x42,0x5f,0x6a,0x6a,0x67,0x58,0x53,0x63,
    0x62,0x52,0x62,0x7a,0x79,0x70,0x78,0x77,0x5f,0x5e,0x6c,0x68,0x5b,0x41,0x2f,
    0x2f,0x36,0x37,0x50,0x71,0x60,0x54,0x65,0x71,0x6c,0x79,0x94,0x8b,0x86,0x94,
    0x9c,0xa2,0xa0,0xa6,0xb0,0xac,0xa1,0x88,0x85,0x97,0x98,0xa0,0xae,0xac,0xa8,
    0xb5,0xbd,0xad,0xad,0xb5,0xb3,0xa1,0x87,0x8f,0xa9,0xb5,0xae,0xae,0xba,0xb9,
    0xb9,0xc6,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,
    0xd0,0xbe,0xb1,0xb1,0xa6,0x9e,0xab,0xb7,0xad,0x9e,0x8b,0x91,0xad,0xbe,0xb7,
    0xa8,0x93,0x88,0x94,0x8f,0x87,0x80,0x6e,0x4e,0x34,0x2f,0x2f,0x2f,0x2f,0x37,
    0x87,0xd0,0xd0,0xd0,0xd0,0xc5,0x75,0x2f,0x2f,0x2f,0x36,0x36,0x34,0x4d,0x63,
    0x62,0x5c,0x48,0x36,0x44,0x52,0x4b,0x3c,0x37,0x47,0x51,0x56,0x64,0x77,0x83,
    0x84,0x99,0xbe,0xd0,0xd0,0xcb,0xc1,0xc1,0xb9,0xa6,0x98,0x88,0x7a,0x6a,0x68,
    0x6a,0x6c,0x7e,0x8c,0x97,0x9c,0xa1,0xa1,0xb5,0xcf,0xd0,0xc8,0xb8,0xc0,0xd0,
    0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xc7,0xc7,0xd0,0xc4,0xbc,0xbb,0xae,0xa8,
    0xae,0xab,0x9e,0xa0,0xaa,0xa1,0x9a,0x9b,0x87,0x78,0x7c,0x7b,0x73,0x6c,0x66,
    0x5a,0x49,0x3b,0x31,0x3c,0x4c,0x3f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,0x2f,
    0x2f,0x2f,0x2f,0x2f,0x31,0x31,0x2f,0x3a,0x5d,0x7e,0x8e,0x91,0x8a,0x8c,0x95,
    0x91,0x81,0x78,0x73,0x75,0x81,0x88,0x8e,0x8f,0x8f,0x8a,0x7b,0x73,0x88,0xa2,
    0xa8,0xac,0xb2,0xbb,0xca,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xd0,0xcc,
    0xcc,0xba,0x94,0x86,0x7e,0x6d,0x72,0x80,0x75,0x65,0x72,0x74,0x6d,0x8b,0xa0,
    0x9b,0x9d,0xaa,0xb4,0xaf,0xab,0x9e,0x90,0x90,0x96,0xa4,0x9a,0x72,0x4f,0x4b,
    0x69,0x81,0x8f,0x95,0x8d,0x95,0xa9,0xb1,0xb2,0xbb,0xb8,0xa4,0xa0,0xa0,0x94,
    0x92,0x90,0x88,0x92,0x9e,0x94,0x86,0x89,0x85,0x78,0x7a,0x84,0x7f,0x70,0x66,
    0x5f,0x62,0x77,0x84,0x7d,0x70,0x70,0x6a,0x69,0x79,0x65,0x3c,0x39,0x48,0x47,
    0x4b,0x5f,0x62,0x61,0x75,0x7f,0x7d,0x83,0x87,0x7e,0x8f,0xae,0xa8,0x9a,0x9d,
    0x9d,0x94,0x89,0x84,0x7b,0x80,0x92,0x92,0x86,0x8e,0x9c,0x9a,0x9d,0x9d,0x91,
    0x8b,0x89,0x7e,0x74,0x6c,0x64,0x62,0x4c,0x36,0x3f,0x59,0x64,0x65,0x77,0x84,
    0x84,0x84,0x83,0x85,0x83,0x7c,0x80,0x7d,0x64,0x65,0x7f,0x91,0xa0,0xab,0xb0,
    0xb8,0xc7,0xd0,0xd0,0xd0,0xc7,0xa8,0x8c,0x91,0xa5,0xb1,0xae,0x9e,0x89,0x7b,
    0x75,0x7a,0x86,0x89,0x96,0xa1,0x94,0x83,0x8b,0xa9,0xc4,0xca,0xb8,0xac,0xa8,
    0xa3,0xa6,0xaa,0xa7,0x95,0x8c,0x82,0x76,0x75,0x6b,0x69,0x56,0x38,0x3c,0x57,
    0x60,0x51,0x4d,0x47,0x44,0x55,0x69,0x6b,0x73,0x81,0x85,0x8f,0x99,0xad,0xc1,
    0xc2,0xb9,0xad,0xb9,0xbc,0x9e,0x91,0x9d,0xa5,0x8e,0x7e,0x82,0x7c,0x77,0x79,
    0x76,0x73,0x6a,0x5a,0x59,0x64,0x6e,0x71,0x69,0x61,0x69,0x76,0x7c,0x76,0x6e,
    0x76,0x76,0x69,0x69,0x6e,0x66,0x63,0x68,0x69,0x64,0x6b,0x72,0x6b,0x69,0x5f,
    0x68,0x7f,0x8c,0x8e,0x85,0x99,0xa6,0xa1,0xa6,0x95,0x85,0x82,0x87,0x92,0x89,
    0x8a,0x8a,0x82,0x81,0x73,0x6d,0x73,0x70,0x77,0x83,0x81,0x71,0x66,0x6d,0x72,
    0x72,0x6d,0x6e,0x86,0x96,0x90,0x85,0x83,0x9b,0xb6,0xba,0xbf,0xcb,0xd0,0xce,
    0xcb,0xc1,0xc0,0xbf,0xa9,0xa3,0xa2,0x94,0x8e,0x99,0xa3,0x98,0x94,0x98,0x8e,
    0x93,0x9d,0x9a,0x94,0x88,0x83,0x84,0x85,0x82,0x79,0x7e,0x7e,0x60,0x45,0x4c,
    0x5f,0x5e,0x57,0x4d,0x3d,0x40,0x4f,0x4f,0x52,0x66,0x70,0x6d,0x67,0x60,0x64,
    0x72,0x75,0x75,0x82,0x8f,0x91,0x97,0xb0,0xb6,0xa9,0xa8,0xae,0xab,0xa7,0xb5,
    0xac,0x88,0x83,0x8c,0x87,0x92,0x93,0x81,0x89,0x94,0x94,0x98,0xa4,0xa7,0xa3,
    0xa0,0x91,0x81,0x7e,0x8e,0xa2,0xa5,0x9e,0x9c,0xa2,0xa6,0xa2,0x94,0x8a,0x8f,
    0x90,0x94,0x9b,0x97,0xa6,0xc1,0xc4,0xb2,0xa5,0x9a,0x81,0x73,0x6f,0x60,0x4a,
    0x45,0x41,0x3e,0x4a,0x58,0x66,0x6b,0x64,0x6b,0x89,0x9b,0x94,0x91,0x8d,0x7a,
    0x80,0x96,0x9b,0x94,0x8a,0x75,0x59,0x5f,0x76,0x72,0x67,0x71,0x71,0x6a,0x70,
    0x85,0x9f,0xa0,0x8b,0x78,0x7e,0x8c,0x93,0x9a,0x9d,0xa1,0xa6,0x99,0x8a,0x91,
    0xa3,0x96,0x7a,0x72,0x63,0x5a,0x67,0x80,0x93,0x94,0x8f,0x89,0x87,0x91,0xa2,
    0xb8,0xc8,0xba,0x97,0x8d,0x9e,0xa5,0x99,0x8d,0x8a,0x7a,0x72,0x7f,0x83,0x86,
    0x97,0xa8,0xae,0xa2,0x93,0x98,0xa0,0x98,0x85,0x7d,0x78,0x74,0x75,0x72,0x63,
    0x57,0x56,0x56,0x52,0x55,0x53,0x40,0x36,0x42,0x4a,0x54,0x65,0x69,0x68,0x66,
    0x6e,0x7d,0x88,0x90,0x90,0x90,0x91,0x90,0x94,0x9f,0xaa,0xb0,0xb2,0xb7,0xb7,
    0xb1,0xb0,0xba,0xbf,0xad,0x98,0x8a,0x81,0x84,0x9c,0xb0,0xac,0xa5,0xa1,0x9b,
    0x95,0x9d,0xa8,0xa2,0xa1,0xaf,0xb4,0xa4,0x94,0x8f,0x8f,0x98,0x9c,0x87,0x7d,
    0x8a,0x8e,0x92,0x9d,0x9b,0x9c,0xaa,0x9e,0x83,0x8a,0x9d,0x99,0x85,0x7b,0x81,
    0x85,0x8d,0x8f,0x96,0xa0,0xa4,0xad,0xa3,0x8d,0x82,0x72,0x65,0x60,0x62,0x68,
    0x64,0x5c,0x4c,0x45,0x56,0x67,0x6d,0x5d,0x3d,0x2f,0x34,0x48,0x5b,0x60,0x56,
    0x4f,0x5e,0x78,0x8b,0x93,0x97,0x98,0x9e,0xae,0xad,0xa0,0x9f,0xa0,0x97,0x7d,
    0x6d,0x6d,0x66,0x6a,0x75,0x73,0x6a,0x66,0x74,0x7c,0x7d,0x88,0x7f,0x76,0x80,
    0x7e,0x76,0x82,0x91,0x83,0x66,0x5d,0x68,0x6e,0x78,0x80,0x85,0x85,0x7f,0x86,
    0x97,0xa4,0xa4,0xa4,0xa8,0xa6,0xaa,0xab,0x9d,0x9f,0xae,0xad,0x9c,0x98,0x9d,
    0x96,0xa9,0xbd,0xb4,0xb1,0xb3,0xb0,0xa4,0xa2,0x9f,0x8b,0x8a,0x91,0x94,0xa6,
    0xb2,0xac,0x95,0x87,0x89,0x83,0x80,0x76,0x6f,0x73,0x77,0x6c,0x59,0x5a,0x5d,
    0x61,0x66,0x64,0x6a,0x66,0x5a,0x62,0x7e,0x8e,0x86,0x84,0x88,0x8a,0x94,0xa3,
    0xa7,0x9b,0x9a,0xa0,0x90,0x8f,0x98,0x98,0xa2,0xa0,0x9a,0x9c,0xa4,0xa7,0xa5,
    0xb0,0xaf,0xa4,0xa0,0xa4,0xad,0xa6,0x94,0x8f,0x89,0x77,0x6d,0x72,0x71,0x69,
    0x6c,0x6d,0x67,0x6b,0x7e,0x85,0x87,0x89,0x7e,0x80,0x87,0x85,0x83,0x84,0x7c,
    0x67,0x63,0x6a,0x62,0x5c,0x65,0x61,0x5a,0x63,0x6c,0x73,0x76,0x7f,0x86,0x86,
    0x8c,0x92,0xa1,0xb2,0xc4,0xd0,0xc2,0xaa,0x9f,0x9d,0x94,0x7f,0x6f,0x70,0x6b,
    0x67,0x63,0x58,0x55,0x4f,0x48,0x3f,0x4d,0x6b,0x6a,0x5d,0x61,0x63,0x64,0x78,
    0x86,0x81,0x7b,0x7f,0x7f,0x79,0x84,0x88,0x7b,0x75,0x6f,0x6d,0x74,0x7c,0x82,
    0x7b,0x6f,0x6d,0x70,0x77,0x79,0x8a,0x94,0x8a,0x94,0xa0,0xa4,0xb1,0xb7,0xb1,
    0xb4,0xc5,0xcf,0xcf,0xd0,0xd0,0xd0,0xc8,0xbc,0xbb,0xc2,0xc4,0xbf,0xb0,0x98,
    0x8c,0x92,0x9b,0x8d,0x76,0x76,0x76,0x72,0x76,0x7a,0x7e,0x83,0x93,0x94,0x87,
    0x87,0x86,0x91,0x9f,0x9c,0x86,0x77,0x88,0x8b,0x7e,0x83,0x80,0x77,0x79,0x7a,
    0x73,0x6b,0x6b,0x6d,0x79,0x82,0x71,0x62,0x67,0x6d,0x70,0x6f,0x66,0x5a,0x55,
    0x53,0x47,0x3a,0x38,0x38,0x3a,0x3a,0x40,0x50,0x52,0x50,0x5b,0x6f,0x86,0x91,
    0x93,0x9a,0xa0,0xb1,0xb9,0xb4,0xb7,0xaf,0x9e,0x95,0x9b,0xa9,0xb5,0xbc,0xb1,
    0xad,0xc2,0xd0,0xca,0xc2,0xbe,0xba,0xae,0x98,0x88,0x83,0x83,0x80,0x70,0x5d,
    0x51,0x52,0x5c,0x5a,0x56,0x5d,0x65,0x66,0x6b,0x79,0x84,0x8c,0x94,0x98,0x97,
    0x95,0x8d,0x87,0x8c,0x8c,0x84,0x80,0x86,0x8d,0x8f,0x8d,0x8f,0x9c,0xa0,0x9e,
    0xa4,0xad,0xad,0xa8,0xae,0xb3,0xb4,0xbc,0xb9,0xb4,0xb5,0xaf,0xae,0xb8,0xb9,
    0xaa,0x98,0x8c,0x7c,0x73,0x76,0x71,0x69,0x68,0x62,0x56,0x52,0x55,0x55,0x60,
    0x75,0x7c,0x7d,0x8a,0x8d,0x93,0xac,0xb8,0xb6,0xae,0xa6,0xa7,0xa6,0xa4,0xab,
    0xa9,0xa6,0xa2,0x9c,0x9f,0x98,0x93,0x92,0x87,0x75,0x67,0x6b,0x6b,0x65,0x6e,
    0x6c,0x5d,0x66,0x80,0x8b,0x87,0x87,0x8d,0x90,0x96,0x99,0x94,0x95,0x91,0x88,
    0x87,0x86,0x82,0x7c,0x78,0x76,0x69,0x62,0x61,0x56,0x4e,0x49,0x47,0x40,0x36,
    0x35,0x32,0x2f,0x2f,0x3f,0x5a,0x66,0x6e,0x7a,0x8a,0xa0,0xb7,0xbc,0xb3,0xb0,
    0xb3,0xb4,0xa9,0x99,0x88,0x7c,0x7e,0x7d,0x76,0x7c,0x84,0x8b,0x8f,0x91,0x93,
    0x98,0xa4,0xa9,0xa2,0x9f,0xa5,0xa8,0xa3,0xa4,0xa1,0x91,0x88,0x84,0x7c,0x7c,
    0x7b,0x74,0x72,0x73,0x6a,0x61,0x60,0x62,0x61,0x68,0x72,0x6e,0x6a,0x72,0x85,
    0x97,0xa1,0xab,0xab,0xae,0xbb,0xc3,0xca,0xd0,0xcc,0xc2,0xb0,0xa1,0x96,0x8a,
    0x84,0x80,0x7c,0x76,0x70,0x73,0x7c,0x88,0x91,0x94,0x8d,0x77,0x6b,0x70,0x78,
    0x77,0x70,0x71,0x70,0x73,0x7e,0x8c,0x99,0xa1,0x9f,0x97,0x90,0x92,0x97,0x9b,
    0x9f,0x9b,0x9d,0xa2,0xa6,0xa8,0xa6,0xa3,0x99,0x90,0x8c,0x87,0x7d,0x6c,0x5c,
    0x57,0x50,0x46,0x49,0x51,0x50,0x4f,0x51,0x57,0x5d,0x65,0x6c,0x6e,0x71,0x72,
    0x78,0x88,0x8e,0x92,0x98,0x8c,0x7b,0x76,0x7a,0x80,0x83,0x81,0x7c,0x7c,0x7d,
    0x76,0x7a,0x80,0x80,0x85,0x88,0x8c,0x88,0x8c,0x9a,0x9a,0x9b,0xa1,0x9f,0x97,
    0x95,0x9e,0xa0,0x9e,0xa7,0xa9,0x9b,0x92,0x95,0x9f,0x9e,0x93,0x92,0x88,0x76,
    0x71,0x71,0x73,0x7a,0x7f,0x7f,0x7f,0x80,0x82,0x88,0x8d,0x89,0x82,0x83,0x87,
    0x87,0x80,0x7d,0x81,0x81,0x81,0x84,0x84,0x80,0x7f,0x88,0x96,0x99,0x94,0x91,
    0x90,0x93,0x9c,0xa1,0xa5,0xa7,0xa5,0xa3,0xa1,0xa4,0xa9,0xa4,0x9e,0x9e,0xa0,
    0xa0,0xa0,0x9d,0x95,0x94,0x9a,0x94,0x82,0x75,0x75,0x79,0x75,0x6c,0x67,0x63,
    0x60,0x61,0x65,0x67,0x65,0x68,0x70,0x75,0x76,0x72,0x72,0x79,0x7d,0x7b,0x7a,
    0x7b,0x77,0x70,0x71,0x73,0x74,0x78,0x77,0x6f,0x69,0x73,0x84,0x87,0x86,0x87,
    0x86,0x8c,0x94,0x9c,0x99,0x91,0x91,0x92,0x93,0x92,0x91,0x95,0x96,0x8d,0x82,
    0x83,0x8c,0x91,0x8c,0x8e,0x92,0x8e,0x92,0x99,0x99,0x93,0x99,0xa9,0xa9,0xa8,
    0xa6,0x9e,0x9e,0xa0,0xa3,0x9d,0x94,0x90,0x86,0x82,0x84,0x87,0x88,0x82,0x82,
    0x8c,0x94,0x98,0x96,0x9a,0x9a,0x95,0x9a,0x9b,0x95,0x90,0x86,0x7a,0x77,0x7d,
    0x7d,0x7b,0x83,0x89,0x83,0x81,0x86,0x8c,0x8f,0x8d,0x8c,0x8a,0x8b,0x8a,0x83,
    0x7f,0x7b,0x74,0x74,0x7a,0x7e,0x78,0x6e,0x70,0x72,0x74,0x79,0x74,0x6e,0x6d,
    0x72,0x78,0x7b,0x7d,0x78,0x7a,0x83,0x86,0x8c,0x95,0x96,0x95,0x94,0x90,0x8b,
    0x8b,0x90,0x8a,0x7d,0x7a,0x7c,0x7e,0x7f,0x82,0x86,0x84,0x83,0x87,0x87,0x85,
    0x83,0x83,0x80,0x7c,0x7b,0x78,0x79,0x7f,0x82,0x80,0x7f,0x80,0x7f,0x7f,0x83,
    0x89,0x89,0x82,0x7b,0x73,0x6d,0x6d,0x6e,0x71,0x71,0x71,0x76,0x80,0x8f,0x97,
    0x9e,0xaa,0xb4,0xbc,0xc1,0xbd,0xb3,0xaa,0xa9,0xac,0x9d,0x88,0x82,0x7f,0x7e,
    0x86,0x8c,0x81,0x75,0x76,0x73,0x6f,0x6a,0x62,0x59,0x55,0x5b,0x67,0x6e,0x70,
    0x71,0x73,0x76,0x72,0x74,0x7e,0x81,0x7e,0x81,0x8a,0x8e,0x8a,0x85,0x84,0x87,
    0x84,0x7c,0x76,0x72,0x6d,0x6a,0x6a,0x6a,0x6d,0x72,0x77,0x81,0x8b,0x94,0x9b,
    0xa3,0xb0,0xb9,0xba,0xb8,0xb2,0xa9,0xa3,0x9e,0x9e,0x9f,0x9e,0x97,0x8f,0x94,
    0x9c,0x9a,0x94,0x89,0x82,0x7f,0x7d,0x7a,0x76,0x78,0x7d,0x7e,0x83,0x8a,0x93,
    0x9a,0x9e,0xa3,0xa9,0xaf,0xb1,0xae,0xaf,0xb4,0xaf,0x9f,0x92,0x91,0x8c,0x81,
    0x7e,0x7d,0x7a,0x76,0x78,0x7c,0x79,0x7a,0x7e,0x82,0x86,0x84,0x82,0x84,0x8b,
    0x90,0x90,0x8f,0x89,0x85,0x8a,0x8e,0x8c,0x88,0x8a,0x8b,0x8b,0x8b,0x90,0x92,
    0x8b,0x83,0x7f,0x7f,0x7c,0x79,0x7d,0x7d,0x75,0x6b,0x68,0x68,0x65,0x67,0x67,
    0x5e,0x5a,0x60,0x66,0x6a,0x71,0x77,0x78,0x7c,0x81,0x87,0x8e,0x91,0x95,0x94,
    0x8e,0x8c,0x8b,0x86,0x81,0x81,0x81,0x7b,0x73,0x70,0x70,0x71,0x71,0x70,0x74,
    0x7d,0x88,0x8a,0x86,0x8c,0x94,0x95,0x93,0x96,0x9a,0x9e,0x9b,0x96,0x97,0x96,
    0x97,0x99,0x9a,0x9e,0xa1,0xa4,0xa1,0x9b,0xa0,0xa7,0xa3,0x98,0x8a,0x85,0x84,
    0x85,0x86,0x82,0x80,0x82,0x88,0x8e,0x90,0x93,0x96,0x93,0x94,0x9c,0xa0,0x9c,
    0x95,0x8f,0x8a,0x89,0x87,0x83,0x7b,0x79,0x79,0x74,0x71,0x72,0x75,0x72,0x68,
    0x5e,0x5a,0x5e,0x5c,0x58,0x5a,0x5e,0x62,0x69,0x75,0x7c,0x81,0x8d,0x9a,0xa3,
    0xad,0xb5,0xb5,0xb5,0xba,0xb7,0xaf,0xa9,0xa5,0x9d,0x95,0x91,0x8b,0x83,0x80,
    0x7d,0x78,0x75,0x72,0x70,0x70,0x72,0x72,0x6d,0x6e,0x72,0x75,0x78,0x7b,0x7b,
    0x79,0x7b,0x7a,0x77,0x78,0x78,0x7a,0x7b,0x79,0x79,0x7e,0x83,0x80,0x7c,0x7b,
    0x7e,0x82,0x84,0x83,0x86,0x8a,0x8c,0x8c,0x8f,0x95,0x97,0x97,0x99,0x96,0x91,
    0x94,0x95,0x93,0x96,0x9c,0xa0,0xa1,0xaa,0xaf,0xad,0xb2,0xb0,0xa7,0xa3,0xa1,
    0x9e,0x99,0x99,0x96,0x8b,0x86,0x85,0x86,0x88,0x87,0x80,0x77,0x75,0x7a,0x7c,
    0x7e,0x81,0x84,0x87,0x89,0x8c,0x91,0x96,0x9a,0x9a,0x95,0x94,0x95,0x8f,0x84,
    0x81,0x82,0x7f,0x78,0x74,0x72,0x6e,0x6c,0x6a,0x67,0x63,0x60,0x60,0x63,0x66,
    0x66,0x63,0x65,0x6a,0x6d,0x72,0x77,0x7b,0x7d,0x7e,0x80,0x80,0x83,0x89,0x8a,
    0x8a,0x8f,0x91,0x92,0x96,0x94,0x8e,0x8c,0x8e,0x8e,0x8c,0x8b,0x85,0x7e,0x7d,
    0x7e,0x7b,0x75,0x72,0x6e,0x6e,0x72,0x74,0x72,0x72,0x75,0x74,0x72,0x74,0x73,
    0x72,0x77,0x7c,0x7a,0x79,0x80,0x85,0x89,0x8e,0x93,0x97,0x99,0x9c,0x9c,0x9f,
    0xa6,0xa7,0xa4,0xa3,0xa6,0xa6,0xa5,0xa9,0xab,0xac,0xae,0xae,0xad,0xaf,0xb2,
    0xb4,0xb0,0xa8,0x9e,0x94,0x90,0x8e,0x87,0x83,0x81,0x78,0x72,0x75,0x76,0x6e,
    0x6c,0x70,0x72,0x77,0x7b,0x7e,0x81,0x85,0x8b,0x8f,0x90,0x92,0x96,0x99,0x9a,
    0x98,0x92,0x91,0x8f,0x8f,0x92,0x91,0x8c,0x86,0x86,0x84,0x7e,0x7e,0x7b,0x75,
    0x71,0x70,0x70,0x72,0x79,0x7e,0x7a,0x7d,0x85,0x89,0x8c,0x91,0x98,0x9c,0x9e,
    0xa2,0xa4,0xa4,0xa4,0xa6,0xa8,0xa7,0xa3,0x9c,0x97,0x93,0x8b,0x83,0x7f,0x7d,
    0x7a,0x77,0x70,0x69,0x65,0x67,0x6a,0x68,0x67,0x68,0x6d,0x70,0x6e,0x6d,0x70,
    0x76,0x78,0x75,0x72,0x72,0x70,0x6b,0x65,0x62,0x62,0x65,0x69,0x6a,0x6c,0x73,
    0x7a,0x80,0x84,0x8b,0x91,0x95,0x9b,0x9f,0x9e,0x9f,0xa0,0xa1,0xa3,0xa1,0x9d,
    0x99,0x96,0x94,0x93,0x90,0x8b,0x8a,0x8d,0x90,0x91,0x91,0x92,0x90,0x8c,0x8f,
    0x91,0x8b,0x86,0x85,0x82,0x7f,0x7b,0x76,0x73,0x72,0x71,0x6e,0x6e,0x6f,0x70,
    0x73,0x79,0x7d,0x7d,0x7e,0x84,0x87,0x84,0x86,0x89,0x89,0x8c,0x8f,0x8f,0x8c,
    0x8a,0x8a,0x8b,0x90,0x95,0x96,0x98,0x9a,0x99,0x98,0x9a,0xa1,0xa5,0xa2,0xa3,
    0xa9,0xae,0xb2,0xb4,0xb1,0xaa,0xa6,0xa4,0xa0,0x9e,0x9a,0x92,0x89,0x84,0x82,
    0x83,0x81,0x7f,0x7b,0x77,0x75,0x76,0x7b,0x7f,0x7e,0x7c,0x7e,0x82,0x85,0x85,
    0x84,0x82,0x7f,0x7f,0x7e,0x7b,0x78,0x73,0x6e,0x6b,0x6b,0x6e,0x6f,0x6c,0x69,
    0x65,0x66,0x68,0x6c,0x72,0x74,0x72,0x6d,0x6d,0x72,0x74,0x76,0x77,0x77,0x78,
    0x7b,0x7d,0x7d,0x7e,0x82,0x85,0x86,0x89,0x8d,0x8e,0x8d,0x8f,0x90,0x92,0x93,
    0x94,0x96,0x97,0x98,0x99,0x99,0x96,0x93,0x94,0x93,0x91,0x8d,0x8a,0x88,0x87,
    0x8a,0x8c,0x8c,0x8d,0x8c,0x8c,0x90,0x93,0x95,0x98,0x97,0x97,0x9b,0x9f,0x9e,
    0x9d,0xa0,0x9e,0x99,0x95,0x93,0x92,0x91,0x8d,0x86,0x81,0x80,0x7d,0x79,0x78,
    0x78,0x77,0x76,0x76,0x75,0x74,0x76,0x7a,0x7e,0x82,0x84,0x88,0x8e,0x93,0x98,
    0x9a,0x9c,0x9d,0x9c,0x9b,0x9a,0x96,0x94,0x91,0x8f,0x8d,0x89,0x85,0x82,0x81,
    0x81,0x80,0x7d,0x78,0x77,0x76,0x76,0x79,0x79,0x75,0x71,0x70,0x71,0x74,0x77,
    0x77,0x74,0x72,0x73,0x74,0x74,0x75,0x76,0x77,0x77,0x79,0x7a,0x7b,0x7d,0x7f,
    0x80,0x81,0x82,0x85,0x85,0x85,0x86,0x84,0x83,0x84,0x83,0x80,0x7f,0x82,0x82,
    0x80,0x82,0x83,0x82,0x83,0x85,0x87,0x89,0x8c,0x8f,0x8f,0x91,0x92,0x92,0x94,
    0x96,0x96,0x97,0x98,0x96,0x94,0x95,0x96,0x93,0x91,0x92,0x00
    };
    

    z.B. in einer header-Datei impact.h und dann mittels ... addSoundSourceFromMemory(...)? Warum findet man dies nur im Example 03 und sonst nirgends?



  • Ich habe "impact.wav" auf diese Weise in den Speicher transferiert und mittels

    irrklang::ISoundSource* shootSound      = sndEngine->addSoundSourceFromMemory(impact,impact_size,"impact");
    //...
    irrklang::ISound* snd = sndEngine->play3D("impact", v, false, false, true);
    

    abgespielt, bringt keinen erkennbaren Vorteil. FPS geht beim Ballern offensichtlich aus anderen Gründen in den Keller. Daher ist die Beschränkung mit vsync=true garnicht so verkehrt.

    Im englischen Forum findet man dazu merkwürdigerweise nichts.



  • Erhard Henkes schrieb:

    Dass der Code noch nicht vernünftig gekapselt und kompaktiert ist, ist klar. Davon, dass ich alles in Funktionen oder Member-Funktionen stecke, wird für mich momentan nichts besser.

    Abgesehen davon dass man auch gleich ordentlich loslegen kann, bezweifele ich das, wie schon gesagt. /IMAO

    Erhard Henkes schrieb:

    Sounds aus dem Speicher: sag mal, ist das wirklich Ernst, dass man seine wav-Datei mit bin2h.exe in eine Array umwandelt und dann als solches aus dem Speicher abspielt.

    Ich kenn mich mit Irr* leider nicht aus, sonst könnte ich dir da sicher besser weiterhelfen. Ein weiterer, kurzer Blick in die Doku verrät auch dass ich tatsächlich nicht addSoundSourceFromMemory meinte; mich hat lediglich der Beispielname des Sounds, der wie ein Dateiname aussah, verwirrt.

    Du könntest mal schauen welcher irrklang::E_STREAM_MODE verwendet wird, bzw. einfach mal testen ob ESM_NO_STREAMING ("Loads the whole audio data into the memory", woran ich eigentlich mit der MemorySource dachte) etwas bringt (zweiter Parameter von addSoundSourceFromFile ). Den dritten, preload , auf true zu setzen wäre sicher auch nicht verkehrt, sollte sich aber nicht auf das Performanceproblem auswirken.

    Der generelle Tip aber war dich einfach mal genauer mit dem Aufbau der Lib auseinander zu setzen, und nicht wieder und wieder irgendwelche Ressourcen neu zu laden oder Systeme neu zu initialisieren.



  • Der generelle Tip aber war dich einfach mal genauer mit dem Aufbau der Lib auseinander zu setzen, und nicht wieder und wieder irgendwelche Ressourcen neu zu laden oder Systeme neu zu initialisieren.

    Ja, da hast Du Recht. Bei Irrklang hatte ich das nicht getan, weil ich dachte, dass dies bei einer "kommerziellen" (nur frei für private Anwendungen) Software bereits optimiert ist.

    Inzwischen weiß ich, dass das nicht viel bringt. Performancesteigerung liegt in der Grafik begraben. 😉



  • Wie willst du bitte einen Shooter mit der Irrlicht Engine machen. Nicht weil die Irrlicht Engine das nicht könnte, aber du bräuchtest auf jeden Fall eine Physik Engine. Ausserdem, woher bekommst du die Bots. Die sind der Hauptteile so eines Projekts, und das ist viel,viel zu schwer. Deswegen würde ich das ganze übers Netzwerk machen.

    @ Code:
    Das ist nicht sonderlich objekt-orientiert, ich würde das auf mehrere Klassen aufteilen. 🙂 Wenn du nicht so auf OOP stehst, dann kannst du wenigstens nach den Regeln des strukturierten Programmierens auf mehre Dateien umbauen.

    Sonst finde ich deine Idee super! Endlich mal ein schönes Irrlicht Tutorial. (Zuckerbrot und Peitsche? Nein! Peitsche und Zuckerbrot :p )

    Ach ja: Hier gibts ein gutes Netzwerk Interface, oder hat Irrlicht eins eingebaut?
    http://enet.bespin.org/


Anmelden zum Antworten