123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586 |
- #include <iostream>
- #include <Fenster.h>
- #include <Bildschirm.h>
- #include <RenderThread.h>
- #include <KSGScript.h>
- #include <MausEreignis.h>
- #include <TastaturEreignis.h>
- #include <Schrift.h>
- #include <DateiSystem.h>
- #include <time.h>
- #include <Textfeld.h>
- #include <Datei.h>
- #include <M2Datei.h>
- #include <Model2D.h>
- #include <Bild.h>
- #include <Textur2D.h>
- #include <Globals.h>
- #include <DLLRegister.h>
- #include <RenderThread.h>
- using namespace Framework;
- using namespace KSGScript;
- /*
- class Obj : public Zeichnung
- {
- private:
- Model2D mdl;
- Model2D mdlA;
- Model2D mdlB;
- Punkt maus;
- Punkt mausAlt;
- Vertex hp;
- Vertex speed;
- Textur2D txt;
- float rot;
- public:
- Obj()
- {
- M2Datei d;
- d.setPfad( "ship.m2" );
- d.leseDaten();
- Model2DData *m = d.ladeModel( "ship" );
- mdl.setModel( m );
- mdl.setStyle( Model2D::Style::Mesh | Model2D::Style::Textur | Model2D::Style::Sichtbar );
- mdl.setFarbe( 0xFFFFFFFF );
- mdl.setPosition( 150, 150 );
- mdlA.setStyle( Model2D::Style::Mesh | Model2D::Style::Textur );
- mdlA.setFarbe( 0xFFFFFFFF );
- mdlA.setPosition( 50, 50 );
- mdlB.setStyle( Model2D::Style::Mesh | Model2D::Style::Textur );
- mdlB.setFarbe( 0xFFFFFFFF );
- mdlB.setPosition( 250, 50 );
- hp = Vertex( 0, 0 );
- mausAlt = Punkt( 0, 0 );
- maus = Punkt( 0, 0 );
- LTDBDatei td;
- td.setDatei( new Text( "ship.ltdb" ) );
- td.leseDaten( 0 );
- Bild *b = td.laden( 0, new Text( "a.png" ) );
- txt.setTexturZ( b );
- mdl.setTextur( txt.getThis(), "ship" );
- }
- ~Obj()
- {}
- void doPublicMausEreignis( MausEreignis &me ) override
- {
- lockZeichnung();
- maus.x = me.mx;
- maus.y = me.my;
- if( me.id == ME_RLinks )
- {
- mausAlt.x = me.mx;
- mausAlt.y = me.my;
- }
- hp = Vertex( 0, 0 );
- speed = Vertex( 0, 0 );
- if( mdl.zModel()->calcHitPoint( mausAlt - Vertex( 150, 150 ), maus - mausAlt, "ship", hp, speed, rot ) )
- {
- if( me.id == ME_RRechts )
- {
- Polygon2D a;
- Polygon2D b;
- Punkt pa;
- Punkt pb;
- mdl.zModel()->split( mausAlt - Vertex( 150, 150 ), maus - mausAlt, "ship", a, b, pa, pb, []()
- {
- return rand() / (double)RAND_MAX;
- } );
- Array< Polygon2D > *aa = new Array< Polygon2D >();
- aa->add( a );
- Model2DData *ad = new Model2DData();
- ad->erstelleModell( aa );
- Array< Polygon2D > *ba = new Array< Polygon2D >();
- ba->add( b );
- Model2DData *bd = new Model2DData();
- bd->erstelleModell( ba );
- mdlA.setModel( ad );
- mdlB.setModel( bd );
- mdlA.setTextur( txt.getThis() );
- mdlB.setTextur( txt.getThis() );
- mdlA.addStyle( Model2D::Style::Sichtbar );
- mdlB.addStyle( Model2D::Style::Sichtbar );
- }
- }
- unlockZeichnung();
- }
- bool tick( double t ) override
- {
- return 1;
- }
- void render( Bild &bild ) override
- {
- lockZeichnung();
- mdl.render( bild );
- mdlA.render( bild );
- mdlB.render( bild );
- bild.fillCircle( maus.x, maus.y, 1, 0xFFFF0000 );
- bild.drawLinie( mausAlt, maus, 0xFF00FF00 );
- bild.fillCircle( hp.x + 150, hp.y + 150, 1, 0xFF0000FF );
- bild.drawLinie( Punkt( 150, 150 ), speed + Punkt( 150, 150 ), 0xFF00FF00 );
- for( int i = 1; i < 10; i++ )
- {
- Vertex pos = hp + ( maus - mausAlt ) * i + Vertex( 150, 150 );
- Vertex pos2 = hp + ( maus - mausAlt ) * ( i - 1 ) + Vertex( 150, 150 );
- bild.drawLinie( pos, pos2, 0xFFFF0000 );
- bild.fillCircle( pos.x, pos.y, 1, 0xFF00FFFF );
- }
- unlockZeichnung();
- }
- };
- KSGScriptEditor *obj;
- int kamera2DTest();
- int rotationTest();
- */
- void FClose( void *p, void *zF )
- {
- StopNachrichtenSchleife( ( (WFenster *)zF )->getFensterHandle() );
- }
- typedef bool( *Update )( char, char, char, char, int * );
- int main()
- {
- initFramework();
- Datei d;
- d.setDatei( "data.map" );
- d.open( Datei::Style::schreiben );
- int i = 2000;
- d.schreibe( (char *)& i, 4 ); // width
- d.schreibe( (char *)& i, 4 ); // height
- //team 1
- i = 0;
- for( int j = 0; j < 3; j++ )
- {
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- }
- // spieler
- for( int j = 0; j < 9; j++ )
- {
- i = j * 100 + 50;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- }
- i = 2;
- d.schreibe( (char *)& i, 4 ); // barieren
- i = 1000;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 267;
- d.schreibe( (char *)& i, 4 );
- i = 20;
- d.schreibe( (char *)& i, 4 );
- i = 0x1 | 0x40;
- d.schreibe( (char *)& i, 4 );
- i = 0;
- d.schreibe( (char *)& i, 4 );
- i = 10;
- d.schreibe( (char *)& i, 4 );
- i = 0;
- d.schreibe( (char *)& i, 4 );
- i = 500;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 20;
- d.schreibe( (char *)& i, 4 );
- i = 267;
- d.schreibe( (char *)& i, 4 );
- i = 0x2 | 0x40;
- d.schreibe( (char *)& i, 4 );
- i = 500;
- d.schreibe( (char *)& i, 4 );
- i = 0;
- d.schreibe( (char *)& i, 4 );
- i = -1;
- d.schreibe( (char *)& i, 4 );
- //basen
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 200;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 50;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 10;
- d.schreibe( (char *)& i, 4 );
- i = -1;
- d.schreibe( (char *)& i, 4 );
- // drops
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 300;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 500;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 30;
- d.schreibe( (char *)& i, 4 );
- i = 2;
- d.schreibe( (char *)& i, 4 );
- float f = 1 / 18.f;
- for( int j = 0; j < 18; j++ )
- d.schreibe( (char *)& f, 4 );
- char c = (char)textLength( "name" );
- d.schreibe( &c, 1 );
- d.schreibe( "name", (int)c );
- // schalter
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 250;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 10;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- // schienen
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 500;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 20;
- d.schreibe( (char *)& i, 4 );
- i = 767;
- d.schreibe( (char *)& i, 4 );
- // timer
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 700;
- d.schreibe( (char *)& i, 4 );
- i = 50;
- d.schreibe( (char *)& i, 4 );
- i = 600;
- d.schreibe( (char *)& i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- c = 0;
- d.schreibe( &c, 1 );
- c = 1;
- d.schreibe( &c, 1 );
- i = 0xFFFF0000;
- d.schreibe( (char *)& i, 4 );
- c = (char)textLength( "spiel ende" );
- d.schreibe( &c, 1 );
- d.schreibe( "spiel ende", (int)c );
- // tunnel
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 500;
- d.schreibe( (char *)& i, 4 );
- i = 50;
- d.schreibe( (char *)& i, 4 );
- i = 30;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- i = 600;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- // umlenkungen
- i = 1;
- d.schreibe( (char *)& i, 4 );
- i = 300;
- d.schreibe( (char *)& i, 4 );
- i = 50;
- d.schreibe( (char *)& i, 4 );
- i = 15;
- d.schreibe( (char *)& i, 4 );
- d.schreibe( (char *)& i, 4 );
- c = 2;
- d.schreibe( &c, 1 );
- i = 10;
- d.schreibe( (char *)& i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- d.schreibe( &c, 1 );
- // trigger
- i = 3;
- d.schreibe( (char *)& i, 4 );
- c = (char)textLength( "base team" );
- d.schreibe( &c, 1 );
- d.schreibe( "base team", (int)c );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 0;
- d.schreibe( (char *)&i, 4 );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 7; // schalter aktiviert
- d.schreibe( (char *)&i, 4 );
- // base start team change
- i = 10;
- d.schreibe( (char *)&i, 4 );
- c = 2;
- d.schreibe( &c, 1 );
- i = 155; // team von spieler
- d.schreibe( (char *)&i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- i = 149; // spieler zuletzt schalter aktiviert
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- i = 11; // zufällige base
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- c = (char)textLength( "spiel ende" );
- d.schreibe( &c, 1 );
- d.schreibe( "spiel ende", (int)c );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 0;
- d.schreibe( (char *)&i, 4 );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 19; // Timer läuft aus
- d.schreibe( (char *)&i, 4 );
- i = 123; // spiel vorbei
- d.schreibe( (char *)&i, 4 );
- c = 1;
- d.schreibe( &c, 1 );
- i = 156; // zufälliges team gewinnt :D
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- c = (char)textLength( "cheat" );
- d.schreibe( &c, 1 );
- d.schreibe( "cheat", (int)c );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 12; // key release
- d.schreibe( (char *)&i, 4 );
- i = 18; // boolean rechnung
- d.schreibe( (char *)&i, 4 );
- c = 2;
- d.schreibe( &c, 1 );
- i = 197; // konstant taste
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- c = 'c';
- d.schreibe( &c, 1 );
- i = 114; // konstant variable
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- c = (char)textLength( "Betroffene Taste" );
- d.schreibe( &c, 1 );
- d.schreibe( "Betroffene Taste", (int)c );
- c = 21; // ==
- d.schreibe( &c, 1 );
- i = 124; // spieler give item
- d.schreibe( (char *)&i, 4 );
- c = 3;
- d.schreibe( &c, 1 );
- i = 198; // Konstant gegenstand typ
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- i = 1; // pfeil
- d.schreibe( (char *)&i, 4 );
- i = 111; // konstant integer
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- i = 1;
- d.schreibe( (char *)&i, 4 );
- i = 114; // konstant variable
- d.schreibe( (char *)&i, 4 );
- c = 0;
- d.schreibe( &c, 1 );
- c = (char)textLength( "Ausführender Spieler" );
- d.schreibe( &c, 1 );
- d.schreibe( "Ausführender Spieler", (int)c );
- // variablen
- i = 0;
- d.schreibe( (char *)&i, 4 );
- d.close();
- /*int i = 0;
- for( int j = 0; j < 100; j++ )
- std::cout << i << i++ << "\n";
- return 0;
- //return rotationTest();
- return kamera2DTest();
- Datei d;
- Datei d2;
- d.setDatei( "data_old.map" );
- d2.setDatei( "data.map" );
- d2.open( Datei::Style::schreiben );
- d.open( Datei::Style::lesen );
- int ressourceAnz = 0;
- d.lese( (char*)&ressourceAnz, 4 );
- d2.schreibe( (char*)&ressourceAnz, 4 );
- for( int i = 0; i < ressourceAnz; i++ )
- {
- int j = 0;
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- char len = 0;
- d.lese( &len, 1 );
- d2.schreibe( (char*)&len, 1 );
- Text txt;
- txt.fillText( '0', len + 1 );
- d.lese( txt, len );
- d2.schreibe( (char*)txt, len );
- }
- d.lese( (char*)&ressourceAnz, 4 );
- d2.schreibe( (char*)&ressourceAnz, 4 );
- d.lese( (char*)&ressourceAnz, 4 );
- d2.schreibe( (char*)&ressourceAnz, 4 );
- d.lese( (char*)&ressourceAnz, 4 );
- d2.schreibe( (char*)&ressourceAnz, 4 );
- for( int i = 0; i < ressourceAnz; i++ )
- {
- int j = 0;
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- double f = 0;
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- char t = 0;
- d.lese( &t, 1 );
- d2.schreibe( (char*)&t, 1 );
- }
- for( int i = 0; i < 9; i++ )
- {
- int j = 0;
- double f = 0;
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&f, 8 );
- f = 5;
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- double antriebsEffizienz = 100;
- d.lese( (char*)&antriebsEffizienz, 8 );
- d2.schreibe( (char*)&antriebsEffizienz, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- }
- for( int i = 0; i < 3; i++ )
- {
- int j = 0;
- double f = 0;
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- d.lese( (char*)&f, 8 );
- d2.schreibe( (char*)&f, 8 );
- double antriebsEffizienz = 0;
- d.lese( (char*)&antriebsEffizienz, 8 );
- d2.schreibe( (char*)&antriebsEffizienz, 8 );
- d.lese( (char*)&j, 4 );
- d2.schreibe( (char*)&j, 4 );
- }
- d.close();
- d2.close();
- getchar();
- return 0;
- #ifdef _DEBUG
- _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
- #endif
- initFramework();
- WFenster *f = new WFenster();
- WNDCLASS fc = F_Normal( 0 );
- fc.lpszClassName = "Test";
- f->erstellen( WS_OVERLAPPEDWINDOW, fc );
- f->setSize( 900, 900 );
- f->setPosition( Punkt( 100, 100 ) );
- f->setVSchließAktion( FClose );
- f->setMausAktion( _ret1ME );
- f->setTastaturAktion( _ret1TE );
- f->setAnzeigeModus( 1 );
- Bildschirm *b = new Bildschirm3D( f->getThis() );
- b->setBackBufferSize( 300, 300 );
- f->setBildschirm( b->getThis() );
- b->setTestRend( 0 );
- Obj o;
- b->addMember( &o );
- b->update();*/
- releaseFramework();
- return 0;
- }
|