Registriert: So Sep 26, 2010 12:54 Beiträge: 238 Wohnort: wieder in Berlin
Programmiersprache: Englisch
Nur Bemerkungen, sind keinesfalls als Angriff zu verstehen... da haben sich ja manche Leute immer gleich
- Führende Unterstriche für Parameternamen sind ungünstig, meiner Meinung nach. A wäre da knuffiger - entsprechend den Borland "Regeln" - UInt16 und co, sind in EVMath, wieso nicht EVPlatform? - Feldnamen haben bei Dir manchmal kleine führende 'Effs' mal große, Große F's sind "richtiger" in dem Zusammenhang. - inherited Destroy call "fehlt" in TEVEngine.Destroy; - "const" fehlt hier und da - "Logging" ist nicht conditional - "irreführende" Methodennamen "SetJoystick" z.B. dabei de/initialisierst du nur das subsystem da. Du greifst auch auf die public properties zu innerhalb von methoden, anstatt auf das passende Feld, direkt - in den Settern der Properties könnte man noch nen kleines if reinpflanzen, das geprüft wird ob der neue wert <> der alte wert ist
Registriert: So Aug 08, 2010 08:37 Beiträge: 460
Programmiersprache: C / C++ / Lua
Zitat:
da haben sich ja manche Leute immer gleich
Kenn ich ^^, gehöre aber nicht zu der Sorte...
Zitat:
- Führende Unterstriche für Parameternamen sind ungünstig, meiner Meinung nach. A wäre da knuffiger - entsprechend den Borland "Regeln" - UInt16 und co, sind in EVMath, wieso nicht EVPlatform? - Feldnamen haben bei Dir manchmal kleine führende 'Effs' mal große, Große F's sind "richtiger" in dem Zusammenhang. - "const" fehlt hier und da
gut, einige kleine Designfehler, sind wohl aus etw. Zeitdruck enstanden (und dem Einsatz vom ModelMaker in einer uralten Version)
Zitat:
- "irreführende" Methodennamen "SetJoystick" z.B. dabei de/initialisierst du nur das subsystem da.
das mache ich, damit ich schreiben kann:
Code:
Joystick := true;
und automatisch wird auch das Subsystem initialisiert...
Zitat:
Du greifst auch auf die public properties zu innerhalb von methoden, anstatt auf das passende Feld, direkt
ich finde es manchmal etw. schöner so, macht schließlich Borland auch in ihrem code...
Zitat:
- inherited Destroy call "fehlt" in TEVEngine.Destroy;
Huch, wohl übersehen
Brauch man das aber überhaupt? In TObject ist die Methode doch leer...
Zitat:
- in den Settern der Properties könnte man noch nen kleines if reinpflanzen, das geprüft wird ob der neue wert <> der alte wert ist
wusste gar nicht, dass das geht oO...
Danke für die Kritik, werde versuchen sie in der neuen Version zu berücksichtigen, schließlich sind das alles nur "Schönheitsfehler", keine richtigen Bugs, die die Performance beeinflussen, o.Ä. (zm. wenn ich mich nicht irre...)
Ich habe das nur veröffentlicht, weil ich es als Alternative zum veralteten EasySDL sehe und es bereits in einem (sehr kleinen Sample) verwendet habe...
_________________ offizieller DGL Compliance Beauftragter Never run a changing system! (oder so)
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
end hat geschrieben:
Würde übrigens gerne wissen, ob ihr prinzipiell bereit wärt, SDL zu verweden, bzw. welche Vorteile die VCL ggü. SDL bietet...
Ich denke, dass letzendlich beides Vor- und Nachteile hat. SDL kümmert sich von Haus aus um vieles, um dass man sich beim Nutzen der VCL selbst kümmern muss. Einige Implementierungen fand ich in der VCL leichter als in SDL. Ein einfaches Beispiel ist, zu überprüfen, ob die Anwendung den Fokus hat oder nicht. Das ist in SDL wesentlich komplizierter Umzusetzen, als in der VCL. Nervig finde ich auch das amerikanische Tastaturlayout. Ein Vorteil von SDL bietet z.B. aber auch der direkte Joystick-Support. Wobei ich das Gefühl habe, dass es hier sehr wenige Joystick/Gamepad-Nutzer gibt. Ein Nachteil der VCL ist, dass das OnIdle-Event unregelmäßig aufgerufen wird. Ein Vorteil ist, dass man Komponenten, z.B. ein Mainmenu nutzen kann.
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Dann ist das wohl nur bei mir so
Code:
case keysym.symof
SDLK_Z: MessageBox(0,Pchar('Um diesen Text zu lesen, muss ich Y statt Z drücken'),Pchar(''),0);
end;
Wobei ich natürlich keine Ahnung habe, wie SDL das intern regelt. Bei DirectInput gibts dieses Problem soweit ich weiss auch, ganz sicher bin ich mir jedoch nicht. Es wird ja auch abgeraten, den Status der Tasten über DirectInput abzufragen.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
SDL_EnableUNICODE anyone?
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Di Jun 12, 2012 21:26 Beiträge: 112
Programmiersprache: Delphi
Lord Horazont hat geschrieben:
SDL_EnableUNICODE anyone?
Code:
SDL_EnableUNICODE(1);
Immer noch das gleiche Problem. Funktioniert das bei Euch? Finde es sehr interessant, dass das anscheinend nur bei mir so ist. Kenne ein paar SDL-Spiele, bei denen das gleiche Problem besteht. Wenn das jetzt zu Off-Topic wird: Ich suche nicht unbedingt nach einer Lösung, bin aber trotzdem für Tipps dankbar.
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Dann musst du aber auch auf das andere feld prüfen… Vergesse immer den Namen. Im KeyEvent-Struct gibts jedenfalsl noch ein Feld, wo der unicode-Character drinne steht. Das sollte man für alles nehmen, was man an Characters binden will. F1 und ähnliche sollte man weiterhin über .sym machen.
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Do Sep 02, 2004 19:42 Beiträge: 4158
Programmiersprache: FreePascal, C++
Wenn du sowieso git nutzt, kannst du Github nutzen, da gibts auch Issue Tracker.
Ich würde DLLs und so aber keinesfalls in das Git repository legen. Das sind Binäre Blobs die dem Git nicht gut tun und es unnötig fett machen. Sowas sollte man separat halten (insbesondere, wenn es aus dem Repository-Inhalt erzeugt werden kann; wenn das nicht der Fall ist, kann sowas auch eine Lizenzfrage sein).
grüße
_________________ If you find any deadlinks, please send me a notification – Wenn du tote Links findest, sende mir eine Benachrichtigung. current projects: ManiacLab; aioxmpp zombofant network • my photostream „Writing code is like writing poetry“ - source unknown
„Give a man a fish, and you feed him for a day. Teach a man to fish and you feed him for a lifetime. “ ~ A Chinese Proverb
Registriert: Mi Nov 30, 2011 21:41 Beiträge: 136 Wohnort: Bad Vilbel
Programmiersprache: Delphi 7
Hey,
hab mal den header und das sample runtergeladen und veruscht das sample zu kompilieren. Bei mir kommt gleich zu Beginn eine Exception: "Die Anwedung konnte nicht richtig initalisiert werden (0xc0150002)" Ich hab danach die unit nochmal in sdlx um genannt um sicherzugehen, dass nicht der alte Header benutzt wird, aber immernoch der selbe Fehler.
Registriert: So Aug 08, 2010 08:37 Beiträge: 460
Programmiersprache: C / C++ / Lua
@LordHorazont: Danke für den Hinweis.
@Knittel:
Kommt die Exception in dem Log-Fenster, oder als Windows-Fehlermeldung?
Versuch doch mal per Einzelschritt herauszufinden wann sie kommt.
[EDIT] Offensichtlich ist irgendwas mit der DLL faul... bei meinem WinXP bekomme ich denselben Fehler, auf Win7 64 Bit jedoch keinen Fehler, unabhängig davon, ob ich es 32/64Bit kompiliere. [/EDIT]
_________________ offizieller DGL Compliance Beauftragter Never run a changing system! (oder so)
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.