AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Spielprogrammierung, Shape und Image
Thema durchsuchen
Ansicht
Themen-Optionen

Spielprogrammierung, Shape und Image

Ein Thema von Laurine · begonnen am 24. Feb 2019 · letzter Beitrag vom 3. Apr 2019
 
Nju

Registriert seit: 16. Jun 2004
41 Beiträge
 
#4

AW: Spielprogrammierung, Shape und Image

  Alt 26. Feb 2019, 08:47
Hallo,
es gibt verschiedene Möglichkeiten ein Labyrinthspiel zu bewerkstelligen. Prinzipiell baue ich die bisherigen Vorschläge der Vorposter (mit eigener Erfahrung) aus:

1. Array
Wie ein Vorposter bereits geschrieben hat, sind hier die Zustandsinformationen (Begehbar, Wand, Schalter, etc.) drin, die man abfragen und anzeigen (mit Grafikblöcken)/verwerten kann.

a) Diese Methode eignet sich sehr gut für diskrete Bewegungen (und ist in diesem Fall verdammt schnell!).
b) Auch kontinuierliche Bewegungen sind möglich, allerdings must du im Hintergrund die Position auf das Array umrechnen. Z.B. jeder Block hat eine Größe von 20x20 Pixel. Wenn die Spielfigur eine Wand treffen würde (Spielfigurkoordinaten x=329, y=183 ---> Array[17, 10]), reagiere darauf. Ist immernoch sehr schnell.
c) Kollisionsabfrage der Grafiken: Jeder Block ist ein Objekt. Wenn die Spielfigur das Objekt "Wand" treffen würde, dann geht die Spielfigur nicht weiter. Bei Grundform-Kollisionsabfragen schnell, bei Polygonabfragen (z.B. Form eines unebenen Steins) "langsamer".

2. Layer
Hier greife ich deinen Vorschlag mit dem Untergrund auf: Der oberste Layer ist deine anzuzeigende Spielgrafik (das für den Spieler zu sehende Labyrinth).
Da drunter verstecken sich weitere Layer mit Zustandsinformationen. Der eine Layer kann für die Wände zuständig (keine Wand = transparent, Wand = Farbe) sein, ein weiterer für "Aktionsfelder". Ungewöhnliche Methode, geht aber bis zu einer gewissen Layerstufe ohne Probleme (Achtung->Wenn permanentes Scrolling im Einsatz ist, dürfte dies sehr langsam werden).

Wie du es machst, bleibt natürlich dir überlassen. Die gängigste Methode ist 1c, weil diese sehr schnell zu berechnen ist (Thema "Pixelgenaue Kollision" ist in Bezug auf Schnelligkeit mit Vorsicht zu genießen).

Mit Delphi würde ich allerdings keine Spiele (mehr) erstellen. Ja, ich widerspreche nicht, dass es möglich ist, das damit auf die Beine zu stellen und ja, ich spreche aus Erfahrung, man macht sich das Leben nur unnötig schwer. Du suchst dir Frameworks/Engines, die mit Delphi arbeiten. Ist gar nicht so leicht, da viele davon nicht mehr gepflegt werden. Grundfunktionen wie "Anzeigen, Animationen, etc." sind in der Regel mit dabei, Kollisionsabfrage und Physik darfst du dich mit rumschlagen.

AppGameKit ist gerade für Anfänger sehr gut geeignet schnelle Ergebnisse zu erzielen (mit Tier 2 ist man in Bezug auf Geschwindigkeit "konkurrenzfähig") -> allerdings kostenpflichtig, gibt aber eine Testversion und regelmäßige Rabattaktionen. Und dann gibt es ja noch zahlreiche kostenlose Engines (Unity, etc.), die von der Einarbeitung dann doch schon wesentlich komplexer sind (dafür aber umso mächtiger).

Zusammenfassend:
Zum Testen mit Methode 1a (und mit Einschränkung 1b) nimm Delphi - erwarte aber keine Wunder, denn du fährst einen Kleinwagen mit schlecht einrastender Gangschaltung (in Bezug auf Spiele!). Ab Methode 1b würde ich auf Spieleengines oder Frameworks greifen, die für Spiele ausgelegt sind.
Methode 2 empfehle ich nicht. Ich wollte nur mal Kreativität spielen lassen.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz