Space Invaders WE Projekt

Vorstellungen von Programmen, welche mit Lazarus erstellt wurden.
Benutzeravatar
six1
Beiträge: 782
Registriert: Do 1. Jul 2010, 19:01

Space Invaders WE Projekt

Beitrag von six1 »

..weil ich Space Invaders schon immer cool fand, habe ich ein paar freie Stunden genutzt, etwas ähnliches zusammenzuhämmern.
Ist nichts Beonderes, das ganze Spiel wird über einen 40ms Timer verarbeitet.
Also bitte nichts perfektes, großartiges, große Programmierkunst oder ähnliches erwarten... Quick & Dirty :lol:
Ich habe 9 Level eingebaut, wobei in die Einstellungen der Level keine große Zeit eingeflossen ist.
Es handelt sich bei den Level Einstellungen um eine Liste Parameter (im Programm leicht erweiterbar!), welche Einfluß auf die Anzahl Defens (Bunker), Anzahl Aliens,
Anzahl Schüße, Geschwindigkeiten der Gun und des Alien Mutterschiff haben usw.
Bisschen kommentiert habe ich es... kleines bisschen :lol:

Cursor "<" und ">" für GUN Steuerung
Leertaste zum Feuern (oder Cursor UP, falls die Leertaste durch ist :lol: )

STRG-S schaltet den Sound ab
STRG-P hält den Spielverlauf an (Pause)
STRG-? :mrgreen: Cheat Mode, wobei es NICHT das "?" ist!
ESC beendet Level und auch das Spiel

Zusätzlich kann man das Programm sich automatisch an anderen Programmen positionieren lassen, falls man es als Easteregg verwenden möchte.
Hierzu in der Variable "ExternesProgramm" die Caption des externen Programm angeben und evtl. die Positionen zu diesem Programm anpassen.
Man sollte dann aber den FormStyle auf fsSystemStayOnTop verwenden!

Einfach mal so alles abballern :-) unter WIN
Edit: Mittlerweile habe ich Compilerschalter eingebaut und es erfolgreich für Linux i386, ARM Hardfp und Win i386 kompiliert. Läuft also auch auf einem Raspi

Ich habe die Komponente "UniqueInstance" und DCPCrypt verwendet! Lässt sich über OnlinePackageManager installieren.
ShapeCorner, ein TShape mit "runden Ecken", wobei die Rundung einstellbar ist.
ShapeCorner.zip
(70.21 KiB) 133-mal heruntergeladen
Ansonsten alles von der Stange; Lazarus default. Es muss allerdings FPC >= 3.2 sein, da ich DELETE für Arrays einsetze.

Falls ihr es mögt, hinterlasst eine Nachricht und vielleicht hat jemand Lust bekommen, sich an einem Horizontal Scroll Spiel zu versuchen?

(Copyright Datei BASS liegt bei, Pictures und Music frei verfügbar)

Update: 23.12.2021
Sourcen jetzt auf GIT

https://github.com/six1/SpaceInvaders.git

Image25.png
Image25.png (596.72 KiB) 3322 mal betrachtet
Zuletzt geändert von six1 am Do 23. Dez 2021, 12:03, insgesamt 14-mal geändert.
Gruß, Michael

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6198
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: Space Invaders WE Projekt

Beitrag von af0815 »

+1

Ev. Github oä. für die Sourcen?
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Space Invaders WE Projekt

Beitrag von theo »

Geht das auf Linux?
Wo gibt es Package NewShape bzw. Unit ShapeCorner? Kann ich nicht finden.
Danke.

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

Re: Space Invaders WE Projekt

Beitrag von six1 »

Ahhgrrr.. NewShape habe ich mal selbst gezimmert... normales Shape mit abgerundeten Ecken (Rundung einstellbar)...
Habe es oben eingefügt.

Ich denke, es sollte auf Linux laufen, wenn du die BASS Librarys ins /usr/lib legst. Musst du dir auf der BASS Seite runterladen
https://www.un4seen.com/
Zuletzt geändert von six1 am Sa 27. Feb 2021, 19:23, insgesamt 2-mal geändert.
Gruß, Michael

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Space Invaders WE Projekt

Beitrag von theo »

OK, Danke.

Kompiliert so direkt leider nicht auf Linux (uses Windows).
FindWindow etc..

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

Re: Space Invaders WE Projekt

Beitrag von six1 »

Ok, es liegt bestimmt daran:

kommentiere Windows in den Uses aus

Nimm die ganze Routine raus:
procedure TForm1.PositionWindow;

Kommentiere folgendes aus:
MessageBox(0,'An incorrect version of BASS.DLL was loaded',nil,MB_ICONERROR);
Gruß, Michael

Benutzeravatar
theo
Beiträge: 10467
Registriert: Mo 11. Sep 2006, 19:01

