Warp Spacecraft WE Projekt

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Warp Spacecraft WE Projekt

Beitrag von hum4n0id3 »

six1 hat geschrieben:
Do 23. Dez 2021, 12:26
Projekt liegt nun auch auf Github
https://github.com/six1/WarpSpaceCraft
Ich wollte schon ganz Wütend auf die Tastatur hämmern :mrgreen:

Ganz tolles Projekt :)

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

Naja, ich habe da wirklich nicht viel Zeit investiert; ist eher etwas rudimentär... :lol:
Gruß, Michael

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Warp Spacecraft WE Projekt

Beitrag von hum4n0id3 »

Was muss ich tun um das selber in Lazarus übersetzen zu können. Wenn ich das Projekt in Lazarus aufmache, erscheinen paar Fehler, das es Abhängigkeiten nicht findet. ledcontrols, NewShape, LCL. Wie binde ich diese ein? Muss ich noch etwas beachten?

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

NewShape Kompnente findest du im SpaceInvaders.
Diese Komponente musst du in Lazarus installieren.
Package/Package Datei öffnen -> kompilieren -> Installieren

LedControls (LedControlMaster) kannst du über OPM installieren
Zuletzt geändert von six1 am Fr 24. Dez 2021, 07:35, insgesamt 1-mal geändert.
Gruß, Michael

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Warp Spacecraft WE Projekt

Beitrag von hum4n0id3 »

Das NewShape konnte ich jetzt integrieren. Aber das LEDControls finde ich im OPM nicht. Ich nutze Lazarus 2.0.12 (Fedora 35). Ich habe es auch versucht die LEDCotrols, wie NewShape zu integrieren. Das benötigt BGRABitmapPack, das wiederum im OPM drin ist. Wenn ich das allerdings installiere, ist mein Lazarus kaputt :(

Was mache ich falsch?

Wo hast du das NewShape überhaupt her, wenn ich fragen darf? :)

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

Also NewShape habe ich mal selbst erstellt, weil ich einstellbare Rundungen an Shapes benötigt habe.

BGRA Pack ist eines der ersten Dinge, welche ich über OPM aufspiele. 8) (graphic and controls)

LEDControls_Master ist nicht in OPM; habe eben gerade nochmal nachgeschaut.
Ich hatte es den Sourcen aber beigepackt!
Das Paket kommt von "Atomek" www.atomek.de/coding/ledcontrols

Ist deine LAZ Installation aktuell? BGRA sollte sich schon installieren lassen...
Gruß, Michael

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Warp Spacecraft WE Projekt

Beitrag von hum4n0id3 »

Frohes und gesundes neues Jahr! :)
six1 hat geschrieben:
Fr 24. Dez 2021, 07:42
Also NewShape habe ich mal selbst erstellt, weil ich einstellbare Rundungen an Shapes benötigt habe.
Kannst du das auch in dein GitHub-Repo stellen?! :)
six1 hat geschrieben:
Fr 24. Dez 2021, 07:42
BGRA Pack ist eines der ersten Dinge, welche ich über OPM aufspiele. 8) (graphic and controls)
Ich habe es mittlerweile auch geschaft ins Projekt einzubinden. Ohne das Lazarus bei mir hops geht.
six1 hat geschrieben:
Fr 24. Dez 2021, 07:42
LEDControls_Master ist nicht in OPM; habe eben gerade nochmal nachgeschaut.
Das Paket kommt von "Atomek" www.atomek.de/coding/ledcontrols
Habe es mittlerweile auch gefunden :)
six1 hat geschrieben:
Fr 24. Dez 2021, 07:42
Ich hatte es den Sourcen aber beigepackt!
Danke! Ich habe dein Projekt mittlerweile auch auf GitHub geforkt, um evtl. meinen Code dir als Pull-Request schicken zu können. Momentan will ich das Projekt sauber in Lazarus übersetzen können. Da Libs wie LEDControls bereits im GitHub sind, denke ich das deine beigepackte Lib hier gar nicht benötigt wird. Also kann sie in deiner Repo raus. BGRA ist in OPM, was noch fehlt, ist deine NewShape im GitHub. Dann hätte ich ein schmales Projekt und eine Anleitung wie man das Projekt baut. An der Anleitung arbeite ich gerade.
six1 hat geschrieben:
Fr 24. Dez 2021, 07:42
Ist deine LAZ Installation aktuell? BGRA sollte sich schon installieren lassen...
Ich nutze Fedora 35 und das hat Lazarus 2.0.12. BGRA hat mein Lazarus zerstört weil ich unter Fedora noch mesa-libGLU benötigte. Danach ließ sich auch Lazarus mit BGRA nutzen und LEDControls ebenfalls ins Projekt integrieren. Also:

