010
27.05.2005, 10:50 Uhr
~Schu
Gast
|
Ok...dann füttere ich euch mal mit ein bissl Code...vielleicht wird dann einiges klarer
| Code: |
// liest den Breitengrad ab dem angegebenen Offset aus und rechnet deisen um in // Grad (in der Dezimalschreibweise) // @param offset - gibt an, an welcher Stelle mit dem Auslesen begonnen wird long double FSPosition::getLat(DWORD offset) { if (!FSUIPC_Read(offset, 8, &readLat, &dwResult) || !FSUIPC_Process(&dwResult)) { foundLat = FALSE; }
if (foundLat) { degree_in_dec = readLat*90.0/calcLat; } else { degree_in_dec = 0.0; } return degree_in_dec; }
|
...das ist ein Beispiel wie ich den Breitengrad auslese...FSUIPC_Read(....) ist z.B. eine Methode, die von der Schnittstelle bereitgestellt wird !!
Und hier jetzt Code, wie ich momentan noch (und für mich wenig befriedigend) eine Änderung per Tastatur realisiere:
| Code: |
//////// function, die den Breitengrad des Towers ändert (um 0, 5 Grad) void FSTower::setTowerLat() { FSTower tower; long double oldLat = tower.getLat(0x0d50); printf("Alte Hoehe: %f \n", oldLat); char ch; std::cin>>ch; if (ch == 'k') { oldLat += 0.00833; printf("erhöhter Wert: %f \n", oldLat); _int64 insertLat = (oldLat*10001750.0*65536.0*65536.0)/(90.0); if (FSUIPC_Write(0x0d50, 8, &insertLat, &dwResult)) { FSUIPC_Process(&dwResult); } } }
|
ich hätte es aber leiber, wenn man irgendwie sagen könnte if (keypressed(key ...., ...)) ohne, dass dabei der Charakter ausgelsen werden muss o.ä. Außerdem muss ich momentan die Eingabe immer noch per <enter> bestätigen und all das ruft immer die shell in den Vordergrund !! außerdem wär's natürlich auch ganz schön, Tastenkombinationen zu haben (z.B. Alt+.... oder Strg+....) !1
Vielleciht ist mein Problem/Anliegen jetzt leichter zu verstehen...
mfg Schu |