Re: Space Invaders WE Projekt

Beitrag von theo »

Ja,. hab's soweit hingekriegt.
Allerdings gab es in der lpr noch "jwawinGDI" und AddFontResourceEx. Habe ich ersatzlos gestrichen.
BASS_Init mit Nil statt "Handle".
In die uses noch LCLIntf, LCLType dann läuft's.
MessageBox kann man drin lassen.
Danke! :D

EDIT: Die "Assets" muss man sich bei der Source Zip noch holen vom Program Zip und die Pfade (Backslashes) noch anpassen, damit es tönt:

Code: Alles auswählen

 f := PChar(extractfilepath(application.exename)+'Assets/Audio/01-opening-theme.mp3');  
EDIT2: Yes, ist fast wie früher.... :wink:

siro
Beiträge: 730
Registriert: Di 23. Aug 2016, 14:25
OS, Lazarus, FPC: Windows 11
CPU-Target: 64Bit
Wohnort: Berlin

Re: Space Invaders WE Projekt

Beitrag von siro »

C O O L . . . mit Sounds

mir gefällt es sehr, erinnert mich an alte Zeiten.

Siro
Grüße von Siro
Bevor ich "C" ertragen muß, nehm ich lieber Lazarus...

HobbyProgrammer
Beiträge: 166
Registriert: Di 29. Okt 2019, 12:51
Wohnort: Deutschland , Baden-Württemberg

Re: Space Invaders WE Projekt

Beitrag von HobbyProgrammer »

six1 hat geschrieben:
Sa 27. Feb 2021, 17:15
Ok, es liegt bestimmt daran:

kommentiere Windows in den Uses aus

Nimm die ganze Routine raus:
procedure TForm1.PositionWindow;

Kommentiere folgendes aus:
MessageBox(0,'An incorrect version of BASS.DLL was loaded',nil,MB_ICONERROR);
Wenn Du bedingte Kompilierung verwendest

Code: Alles auswählen

{$ifdef LINUX}
{$else}
{$endif}
kannst Du die jeweiligen Plattformen direkt im Quellcode entsprechend richtig behandeln.
Host: Core i7-12700H, NVIDIA RTX3050 6GB, 32GB Ram, 1TB NVME SSD mit KUbuntu 22.04LTS 64bit , VM KUbuntu 22.04 LTS 64bit mit Lazarus 2.2.6 und Cross-Platform Compiler für Linux 32/64bit und Windows 32/64bit. Wine für erste Tests der Windows Binarys.

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

Re: Space Invaders WE Projekt

Beitrag von six1 »

...schon klar... bin gerade dabei das für Linux i386 und Arm zu fixen.
War ja ursprünglich nur für Win10 gedacht 8)
Gruß, Michael

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

Re: Space Invaders WE Projekt

Beitrag von six1 »

Ok, ich habe die Bedingungen alle drin und Binaries für Linux ARM (RASPI HardFloat), Linux i386 und Windows 32 Bit gleich dazu gepackt.

Bei der RASPI ARM Version einfach aus beiliegendem Verzeichnis BASSArm unter HardFP die Dateien in /usr/lib kopieren (sudo!)
Sind wie üblich ein paar graphische Anpassungen zu tätigen... aber läuft auf Raspi

Der obige Souren Link enthält alles, incl. Binaries...

Edit: und die Slashes habe ich nun auch korrigiert :mrgreen:
Gruß, Michael

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Space Invaders WE Projekt

Beitrag von Winni »

Hi!

Wenn das man erlaubt ist. Das macht süchtig!

Und dann kam der Atari ST und mit ihm ein neues Universum:

Starglider

Mit guter Graphik und sehr gutem Sound.
Man wollte zeigen was der Atari so kann.
Überall in den Büros waren sie dabei, das Universum zu retten!

Winni

Benutzeravatar
Winni
Beiträge: 1577
Registriert: Mo 2. Mär 2009, 16:45
OS, Lazarus, FPC: Laz2.2.2, fpc 3.2.2
CPU-Target: 64Bit
Wohnort: Fast Dänemark

Re: Space Invaders WE Projekt

Beitrag von Winni »

Hi!

Leerer String beim Eintrag in die Hall of Fame ergibt ne Exception.

Winni

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

Re: Space Invaders WE Projekt

Beitrag von six1 »

ups... kann ich leider nicht nachvollziehen...
wäre gut, wenn du das heraus bekommst, woran es liegt.
Falls ja, teile mir bitte mit, woran es lag, damit ich es einpflege.
Gruß, Michael

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: Space Invaders WE Projekt

Beitrag von sstvmaster »

Danke für das Spiel.

Da mein Laptop auf 125% Anzeige steht habe ich erst nix gesehen von den Invaders.
Bei 100% funktioniert aber Tadellos.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Antworten