text quer schreiben?

Anfängerfragen zum Programmieren mit PureBasic.
haggi
Beiträge: 77
Registriert: 04.01.2007 21:54

text quer schreiben?

Beitrag 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
Benutzeravatar
vonTurnundTaxis
Beiträge: 2130
Registriert: 06.10.2004 20:38
Wohnort: Bayreuth
Kontaktdaten:

Beitrag von vonTurnundTaxis »

Zeig doch mal, was du schon versucht hast.
Im Prinzip musst du doch nur unter/übereinander setzen.
Nicht durch Zorn, sondern durch Lachen tötet man
ClipGrab | Pastor - jetzt mit kurzen URLs!
Benutzeravatar
Vallan
Beiträge: 223
Registriert: 20.01.2006 19:34
Kontaktdaten:

Beitrag von Vallan »

Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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.
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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)
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
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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 :lol:
Zuletzt geändert von a14xerus am 04.01.2007 22:42, insgesamt 1-mal geändert.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag von AND51 »

Habe ich gemacht, siehe mein Edit!
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag 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?
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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? ^^)
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

AND51 hat geschrieben:(Wieso hat das bisher noch keiner gesagt? ^^)
wir haben auf Dich gewartet ;-)

Grüße ... Kiffi
a²+b²=mc²
Antworten