SDL > Packte erstellen

Für Probleme bezüglich Grafik, Audio, GL, ACS, ...
Antworten
pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

SDL > Packte erstellen

Beitrag von pluto »

Hallo,
ich versuche Gerade die JEDI SDL Units die ich für Lazarus Gefunden habe in ein lpk aufzunehmen. Aber das klappt überhaupt nicht.

/media/hda7/Daten/lazarus/JEDI-SDLv1.zip_FILES/JEDI-SDLv1.0/SDLCtrls/Pas/SDLForm.pas(161,14) Error: Incompatible types: got "TYPES.TPoint" expected "SDL.TPoint"

mir ist der Fehler klar, aber wie kann ich ihn umgehen ?
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

so ich habe es doch noch hinbekommen:

Code: Alles auswählen

//{$IFDEF UNIX}
//  {$IFDEF FPC}
    {$IFDEF Ver1_0}
    linux,
    {$ELSE}
    pthreads,
    baseunix,
    unix,
    {$ENDIF}
    x,
    xlib,
//  {$ELSE}
  Types,
  Libc;
  //{$ENDIF}
//{$ENDIF}  
  PPoint = ^TPoint;
 
  Tpoint = Types.TPoint;
//  TPoint = record
  //  x: Longint;
//    y: Longint;
  //end;
schön ist das zwar nicht aber das war meine einzigte Idee die ich hatte !
MFG
Michael Springwald

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Jetzt versuche ich das LPK zu Installieren, Komplieren geht
aber Installieren nicht:
/media/hda7/NamenloserOrdner/JEDI-SDLv1.0/SDL/Pas/userpreferences.pas(79,3) Error: Identifier not found "class"


Aus irgendeinen Grund findet er das Schlüsselwort Class nicht mehr.
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Wenn du es zum Laufen bringst, wäre es toll, wenn du
  • die Downloadquellen (für Linux und Windows) genau nennen könntest.
  • Deine Vorbereitungen und Arbeitsschritte genau dokumentieren könntest.
  • Deine Erfahrungen niederschreiben könntest.
  • (Eventuell noch kleine Beispiele hast?)
So hätten viele Andere was davon. Ich wär dir sehr dankbar, da ich mit SDL+Laz/FPC bisher nur Probleme und NULL Erfolg hatte - und bin sicher nicht der Einzigste.

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

also ich habe mir das packte hier runter geladen:
http://sourceforge.net/project/showfile ... p_id=43805" onclick="window.open(this.href);return false;

Dann habe ich alle Dateien die dort enhalten waren und zur Lib gehörten in eigenes LPK gepackt(Datei\Neu\Neues Packte).

Dann habe ich es Kompliert was auch ohne Probleme geklappt hat, aber beim Installieren hagelt es Fehler. Z.b. Kennt er das Schlüsselwort class nicht mehr.


Weil das nicht ging und ich weiter machen wollte habe ich ganz einfach die benötitgen Verzeichnisse Einfach wie ich es immer mache, zum Projekt hinzugefügt.

Nach einigen Anpassungen lieft der Code und ich konnte die Beispiele nach Lazarus umwandeln. Die beim Orignal SDL Jedi Hedern dabei sind. Ich kann es nur nicht installieren aber benutzen konnte ich es.
hier mal einige Tutorials die mir etwas weiter geholfen habe:
http://www.libsdl.de/docs.htm" onclick="window.open(this.href);return false;
Dort gibt es Deutsche Tutorials, leider in C, aber die sind sehr einfach gehalten, das jeder der gut Object Pascal kann sie ohne weiteres nach Delphi kopieren kann und Anpassen.

Außerdem gibt es hier noch zwei SDL-Tutorials:
http://www.delphigl.com/" onclick="window.open(this.href);return false;
Unter Tutorials sind sie zu finden.

Nun zu meinen ersten Versuchen mit SDL:
Ich kann jetzt einfache Bilder laden und auch anzeigen und auf User Eingaben Reagieren.

Was ich nicht kann:
Unterscheiden ob die Linke oder Rechte Maustaste gedrückt wurde
Ein Grafik Font einfärben oder Vergrößern.

Der Größte Hacken von SDL (ist wie ich finde) das alles auf ein eigens Fenster drauf kommt, d.h. man kann nicht wie bei OpenGL die dastellung auf ein Panel z.b. Anzeigen.

Alles spielt sich in der LPR(Unter Delphi DPR) Datei ab.

Ich habe jetzt erstmal wieder aufgeben. Man muss sich um alles kümmern und es gibt wenig Hilfe die einen weiter bringen, die meisten Tutorials bieten nur einen einfachen einstieg an, aber nix weiter Führendes wie z.b. das mit den Schrift Zügen auf dem Fenster.

Da sdl auf der GDI basiert vermute ich einfach mal das TCanvas auch auf GDI basiert, liege ich damit richtig ?

Weil ich werde das Spiel was ich eigentlich mit SDL anfangen wollte zu Schreiben, so schreiben wie bisher mi TCanvas und BitBlt, da kenne ich mic aus und es gibt relativ schnelle erfolge. und für einfache 2D Spiele reicht das vollkommen. Eigentlich schade, weil mir SDL eigentlich sehr gut vom Konzept her gefällt und auch die Möglichkeit nicht einfach alles Neu zeichnen sondern nur die veränderten bereiche. Was natürlich die CPU-Last reduziert.