- NewShape integriert
- BGRA über OPM geholt
- LEDControls integriert

Zum Schluss hat der Compiler noch über die Windows-Unit von Controls.Blinker, Controls.SegmentDisplay, Controls.LedMeter und controls.signalstrength gemeckert, das ich bisher nur so zu lösen wusste:

Code: Alles auswählen

uses
  {$IFDEF windows}
  Windows,
  {$ENDIF} 
Nachdem er nichts mehr zu meckern hatte, habe ich ein beherzigstes Run versucht und bei der Fehlermeldung:

Code: Alles auswählen

Compile Project, Mode: Default, Target: WarpSpaceCraft: Exit code 1, Errors: 1, Warnings: 2
WarpSpaceCraft.lpr(21,1) Warning: "crtbeginS.o" not found, this will probably cause a linking failure
WarpSpaceCraft.lpr(21,1) Warning: "crtendS.o" not found, this will probably cause a linking failure
linker: /usr/bin/ld: cannot find -lbass
WarpSpaceCraft.lpr(21,1) Error: Error while linking
stehen geblieben. :?

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

Du musst BASS installieren.
https://www.un4seen.com/
Gruß, Michael

hum4n0id3
Beiträge: 301
Registriert: So 5. Mai 2019, 15:23

Re: Warp Spacecraft WE Projekt

Beitrag von hum4n0id3 »

Super! Vielen Dank! Jetzt geht es :D

Ich habe dir einen Pull-Request (https://github.com/six1/WarpSpaceCraft/pulls) geschickt mit den Schritten, wie ich es gemacht habe. Damit auch andere dieses Projekt bei bedarf selbst bauen können.

Mit freundlichen Grüßen

hum4n0id3

PS.: Wenn möglich, kannst du auch dein ShapeCorner ins GitHub stellen :mrgreen: Aber nur wenn möglich.

Edit: Lehn das Pull-Request bitte ab. Ich habe einen Fehler gemacht. Ich habe dir nur das Readme schicken wollen. Während dessen habe ich noch bei mir sauber gemacht und hoch gepusht. Das neue ist ebenfalls im Pull-Request gelandet. Wenn du das Pull-Request annimmst, ist von einem Projekt dann vieles weg. Sorry, das habe ich nicht gesehen. Ich hätte ein extra Repository machen müssen :(

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

Puhhh... 8) ich habe es "irgendwie" hin bekommen, Deine Änderungen der ReadMe.md auf die "main" zu übernehmen.
Wie bereits geschrieben, habe ich nicht wirklich Ahnung von GIT.

Vielen Dank für Deine ausführliche Beschreibung, das Projekt an den Start zu bekommen.
Gruß, Michael

nvco.o
Beiträge: 1
Registriert: Mi 23. Mär 2022, 21:05

Re: Warp Spacecraft WE Projekt

Beitrag von nvco.o »

Hallo an alle,
ich habe eine Frage. UNd zwar sollen wir für die Schule ein kleines Projekt selber erstellen und ich habe mich für ein ähnliches Spiel entschieden. Nur habe ich das Problem, das ich keine Ahnung habe, wie ich die Schüsse auf tastendruck (z.b. Leertaste) „erscheinen“ lassen kann. wie sich der schuss ausbreitet kann ich mir herleiten, allerdings weiß ich eben nicht wie das projektil auf dem bildschirm „erscheint“ bzw immer wieder neu spawnt.
Bitte um Rückmeldung

Und bitte keine unendlich komplizierten Beschreibungen, ich habe das Fach nur in der Shcule und bin kein Profi :)

