AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Wie ist ein 2D Spiel aufgebaut?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie ist ein 2D Spiel aufgebaut?

Ein Thema von Red six · begonnen am 14. Aug 2005 · letzter Beitrag vom 17. Aug 2005
Antwort Antwort
Red six

Registriert seit: 3. Aug 2005
23 Beiträge
 
#1

Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 17:26
Tag,

villeicht passt der Titel nicht ganz, aber mir is nichts Besseres eingefallen

Also ich will unbedingt mal ein 2D Jump&Run programmieren. Da ich OpenGL bzw DirectX nicht durchschaue möchte ich das Spiel gerne mit Herkömmlichen Mitteln gestalten. (Sprich GDI...). Hier gleich mal die Erste Frage: Worin liegt der unterschied zwischen GDI und Canvas? Ist Canvas nicht genau das selbe nur n bissl komfortabler?

Gut hier gleich die Zweite Frage, da ich mir auch noch garnicht so sicher bin ob GDI/Canvas schlau ist. Ich hab schon mal nen kleinen Vertikalshooter programmiert, der bestand aber nur aus nem Haufen TImage`s und Timern die die bewegen.
Is das dumm so? Weil wenn man alles mit Canvas macht braucht man ja auch irgentwas in das man zeichnet (zB PaintBox), aber soll man da auch mehrere Nehmen (Käme ja aufs selbe raus wie mit den Images) oder alles in eine PaintBox zeichnen? Wenn ja, wie soll man die Objekte dann bewegen?

Ahja und noch was: In Jump&Runs bzw in 2D anwendungen werden ja oft Layer eingesetzt, also dass man mit manchen objekten kollidieren kann und manche nur im hinter- oder vordergrund rumstehn. Das OpenGL und DirectX sowas unterstüzt ist mir zu ohren gekommen, wie aber macht man so eine Pseudo Z auf die normale Tour? Geht das überhaupt?

Ich hab halt überhaupt keinen Plan, und bevor ich mich in die arbeit stürze sollte ich wohl wissen was ich tue


Gruß,


Red six
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#2

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 18:42
Zitat von Red six:
Ich hab schon mal nen kleinen Vertikalshooter programmiert, der bestand aber nur aus nem Haufen TImage`s und Timern die die bewegen.
Is das dumm so?
Für den Anfang im Grafikbereich ist das schon ok (da schnell und leicht programmierbar), aber ein TImage ist dafür einfach nicht gemacht.
Zitat:
Weil wenn man alles mit Canvas macht braucht man ja auch irgentwas in das man zeichnet (zB PaintBox), aber soll man da auch mehrere Nehmen (Käme ja aufs selbe raus wie mit den Images) oder alles in eine PaintBox zeichnen? Wenn ja, wie soll man die Objekte dann bewegen?
Erstmal solltest du mit einem Hier im Forum suchenOffScreenBitmap arbeiten. Dieses hat die gleiche Größe wie die Ausgabe (Paintbox oder direkt Canvas der Form). Für jeden Frame zeichnest du es dann neu, indem du die Objekte per Delphi-Referenz durchsuchenDraw oder Delphi-Referenz durchsuchenCopyRect aus anderen Bitmaps einfügst. Wenn du nun noch zusätzlich die GR32-Lib nutzt, solltest du keine Schwierigkeiten mit der Performance haben.

Ob das ganze allerdings leichter als mit OpenGL/DirectX ist, kann ich dir nicht sagen.


Zitat:
Ahja und noch was: In Jump&Runs bzw in 2D anwendungen werden ja oft Layer eingesetzt, also dass man mit manchen objekten kollidieren kann und manche nur im hinter- oder vordergrund rumstehn. Das OpenGL und DirectX sowas unterstüzt ist mir zu ohren gekommen, wie aber macht man so eine Pseudo Z auf die normale Tour? Geht das überhaupt?
Das kommt nur auf die Reihenfolge an, in der du die Objekte auf das Bitmap zeichnest. Die GR32-Library bietet aber auch schon ein fertiges Layer-System.
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Red six