Fazit: Ich werde es wohl immer wieder Probieren, ob ich einige Fragen die ich noch habe klären kann, aber ich werde SDL noch nicht verwenden.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Da sdl auf der GDI basiert vermute ich einfach mal das TCanvas auch auf GDI basiert, liege ich damit richtig ?
Ja.
Eigentlich schade, weil mir SDL eigentlich sehr gut vom Konzept her gefällt und auch die Möglichkeit nicht einfach alles Neu zeichnen sondern nur die veränderten bereiche. Was natürlich die CPU-Last reduziert.
Warum zeichnest dus nicht einfach auf ein Bitmap da musst dann auch nur die Bereiche neuzeichnen die sich ändern...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Genau so mache ich das im Moment.
Ich habe ein Hintergrund TBimap und wenn sich die TPaintbox neuzeichnen muss, Kopiere ich einfach nur den entsprechenden Teil aus dieser TBitmap.
MFG
Michael Springwald

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

Und wo ist da der Unterschied ?
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ja ! Das Frage ich mich auch...Warum SDL nehmen, wenn es mit TCanvas. Viel leichter geht...
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

Schade eigentlich. Und wundern tut es mich auch.
Fast jede bekannte Programmiersprache hat ein Paket für SDL (Pygame für Python, SDL für Perl, SDL für C, C++, usw.). Nur für Delphi/Lazarus/FPC gibt es Paket, das maintained wird mit Beispielen, Tutors und so. Sehr schade eigentlich.
Auf Delphigl.com habe ich schon nachgesehen, aber sehr gut finde ich die Informationen dort nicht.

Naja, vielleicht werden meine Gebete ja doch eines Tages erhört und jemand nimmt sich dessen an (ach hätt ich blos das know how).

Danke trotzdem, aber so wie es aussieht, läuft es auch bei dir nicht wirklich fehlerfrei, wenn es doch dort und da immer wieder Probleme gibt.

SDL an sich ist nicht so schwer, ich hatte/habe unter PureBasic und Python schon damit zu tun. Und die pygame (http://www.pygame.org" onclick="window.open(this.href);return false;) Dokumenation ist nicht so schlecht. Vielleicht kann man daraus ja Informationen beziehen, wie man mit SDL unter FPC weiterkommt??

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Es gibt sehr viele beispiele von der JEDI SDL, die musst du alt nach Lazarus Umwandeln evlt. werde ich dir mal ein Packte zusammen stellen..

hat du denn Erfahrung mit SDL sammeln können ?
Wenn ja würde ich gerne mit über darüber wissen, wie ich einen Text dastellen kann und was mir alles zur verfügung steht.

Jetzt mal unabhängig von der Programmiersprache.
Weil das ist im Moment der Haupt Grund warum ich mich damit nicht mehr befasse.

Wie gesagt, es gibt viel zu SDL auch für Lazarus.... bzw. Delphi. Das meiste müssten wir aber noch umschreiben mit Sicherheit, aber die Basses Sachen müssten klappen.

Bei gelegenheit werde ich mich aber weiter damit befassen um einige Fragen zu klären die ich noch habe !

und noch einmal das Prinzip finde ich toll von SDL, aber die umsetztung nicht.

evlt. könnten wir auch was Eigenes auf die Beine stellen, was in die Richtung geht.

Ach ja: könntest du mir evlt. noch mehr Funktionen von SDL verraten ?
MFG
Michael Springwald

bembulak
Beiträge: 370
Registriert: Di 6. Feb 2007, 09:29
OS, Lazarus, FPC: L0.9.29 SVN:24607 FPC 2.4.0-32 bit @ Win XP SP3
CPU-Target: 32bit i386, ARM
Wohnort: Oberösterreich

Beitrag von bembulak »

hier http://www.libsdl.org/intro.de/toc.html" onclick="window.open(this.href);return false;
sind ja alle Funktionen erklärt. In wie weit die in dem JEDI Paket drinn sind, weiß ich allerdings nicht.
Python/Pygame und PureBasic setzen die vorhandenen Befehle eigentlich zur Gänze um.

Man kann eigentlich alles machen, was man für 2D-Spiele und Multimedia braucht.
Grafik, Sound, Midi, Joystick, Blitting, Fullscreen, Windowedscreen, ImageManipulation,...

Das muss man eben ausprobieren. Das JEDI Paket wird ja sicherlich so ausgeliefert, dass man irgendwie nachvollziehen kann, wie die Befehle heißen. Davon müsste man dann ja nachvollziehen können, zu welchen originalen SDL Befehlen sie gehören. Ergo könnte man dann "relativ schnell" feststellen, was ein Befehl tut. Nur noch richtig kombinieren und voila hat man ein 2D-Spiel oder so.
(Ganz so einfach ist es freilich nicht, aber sollte doch möglich sein. Ich muss mich aber noch mehr mit FPC/Lazarus beschäftigen, um das auch verwenden zu können)

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Was ich ja toll fand, das ich die C Beispiele die ich gefunden habe ohne weiteres nach Lazarus umschreiben konnte, weil die Unit Namen gleich hießen und auch die Parameter Liste.

Ich weiß aber noch nicht genau, ob ich mich weiter mit SDL befasse, weil das was ich jetzt darüber weiß ist noch nicht viel und es gibt mit Sicherheit noch mehr.

Ja die Seite kenne ich schon, werde sie mir gleich mal etwas genauer anschauen.
MFG
Michael Springwald

Antworten