Entwickler-Ecke
Sonstiges (Delphi) - Probleme mit der Bewegungsroutine und Raster eines Spiels
ConditionZero - Fr 02.10.09 14:08
Titel: Probleme mit der Bewegungsroutine und Raster eines Spiels
Moin,
bin gerade an einem neuem Projekt dran.
Seit ein paar Tagen habe ich die Konzepte für ein neues Großprojekt soweit fertig.
Diesmal wird’s eine Art RPG aus der Vogelperspektive, quasi im Stil von
Grand Theft Auto 1 [
http://www.blogcdn.com/www.joystiq.com/media/2008/04/gta1.jpg] (Wie auch immer man dieses Genre nennt...)
Nach 2 Wochen mit Stift und Papier habe ich endlich mit dem Grundgerüst begonnen. Da das meiner Meinung nach schon der anspruchvollste
Teil davon ist, gab’s natürlich auch schon gleich ein paar Kleinigkeiten die nicht so ganz wollen, wie ich will.
Deshalb frag ich lieber nach Hilfe bevor mir eine Zehn-Minuten-Aufgabe viele Stunden und Nerven abverlangt.
Im Anhang das komplette Projekt mit Workspace
(gezippt, ohne EXE).
Der Source ist momentan nicht der schönste, aber sobald das Grundgerüst fertig ist und so funktioniert wie es soll, wird dieser überarbeitet.
Dazu folgende Probleme:
1. Die Prozedur für Bewegungen in der uMain-Unit will nicht so ganz funktionieren, war mal fast komplett funktionsfähig, blöd aber, dass ich nach ein paar Experimenten damit versehentlich gespeichert hatte und das leider nicht mehr zum funktionieren gebracht habe.... Klingt komisch, ich weiß :-/
2. Die beiden Canvas (bzw. Hilfsbitmaps) für das Raster wollen nicht transparent werden. Ich möchte, dass die Bereiche in denen keine Rasterlinien (weiß) sind, transparent sind. (Nicht wie momentan im Editor, dass die komplette Stelle mit Formular transparent sind, sondern nur die PaintBox)
3. Wenn ich das Raster im Karteneditor über das MainMenu ausblende
(Visible:= false;), wird es vom Formular behandelt als ob es nicht vorhanden wäre. Dieser Effekt ist dann Visualisierbar mit
Form.AutoSize:= true;
4. Wenn das Raster angezeigt wird, kann das
Form.Click-Event nicht aufgerufen werden, da die PaintBox ja über dem kompletten Formular liegt. Habe das jetzt provisorisch gelöst, indem der Aufruf
LaufZurKoordiante; auch im Click-Event des Rasters steht. Ich hoffe das Problem erübrigt sich, wenn Punkt 3 klappt, da das im Editor wichtig wäre. (Im eigentlichen Spiel sieht man ja sowieso kein Raster.)
Der Karteneditor ist schon so früh mit in der Entwicklung, da ich für das Formular mit dem Spiel selbst nur die Grundfunktionen vom Spiel (Laufen, Aktion, etc.) implementieren will. Die kompletten Missionen und Landkarten werden erst implementiert, wenn der Editor voll funktionsfähig ist, da ich mit dem dann die Missionen erstellen möchte. Das würde mir das 'harte Scripten' der Karten - wie ich es bezeichne - ersparen und es würde keine Maps geben, die der Endbenutzer nicht auch erstellen könnte.
Noch eine Ergänzung:
Verwendete Delphiversion: Delphi 7 Enterprise
Ich hoffe es nimmt sich jemand die Zeit mir ein wenig unter die Arme zu greifen.
Grüße
Marc
BenBE - Fr 02.10.09 14:34
Für Projekte ab einer gewissen Größe ist die Nutzung eines Versionskontroll-Systems Pflicht ... damit wäre dann nämlich auch dein erster Punkt kein Problem ...
Delete - Fr 02.10.09 14:51
Für Projekte ab einer gewissen Größe ist die Nutzung einer Engine Pflicht. :mrgreen:
Also ich würde dir statt Canvas lieber eine Engine wie Andorra2D empfehlen.
MFG
ConditionZero - Fr 02.10.09 18:34
Was würde eine Versionprotokollierung im nachhinein für mein Problem 1 bringen :?:
Enginge... hmm, wollte das eigentlich gerne (wenns auch umständlicher wird) komplett so wie es momentan ist beibehalten und komplett auf eine Eninge verzichten.
Grüße
Marc
Delete - Fr 02.10.09 19:13
| Zitat: |
Was würde eine Versionprotokollierung im nachhinein für mein Problem 1 bringen :?:
|
Gar nichts , aber eine Versionprotokollierung kannst du immernoch anfangen. ;)
| Zitat: |
Enginge... hmm, wollte das eigentlich gerne (wenns auch umständlicher wird) komplett so wie es momentan ist beibehalten und komplett auf eine Eninge verzichten.
|
Meiner Meinung nach sehr ungünstig.Man sollte schon eine der großen API's wie DirectX oder OpenGl nutzen.Die sind zwar eigentlich für 3D , aber 2D ist eigentlich auch kein Problem.
MfG
ConditionZero - Fr 02.10.09 20:13
j.klugmann hat folgendes geschrieben : |
Gar nichts , aber eine Versionprotokollierung kannst du immernoch anfangen. ;)
|
Gerade
Git [
http://git-scm.com/] heruntergeladen :)
j.klugmann hat folgendes geschrieben : |
| Meiner Meinung nach sehr ungünstig.Man sollte schon eine der großen API's wie DirectX oder OpenGl nutzen.Die sind zwar eigentlich für 3D , aber 2D ist eigentlich auch kein Problem. |
Ja, aber da gibts auch eine kleine aber wichtige Bedinung zur Benutzung von DirectX bzw. OpenGl... man muss das können :roll:
Bevors in Vergessenheit gerät:
Die 4 Probleme bestehen weiterhin allesamt :(
Grüße
Marc
FinnO - Fr 02.10.09 20:23
Dazu kannst du ja Andorra verwenden. Mit Andorra hast du im Grunde genommen keinen Kontakt mehr zu OpenGL bzw. DX, du musst nur die 5 Tutorials durchlesen und in einer Woche kannst du Andorra.
Problem 4,3,2 würden sich dann von selbst erledigen, da du alles nacheinander Zeichnest, andorra über ALphakanäle verfügt usw.
Problem sollte eigentlich auch kein großes Hindernis darstellen, wenn du erstmal deinen Status quo in Andorra programmiert hast.
ConditionZero - Fr 02.10.09 20:36
FinnO hat folgendes geschrieben : |
Dazu kannst du ja Andorra verwenden. Mit Andorra hast du im Grunde genommen keinen Kontakt mehr zu OpenGL bzw. DX, du musst nur die 5 Tutorials durchlesen und in einer Woche kannst du Andorra.
Problem 4,3,2 würden sich dann von selbst erledigen, da du alles nacheinander Zeichnest, andorra über ALphakanäle verfügt usw.
Problem sollte eigentlich auch kein großes Hindernis darstellen, wenn du erstmal deinen Status quo in Andorra programmiert hast. |
Ich werde mich mal die Tage in Andorra reinarbeiten. Danke für den Tipp schonmal :)
Aber dennoch wäre es mir lieber auf eine Engine zu verzichten (Ist mir nämlich alles total fremd, da ich bis jetzt auch immer ohne ausgekommen bin, auch bei etwas größeren Spiele, die aber nicht ansatzweiße so ein langes, riesiges Projekt wie dieses hier wird, waren)
Deshalb sehe ich Andorra momentan als (absolute) Notlösung.
Ergo -> Meine Fragen vom Startpost stehen immer, mit der bitte eine Lösung ohne Engine, fremde Units usw. zu verwenden (Ausnahme: GifImage, weil ich die schon verwende, da ich da in einem Spiel wohl kaum herumkommen würde...)
Grüße
Marc
// Edit: Ganz am Rande: Werde doch nicht Git benutzen, das ist mir bisschen zu umständlich alles, habe mir da selber was geschrieben für die Sicherungen.
Und nochmal folgt der Aufruf, dass alle 4 Probleme bisher ungelöst sind... :?
ConditionZero - So 04.10.09 18:57
Also habe die letzten Tage ein paar Tutorials von Andorra 2D rumgespaukt.
Werde auf jedenfall die Enginge für das Spiel benutzen, hätte davor nicht gedacht, dass sich das so sehr lohnt, ein bisschen zu lernen. Denn die Vorteile, die man durch Andorra 2D hat sich wirklich ernorm.
Deshalb - auch wenn die Frage direkt nicht beantwortet wurde - werde ich diesen Threat als beantwortet markieren.
Vielleicht kommen in ein paar Tagen ja wieder diese Probleme, dann nur mit Andorra :roll:
Grüße
Marc
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!