text quer schreiben?
text quer schreiben?
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
- vonTurnundTaxis
- Beiträge: 2130
- Registriert: 06.10.2004 20:38
- Wohnort: Bayreuth
- Kontaktdaten:
Villeicht hilft dir das weiter: http://www.purebasic.fr/german/viewtopi ... t+rotieren
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.
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.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
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).

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)
Zuletzt geändert von AND51 am 04.01.2007 22:40, insgesamt 1-mal geändert.
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End
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
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

Zuletzt geändert von a14xerus am 04.01.2007 22:42, insgesamt 1-mal geändert.
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
@ 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? ^^)
> bin neu bei pure basic und auch in diesem forum
Willkommen im Forum! (Wieso hat das bisher noch keiner gesagt? ^^)
PB 4.30
Code: Alles auswählen
Macro Happy
;-)
EndMacro
Happy End