Was sind denn WinApi-Aufrufe, welche Spiele haben die und wodurch?
Was sind denn WinApi-Aufrufe, welche Spiele haben die und wodurch?
--Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Also WinApi ist der Name der Ruby-Klasse, welche den Aufruf von der Windows API (Application Programming interface) ermöglicht. Also das ist die Schnittstelle um Windows-Funktionen anzusteuern. Das funktioniert dann logischerweise nicht unter Linux oder Android.
Die häufigsten Verwendungen sind u.a.: Abfragen der Tastatur (GetKeyState) und der Maus, da RGSS (also das mit RPG XP/VX mitgelieferte Ruby) dafür keine Funktionen anbietet und Enterbrain dies alles so vollkommen egal ist, dass sie auch nie sinnvolle Funktionen mal nachträglich einbauen.
Bescheuerter wird es, wenn Spiele das umschalten zwischen Fenstermodus und Vollbild anbieten wollen, da holen die sich das Handle auf das Spiel-Fenster (FindWindowA) und senden dann "F4" an das Fenster.
Oft werden auch externe Programme (.exe) aufgerufen, die dann irgendwelchen Mist machen, wie Dateien zu erzeugen, basierend auf irgendwelchen Übergabeparametern seitens Ruby.
Was ich auch schon mal gesehen habe ist, dass man ein externes Programm aufruft, dieses sucht das Spiel-Fenster und macht dann einen Screenshot vom Inhalt des Spielefensters macht und als Bild abspeichert und das verwendet man dann im "Spiel laden"-Dialog als Vorschaubild. Totaler Wahnsinn, das hätte man sogar mal in Ruby problemlos schreiben können.
Viele Spiele sind unbewusst mit sowas verseucht, weil die auch nur irgendwelche Skripte von Dritten einbinden, welche dann halt intern WinApi für irgendwas verwenden. Hat aber auch einen Vorteil, wenn alle das gleiche Skript verwenden: Das nachbauen des Verhalten ist einfacher
Zum Beispiel die Pokemon-Spiele sind voll von dem Zeug, aber kann ich keine großartigen Geschichten momentan erzählen, da ich mich nie groß mit XP und VX Ace-Kompatiblität beschäftigt habe.
Interessant, danke. Auf sowas wäre ich wohl nie gekommen
Achja, was dazu kommt: Unter Linux /Unix laufen ja auch gar keine .exe-Dateien. Das müsste man sowieso komplett emulieren, um auf einem Mac spielen zu können. kA wies da mit Android aussieht.
--Ein sehr symphatischer und überaus aktiver RPG Maker Benutzer
Genau, .exe geht logischerweise auch nicht und unter Android erst recht nicht, weil die CPU-Architektur eine andere ist und es daher prinzipiell nicht ausführbar wäre.
Aber wie du schon in dem anderen Thread passend gesagt hast:
Und genau das ist es eigentlich, was das ganze Vorgehen überhaupt praktikabel macht. Da 99,9% der Entwickler nur fertige Skripte und Programme zusammenkopieren und höchstens minimal anpassen, reicht es, die beliebtesten der zusammenkopierten Skripte/Proramme zu "simulieren". (Simulieren im Sinne von "Wenn WinApi X aufgerufen wird, fang das ab und simuliere, was X machen würde, sodass der Rückgabewert dem von Windows entspricht"). Wine (Software um Windows-Programme unter Linux auszuführen) macht das z.B. auch.Zitat
Ähnlich macht es EasyRPG auch bei z.B. PicPointerPatch oder Inelukis Keypatch: Wir können zwar die Patche nicht ausführen, aber das Verhalten nachbauen ^^