Kommt auf die Länge des Textes an. Mit dem 2k3 könnte man immerhin ... öhm ... evtl 39 Buchstaben darstellen. Mit dem 2k nur 19, was etwas wenig ist.
"Ich habe einen Laden der Tante Emma heißt", sind immerhin schon 34 Buchstaben und 37 Zeichen. Möglich ist es schon, ich hab mich mal an sowas ähnlichem probiert. Das ist leider nie sehr weit gekommen weil ich den Screenshot-Patch nutzen musste (18 Zeichen waren mir zu wenig :S) und es dementsprechend extrem langsam wurde... Wenn dir aber 18 bzw. 38 Zeichen reichen (2 Pictures fallen weg, 1 für das Menü selbst und 1 für den Anzeige strich, der einem sagt wo im Text man gerade ist ) sollte das gehen. Es ist allerdings eine üble Fummelei mit den Buchstaben Pictures, deren Koordinaten und den Abständen zwischen den Buchstaben.
Im Grunde müsste ein solcher Code so aussehen:
Als erstes kann man rechts in dem Menü eingeben was der Held sagen soll. Dazu brauchst du eine vorgegebene Textarea. Im Fall des Makers machen wir das einfach mit 4 Variablen fest (X-Min, X-Max, Y-Min und Y-Max). Dann brauchst du für jedes Zeichen ein Picture und am besten eine kleine Datenbank die dir die breite der einzelnen Zeichen ausgibt (macht es einfacher). Sobald der Spieler nun die Textarea benutzen will wird der Tastenpatch aktiviert der eine Eingabe abwartet. Sobald etwas gedrückt wird rechnet man die Eingabe zum entsprechenden Buchstaben um und lässt diesen auf den aktuellen Koordinaten anzeigen. Danach addiert man zur "Aktuelle Koordinate X" den Wert der breite des Buchstaben + den Abstand den die Buchstaben haben sollen (z.B. 2 Pixel). Sollte nun die neue X-Koordinate über der "X-Max" Koordinate der Textarea liegen muss in die nächste Zeile gesprungen werden. Also z.B. "Aktuelle Koordinate X" = "X-Min" und "Aktuelle Koordinate Y" + 8.
Wenn die Textarea dann auch in Y-Richtung zu klein sein sollte müsste man da auch noch eine Abfrage einbaun, aber das lasse ich jetzt erstmal weg, da es mit 18, bzw. 38 Zeichen eher unwahrscheinlich ist das man mehr als die ganze rechte Bildschirmhälfte braucht...
So, nun hast du die Anzeige fertig. Natürlich muss man auch jeden Buchstaben in einer Variable einspeichern. Das geht wohl am besten über Variablennummern. Also:
Joa, der Aufbau sollte eigentlich bekannt sein ^^.
Am Ende hat man also eine Reihe von ca 45 Variablen (7 Leerzeichen), falls der Spieler alle Zeichen ausnutzen will. Nun kommt es zur Anzeige. Damit das auch alles schön aussieht würde ich mindestens 3 verschiedene Sprechblasen in unterschiedlichen Größen empfehlen. Eine für 1 Zeichen, eine für 10 und eine für 38, z.B..
Dabei musst du natürlich wieder auf die Koordinaten achten. Wenn der Held ganz oben links in der Ecke steht hat er natürlich nicht die üblichen Koordinaten wie wenn er in der Mitte des Bildschirms steht...
Also musst du diese auch berücksichtigen. Hast du diese nun berechnest du daraus eigentlich wieder eine neue Textarea, nur diesmal mit den Werten der Sprechblase. Z.B:
So könnte evtl die Berechnung der neuen Koordinaten aussehen. Jetzt kommt wieder das gleiche wie bei der Eingabe durch den Spieler, nur das diesmal der Computer die Eingaben vornimmt, basierend auf den eingelesenen IDs.
Also:
Dabei darf man natürlich wieder nicht die Abfrage vergessen, welche kontrolliert ob man über den Rand der Textbox hinausschreibt (Textarea Kontrolle)...
Ein großes Problemfeld dabei ist, wesshalb man den Herstellern des Makers auch nochmal saftig in den Allerwertesten treten sollte, dass man den Pictures keine ID über eine Variable zuweisen kann. Dies hat zur Folge das du bei der Eingabe wie Anzeige für alle 38 Pictures alle 26 Abfragen (+/- die Sonderzeichen) für jeden Buchstaben in unserem Alphabet machen musst. Das sind immerhin 1064 Fork Conditions, die absolut unnötig wären, wenn man Picture IDs über Variablen vergeben könnte T_T.
Aber egal, ist nicht zu ändern.
Du solltest dir aber auf jeden Fall im klaren darüber sein das es keinen Sinn für dich hat, dich an dieses Feature zu wagen, wenn du:
a) den oben beispielhaft dargestellten Code nicht verstehst
b) keine Lust hast dich durch wahrlich mehr als 1000 Forks zu quälen oder du eine gute Beziehung zu den Herstellern des Makers hast (oder den XP besitzt ^^)
Wie bereits gesagt, dies ist ein sehr seeehr grober Aufriss von dem was man brauchen würde um dieses Feature zu skripten, und es ist bei weitem keins der einfachen... Wenn du meinst das es die Arbeit wert ist ca 2500 Forks zu erstellen kannst du es gerne machen, jedoch solltest du zumindest über die grundlegenden Fertigkeiten mit dem Maker verfügen, sonst führt das schnell zu seinem Ende.
mfg
Phönix Tear
P.S:
Eventuelle Fehler, Ungereimtheiten, Aggressivitäten oder Sonstiges bitte überlesen. Es ist schon spät ^^°
Edit:
Ich habs oben schon angedeutet. Mit dem XP wäre die Sache natürlich eine völlig andere, wobei ich dazu nichts sagen kann, da ich ihn nie benutzt habe. Ich weiß nur das es da besser funktionieren würde
Edit:
@Caine Luveno:
Ops, ich dachte der 2k3 könnte nur 40 Anzeigen ^^°. Nya, hab ihn bis jetzt auch nur ein mal für 5 Minuten benutzt und bin dann freudig wieder zum 2k umgewechselt :P
--
Zu Java und C++ übergelaufen...
Geändert von Phönix Tear (27.12.2006 um 22:09 Uhr)