Benutzeravatar
kralle
Lazarusforum e. V.
Beiträge: 990
Registriert: Mi 17. Mär 2010, 14:50
OS, Lazarus, FPC: Linux Mint 20 , FPC 3.3.1 , Lazarus 2.1.0 -Win10 & XE7Pro
CPU-Target: 64Bit
Wohnort: Bremerhaven
Kontaktdaten:

Re: Warp Spacecraft WE Projekt

Beitrag von kralle »

Moin,
nvco.o hat geschrieben:
Mi 23. Mär 2022, 21:13
Und bitte keine unendlich komplizierten Beschreibungen, ich habe das Fach nur in der Shcule und bin kein Profi :)
Vielleicht hilft die das als Einstieg: https://www.getlazarus.org/videos/baregame/

Der Mauszeiger ist ein Sprite und das kannst Du dann mit eigener Grafik über den Bildschirm flitzen lassen.

Interessanter wird es schon den Treffer zu erkennen. Da musst Du ständig die Koordinaten von Geschoss und Ziel vergleichen und wenn sie gleich sind - bang.

Gruß Heiko
OS: Manjaro Linux, Debian und Windows 10
FPC-Version: 3.2.2 , Lazarus 3.0
+ Delphi XE7SP1

Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Re: Warp Spacecraft WE Projekt

Beitrag von six1 »

8) schwierig, was du da verlangst...

ganz grob ist der Ablauf so:
1)
du benötigst ein "Konstrukt", in welchem die Schüsse definiert sind.
Jedes Abfeuern erzeugt in diesem Konstrukt einen neuen Eintrag für den neuen Schuß.
2)
du benötigst einen Timer, welcher dafür zuständig ist, das Spiel zu beleben.
Immer wenn der Timer auslöst, wird das Konstrukt für die Schüsse durchlaufen und jeder einzelne Schuss auf dem Bildschirm weiter bewegt.
Hier können auch Angaben im Konstrukt für Winkel, Geschwindigkeit usw. vorhanden sein.

In meinem Programm ist das Konstrukt für Schüsse folgendes:

Code: Alles auswählen

type
  TShoot = record
    pic:TImage;
    sidewaysDirection:integer;
    sidewaysAngle:integer;
  end;  
Das ist erst mal nur die Beschreibung für einen Schuß.
Im Programm selbst wird ein Array für Schüsse definiert. Es handelt sich dabei um ein dynamisches Array, welches zur Laufzeit des Programms in seiner Größe geändert werden kann.

Die Definition kann so aussehen:

Code: Alles auswählen

    
    Shoot:array of TShoot;
Drückst du also die Leertaste für einen Schuss, muss ein Eintrag im Array vom Typ TShoot erzeugt werden.

Code: Alles auswählen

setlength(Shoot, length(Shoot)+1);
Jetzt musst du die Parameter festlegen:

Code: Alles auswählen

Shoot[high(Shoot)].pic:=TImage.Create(nil);
Shoot[high(Shoot)].pic.left
....
Im Timer Event musst du den Schuß (das Picture) in seiner Position ändern und ständig prüfen, ob der Schuß auf andere Objekte trifft.
In meinem Projekt ist das Timer Event da zu finden: procedure TForm1.TimerGameTimer(Sender: TObject);


Das war es jetzt mal im Groben; wenn du noch gar keine Erfahrung hast, wird das eine steile Lernkurve oder Frust...
Gruß, Michael

Antworten