Registriert seit: 3. Aug 2005
23 Beiträge
 
#3

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 18:50
Super danke!

Ich muss zwar erst noch rausfinden wie man diese Bilder da rumkopiert, aber so kann man das Layer system ja relativ einfach nachbaun, jenachdem wie tief das objekt liegt wird halt zuerst das darüberliegende gezeichnet...

  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#4

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 18:56
Ich glaube das größte Problem ist die Grafik, hast du überhaut welche ? Sonst solltest du dich erst darum kümmern.
  Mit Zitat antworten Zitat
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#5

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 19:28
Hallo,
Canvas / GDI hat den Nachteil, dass diese nicht direkt auf die Hardware zugreifen. Für schnellere Spiele empfehle ich DelphiX. Das ist eigentlich nicht schwer zu verstehen.

Florian
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Torpedo

Registriert seit: 21. Dez 2003
410 Beiträge
 
#6

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 14. Aug 2005, 20:06
Ich habe mal mit den GR32-Komponenten ein 2D Jump'n'run programmiert. 150 FPS und sah ziemlich gut aus. Z.b. hat sich der Hintergrund langsamer bewegt als der Vordergrund usw.
Leider kann ich euch das Programm nicht zum Download anbieten, weil ich Grafiken von Nintendo (Super Mario) benutzt habe.
  Mit Zitat antworten Zitat
Red six

Registriert seit: 3. Aug 2005
23 Beiträge
 
#7

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 16. Aug 2005, 14:28
Hört sich gut an, ich werd mich da mal umschaun!

  Mit Zitat antworten Zitat
ichbins

Registriert seit: 9. Jul 2005
Ort: Hohenaltheim
1.001 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 16. Aug 2005, 15:02
Die DX-Komponente DirectDraw enthält auch einen Canvas:
DirectDraw1.surface.canvas.
Der muss dann nur mit der Methode DirectDraw1.Flip in den Vordergrund geholt werden. Ein weiterer Vorteil von DX ist dass das DirectDraw auch im Fullscreen-Modus bei z.B. 640 x 480 Pixeln bei 8 Bit laufen kann, jenachdem wie du es einstellst. Und es ist schneller.

Bei mir geht das alles aber irgendwie auch nicht... (zumindest das Anzeigen der Grafik)
Michael Enßlin
  Mit Zitat antworten Zitat
Phobeus

Registriert seit: 14. Sep 2003
Ort: Tespe
65 Beiträge
 
Delphi 7 Professional
 
#9

Re: Wie ist ein 2D Spiel aufgebaut?

  Alt 17. Aug 2005, 11:09
Damit wir die Palette voll haben: Ich empfehle Dir wie im vorherigen Thread SDL Der Canvas sollte allerdings für deine Zwecke ausreichen. DelphiX würde ich definitiv nicht weiterempfehlen, auch wenn es keine Lüge ist, dass man sehr schnell zu einem Ergebnis kommen kann. Zusatzlibs sind häufig eine gute Lösung, allerdings warum nicht die Schnittstelle direkt?
Zu deinem Spiel: Wie Du bereits angemerkt hast, ist es eigentlich gar nicht so komplex. Ein wenig strukturierte Planung und das 2D-Projekt ist leicht in Angriff genommen und kann nur noch an Dingen scheitern, die man als Anfänger gar nicht "bedacht" hat. Helfen tut oft auch das "Beobachten". Schaue Dir bestehende Spiele an und versuche nachzuvollziehen, wie diese es gemacht haben. Sofern Du das Spiel nicht kommerziell vermarkten möchtest (bzw. non-GPL) würde ich Dir einmal folgende Seite ans Herz legen: Supertux
SDL, Lauffähig (Beobachten), Grafiken zum Testen (GPL) und OpenSource um einmal zu schauen, wie die Entwickler es auch wirklich realisiert haben.
Florian Sievert
http://www.delphigl.com/
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz