Erst mal keine Ahnung wo ich das hier reinstellen soll, also muss sonstiges erst mal reichen....
Ich möchte ein rein textbasiertes rpg erstellen, arbeite aber noch nicht lange mit oop ... hat jemand vielleicht schon einmal etwas in der art gemacht ?
also ich habe mir das wie folgt vorgestellt
--> Klasse tplayer -> natürlich der Spieler mit eigenschaften
- leben
- gold
- usw., alles was ein rollenspieler halt so braucht
sowie koordinaten
U (Aufenthalststadt)
V und W ( jeweiliger sektor in der Stadt, z.bsp stadt von 3*3 stadt mit hafen [1,1] , markt...),
X ( spezieller standort im stadtteil, zum beispiel marktstand 1,2,3)
Y und Z evtl. für noch weitere detailansichten von orten.
--> Klasse tsurface
--> verwaltet die labels zur textausgabe
--> das gui besteht aus einem großen label zur textausgabe und 4 kleinen labeln zur auswahl der nächsten aktion, sowie mehrerern labeln zur ausgabe der spielereigenschaften
-->methode !aendereauswahl(var tplayer) --> passt bei Tastatureingabe von Pfeil Hoch oder Runter die aktuelle Auswahl an und ändert die eigene Eigenschaft y (es gibt 4 senkrecht untereinander angeordnete labels, y ist die Nummer des aktuell ausgewählten labels, und das ausgewählte erhält eine andere Farbe als die anderen 3)
--> klasse tplace --> allgemeine klasse mit den proceduren
- !aktualisiere surface (var tsurface); -> gibt den jeweiligen text des platzes über das Surface in die Labels aus aus
- !eingabehatstattgefunden (var tplayer; var tsurface); virtual; abstract;
- einigen variablen für den zustand des Ortes (z.b. kann der selbe ort in unterschiedlichen zeiträumen des spiels unterschiedl. möglichkeiten bieten)
--> variable status1, status2: integer;
von tplace werden dann unterschiedliche klassen, z.bsp. t111100
--> das heißt stadt 1, sektor[1,1] und stadtteilabschnitt 1 (z.bsp konkret stadt fanguch am hafen am fischerstand)
jetzt zur Funktionsweise der Methode eingabehatstattgefunden
in der main unit wird dann ein tplace-array erstellt: orte: array[0..5,0..3,0..3,0..3,0..2,0..2), d.h. es gibt 6 städte, die maximal 4*4 felder groß sein können, jedes feld hat maximal 4 unterschiedliche teilorte....
--> dann werden den arrayfeldern die von tplace abgeleitteten klassen zugewiesen, z.bsp:
orte[1,2,3,2,0,0]:= t123200.create;
sobald in der main unit der spieler die hoch oder runter taste bewegt wird die methode !aendereauswahl des tsurfaces aufgerufen -> die änderung wird visualisiert
sobald ein spieler die entertaste betätigt (also seine auswahl bestätigt) wird !eingabehatstattgefunden des jeweiligen ortes aufgerufen, d.h.:
orte[player.u, player.v, player.w, player.x, player.y, player.z].eingabehatstattgefunden( var tplayer, var tsurface, var tquest);
--> der Ort fragt den y Wert des surfaces ab (welche antwort wurde ausgewählt) und seinen eigenen Status und stellt dementsprechend einen neuen Storytext und 4 neue Antworten zur Verfügung, die dann vom surface visualisiert werden...
als letztes existiert noch die klasse tquest, in welcher der zustand von stadtteilenüberggreifenden quests gespeichert wird...., d.h. wenn man an am hafen mit person a gesprochen hat, ist man in der lage den geheimgang in sektor c zu nutzen.... (dies wird in variablen gespeichert, und diese werden bei der methode eingabehattstattgefunden auch abgefragt)
Gut, so weit so gut...
ich denke dies umzusetzenn ist halbwegs möglich (hoffe ich), dies sollte jedoch nur der Storymode sein....
dazu kommt:
der battlemode -> dazu werden vermutlich weitere klassen wie tenemy1,2...., tbattle.... benötigt
der menümode -> speichern und laden des spielstandes
der chareditmode -> hier kann man seine levelup punkte vergeben....
gut,gut,gut, ihr seht also das ist eine menge arbeit....
was ich jetzt von euch möchte:
--> wenn jemand etwas derartiges schon gemacht hat: wo wird es probleme geben in der umsetzung (bei solchen projekten ist im vorhinein alles überdenken enorm wichtig)
--> umesetzungsmöglichkeiten vom battlemode (soll rundenbasiert ablaufen weil einfacher), menümode, chareditmode
--> einfach alle ideen die ihr habt, z.bsp wie könnte man ein inventar realisieren oder irendetwas
--> meinetwegen auch storyideen, nur so viel: die HP heißt Fate, ist zu Spielbeginn 12 Jahre alt und wohnt in einem kleinen Dorf bei seinen Eltern, und wird über einen größeren Zeitraum betrchtet (zieht natürlich später in die Welt hinaus um schaurige Schurken zu zerschroten.....)
--> alle möglichen probleme die auftachen könnten.....
--> wenn jemand mitarbeiten möchte.... alright, war eigentlich alleine gedacht, aber wenn jemand just hat.... es ist halt rein textbasiert und wird eigentlich nur mit einfachen Delphiobjekten und OOP umgesetzt, wichtig ist eine interassent story und schöne entwicklungsmöglichkeiten des chars....
GUT
Also, ich schau mal wieder rein
Verzeiht meine umfangreichen Rechtschreibfehler
CYA
Thx in Advance
Und einen schönen Herrentag euch allen!
Pansenen