Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Achtung die Kurve - mein 1. "großes" Projekt (https://www.delphipraxis.net/129028-achtung-die-kurve-mein-1-grosses-projekt.html)

MaToBe 11. Feb 2009 12:30


Achtung die Kurve - mein 1. "großes" Projekt
 
Guten Tag,

da ich es leid bin, im Schulunterricht (12. Klasse) immer nur trockene Theorie zu machen, habe ich mir vorgenommen, mal ein Minispiel zu programmieren, in dem ich alles einbauen kann, was ich schon gelernt habe (z.B. Klassen) und noch vieles mehr, von dem ich noch keine Ahnung habe (z.B. Zeichnen in Delphi (Canvas?)).

Als Minispiel habe ich mir folgendes ausgedacht: http://www.mediendesign-js.de/Achtung%20Die%20Kurve.htm
Das ist ganz witzig und genau das was ich schon immer mal machen wollte.

Nun habe ich gedacht, ich mach mir hier meinen eigenen Thread auf, in dem ich dann zu meinen Proplemen (die da kommen werden) Fragen stellen kann.

Und hier ist schon meine 1. Frage:
Ich habe mich schon mal erkundigt und habe schon ein paar Versuche der Umsetzung für dieses Spiel gefunden.
1 Versuch mit DelphiX, 1 Versuch mit Bitmap und 1 Versuch mit einer Schülerkomponente Namens mSuM.

Wie würdet ihr mir raten, das Projekt umzusetzen? Am liebsten wäre mir, in Delphi direkt zu bleiben.

nuclearping 11. Feb 2009 12:50

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Mach dir erstmal ein Konzept, einen Plan, dem du folgen kannst. Was soll dein Projekt alles haben? Was soll es können? Single-Player? Multi-Player? Netzwerkfähig? Wie soll die Steuerung sein? Keyboard? Joystick? Wie soll die Grafikausgabe sein? Auf TCanvas? OpenGL? DirectX? ... Usw.

Versuche alles so Modular zu halten wie möglich, da ist es dann später auch kein Problem, das Projekt zu warten und zu erweitern (zB andere Grafikengine).
Aber der meiste und größe Fehler von Anfängern ist, dass sie gleich das Ergebnis haben wollen und sofort drauflos programmieren, um ihre Ideen umzusetzen.
Nur kommt man so irgendwann an den Punkt, an dem man feststellt, dass man sich total in einer Sackgasse verfahren hat.

Zum Anfang würde ich dir erstmal raten, die Grafik auf TBitmaps auszugeben (Layer-Methode), die du dann letztendlich auf einem TImage oder einer TPaintBox ausgibst.

MaToBe 11. Feb 2009 13:28

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Zitat:

Zitat von nuclearping
Zum Anfang würde ich dir erstmal raten, die Grafik auf TBitmaps auszugeben (Layer-Methode), die du dann letztendlich auf einem TImage oder einer TPaintBox ausgibst.

Die nicht zitierten Dinge habe ich eigentlich schon bedacht.

- Nur an einem PC spielbar
- Steuerung Spieler 1 Pfeiltasten rechts links
- Steuerung Spieler 2 Q und W usw.

Die Grafikausgabe ist ja eigentlich mein Problem. Genau das ist ja die Frage, wie man das umsetzt, dass Spiel wird so eine Art Snake, nur das die Schlange immer länger wird und da wo sie mal war auch bleibt. Man malt also quasi eine Schlange. Wie kann man das ab besten umsetzten? OpenGL und DirectX ist doch ein bisschen zu krass für 2D und paar Linie oder?

nuclearping 11. Feb 2009 13:40

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Deswegen sagte ich ja, TBitmaps, die du als "Frames" verwendest, die dann letztendlich auf einem TImage oder TPaintBox angezeigt werden.
Du verwaltest intern die Schlangen als Objekte, zeichnest deren Daten auf ein TBitmap, nimmst noch ein anderes TBitmap zB als Frame für Spielerdaten und die Bitmaps zeichnest du quasi nacheinander auf das TImage. SnakeBitmap + GUIBitmap = Image was User sieht.

furuha 11. Feb 2009 15:00

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Grade weil bei diesem Spiel die Schlange immer länger wird bietet sich doch grade TCanvas an, da nicht jede Sekunde das Ganze Bild neu geladen werden muss sondern immer nur eine neue "Linie" an das vordere Ende der schlange angehängt wird. Sobal die Runde zuende ist leerst du die Zeichenfläche wieder und gut ist. Das schwierigste an der Sache ist wohl die Kollisonsabfrage.


Furuha


PS: Man verzeih es mir wenn ich totalen Müll gelabert habe...

MaToBe 11. Feb 2009 15:38

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
doch so hab ich mir das gedacht, das die schlange bleibt und man immer vorne dann was dranmalt weil die schlange ja größer wird.

Wie geht das mit dem Canvas? Kennt jemand ein gutes Tutorial oder mag es mir erklären? Kenn mich da nicht aus, sorry.

xy124 11. Feb 2009 16:13

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
also malen mit canvas ist gaanz einfach... probier's doch erstmal auf dem formular...
Delphi-Quellcode:
  Canvas.Pen.Color := clred;//Farbe
  Canvas.Pen.Width := 3; //"Strichdicke"
  //und jetzt wird gemalt!
  Canvas.MoveTo(1,1); //schiebt den Stift zu 1,1
  Canvas.LineTo(100,100); //malt den ersten Strich!
zudem könnte das hier helfen:
http://www.delphi-treff.de/tutorials/grafik-und-spiele/

Looper 11. Feb 2009 16:36

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Hey,
mein erstes Projekt habe ich auch diesem Spiel gewidmet und habe die Grafikausgabe mit Hilfe der TImage-Komponente realisiert. Hier im Forum wird zwar immer wieder bemängelt, dass sie nicht sehr schnell sein soll (ressourcenfressend), aber für meine Umsetzung hat sie locker gerreicht.
Du solltest dir am Anfang überlegen welche Klassen du erstellen möchtest und was diese tun sollen.

Wenn du Fragen hast, frag einfach. Die meisten Fragen zu diesem Spiel, müsste ich eigentlich beantworten können.

Gruß Looper

nuclearping 12. Feb 2009 08:27

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Zitat:

Zitat von MaToBe
doch so hab ich mir das gedacht, das die schlange bleibt und man immer vorne dann was dranmalt weil die schlange ja größer wird.

Und der Schwanz der Schlange bewegt sich nie? ;)

himitsu 12. Feb 2009 08:33

Re: Achtung die Kurve - mein 1. "großes" Projekt
 
Stell dir dort ein Loch vor, wo die Schlange rauskommt :zwinker:


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:13 Uhr.
Seite 1 von 2  1 2      

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