Seite 1 von 2
text quer schreiben?
Verfasst: 04.01.2007 21:58
von haggi
hallo leute, bin neu bei pure basic und auch in diesem forum, ich möchte gerne wissen, wie oder ob es möglich ist texte quer u schreiben also z.b. von oben nach unten oder unten nach oben, ich benötige dies für ein sprite, lieder sind meine bisherigen versuche gescheitert ich hoffe ihr könnt mir helfen! danke schon im vorraus haggi
Verfasst: 04.01.2007 22:02
von vonTurnundTaxis
Zeig doch mal, was du schon versucht hast.
Im Prinzip musst du doch nur unter/übereinander setzen.
Verfasst: 04.01.2007 22:05
von Vallan
Verfasst: 04.01.2007 22:18
von AND51
Um einen Text
v
e
r
t
i
k
a
l
zu schreiben, müsste es doch eigentlich reichen, zwischen jedem Buchstaben einen Zeilenumbruch einzufügen, oder? Wenn du das nicht automatscih machen willst, kannst du dir doch auch eine eigene Procedure erstellen, die das für dich macht.
Verfasst: 04.01.2007 22:30
von AND51
Habs ausprobiert,
DrawText() unterstützt
kein Zeilenumbruch.
So, hier habe ich dir eine Procedure gebastelt, die einen gewünschten Text vertikal darstellt.
Sie funktioniert exakt so, wie die normale DrawText() Funktion. Das heißt, die Parameter 'FrontColor' und 'BackColor' sind auch optional.
Hinweis: Die normale
DrawText() Funktion gibt einen x-Wert zurück, sieh dir das bitte mal in der Hilfe an! Meine Prozedur gibt dagegen den y-Wert zurück, damit du weiterschreiben kannst (z. B. in einer anderen Farbe).
Code: Alles auswählen
Procedure myDrawText(x, y, text$, FrontColor=-1, BackColor=-1)
Protected n
For n=0 To Len(text$)-1
If FrontColor >= 0 And BackColor >= 0
DrawText(x, y, PeekS(@text$+n, 1), FrontColor, BackColor)
ElseIf FrontColor >= 0 And BackColor = -1
DrawText(x, y, PeekS(@text$+n, 1), FrontColor)
Else
DrawText(x, y, PeekS(@text$+n, 1))
EndIf
y+TextHeight(text$)
Next
ProcedureReturn y
EndProcedure
InitSprite()
OpenScreen(800, 600, 32, "Vertikaler Text by AND51")
Repeat
StartDrawing(ScreenOutput())
myDrawText(50, 50, "Vertikal, mein Freund!", #Yellow, #Black)
StopDrawing()
FlipBuffers()
Delay(100)
Until GetAsyncKeyState_(#VK_ESCAPE)
Verfasst: 04.01.2007 22:34
von a14xerus
dann kann man sich vielleicht eine proceduer schreiben, die in einer for schleife je den nächsten buchstaben jeweils 20 pixel tiefer schreibt
also mehreredrawtext aufrufe.
(20 pixel war nur bsp, is natürlich bei jeder schriftart anders)
oder jemand kennt eine (api) funktion für sowas.
aber ich glaube die meisten
drehen den text
//edit, was du natürlich auch gemacht hast, aber
nachdem ich das hier geschrieben habe

Verfasst: 04.01.2007 22:40
von AND51
Habe ich gemacht, siehe mein Edit!
Verfasst: 04.01.2007 23:39
von Kaeru Gaman
die frage ist außerdem noch, ob er die buchstaben dabei stehend oder liegend haben möchte...
aber:
> ich benötige dies für ein sprite
das würde ich eventuell vorab komplett manuell designen... oder?
Verfasst: 05.01.2007 00:33
von AND51
@ haggi, bitte gib mal ein wenig Feedback.
> bin neu bei pure basic und auch in diesem forum
Willkommen im Forum! (Wieso hat das bisher noch keiner gesagt? ^^)
Verfasst: 05.01.2007 00:35
von Kiffi
AND51 hat geschrieben:(Wieso hat das bisher noch keiner gesagt? ^^)
wir haben auf Dich gewartet
Grüße ... Kiffi