Text zentrieren -> ohne string???

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

Mr Hopp

Betreff: Text zentrieren -> ohne string???

BeitragMo, Apr 17, 2006 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!

Hat jemand eine Ahnung, wie man ein Wort, dass aus einzelnen Buchstaben besteht (hört sich blöd an, ich weiß Laughing ) zentrieren, d.h. nicht als WORT sondern als einzelne Buchstabe behandeln Question

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Apr 17, 2006 21:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Ähm, weiß nicht genau was du meinst aber vielleicht hilft das hier:

Text 400,300,"Testinhalt",1,1

edit1: Oder willst du das alle Buchstaben den gleichen Abstand zueinander haben? Dann kannst du Courier als Schriftart laden oder in einer For-Schleife jeden Buchstaben einzelnd setzen. Das würde ich dann mit Mid$ machen...
  • Zuletzt bearbeitet von hectic am Mo, Apr 17, 2006 21:13, insgesamt einmal bearbeitet
 

Mr Hopp

BeitragMo, Apr 17, 2006 21:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja nee, das wusste ich ja Very Happy Aber ich wollte einen oder mehrere Buchstaben farblich hervorheben, und das geht ja nicht, wenn sie alle in einem String sind, also muss ich jeden Buchstaben in einen String stecken Confused

Edit: Sorry, hab dein EDIT nicht gesehen^^

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Apr 17, 2006 21:16
Antworten mit Zitat
Benutzer-Profile anzeigen
ok, da warst du wohl ein bisschen zu schnell für mich und eine Antwort gegeben, bevor ich mein 'edit1' machen konnte. Lies den Text als String Zeichen für Zeichen ein zB:

Code: [AUSKLAPPEN]
string$="Das ist der Text"

For x=1 to len(string)
  color rand(255),rand(255),rand(255)
  text x*8,100,mid$(string,x,1)
Next
 

Mr Hopp

BeitragMo, Apr 17, 2006 21:21
Antworten mit Zitat
Benutzer-Profile anzeigen
achso, das geht^^ danke Smile

Edit: Ne, mom.....doch nicht Laughing Ich hab ja das Problem mit dem zentrieren.......wie kann ich einzelne Buchstaben alle als EIN WORT zentrieren Confused
 

Dreamora

BeitragMo, Apr 17, 2006 22:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimmst den originalstring und errechnest dafür die koordinaten und die einzelnen Positionen der Buchstaben (indem du die textlänge des Teiles vor dem gesuchten Buchstaben bestimmst). Dann das ganze zeichnen Smile

Hoffe die erklärung macht irgendwie sinn ... Very Happy
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

Mr Hopp

BeitragDi, Apr 18, 2006 11:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja gut, aber wenn ich jetzt Code: [AUSKLAPPEN]
Text 200,150,wort$,1,1
mache, wie erfahre ich dann, an welchen Koordinaten der erste Buchstabe steht???

Ich weiß, das Thema lässt sich SEHR schwer in Worte fassen Laughing

5k41

BeitragDi, Apr 18, 2006 11:53
Antworten mit Zitat
Benutzer-Profile anzeigen
der erste buchstabe hat: die koordianten 200,150,der 2. 200+stringwidth(ersterbuchstabe),150,der 3. 200+stringwidth(ersterbuchstabe)+stringwidt(zweiterbuchstabe) usw.usw!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Mr Hopp

BeitragDi, Apr 18, 2006 11:58
Antworten mit Zitat
Benutzer-Profile anzeigen
stringwight Idea ! Danke, der Begriff war mir fremd Mr. Green

Kryan

BeitragDi, Apr 18, 2006 12:09
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bin mir nicht sicher, aber das, was da raus kommt, wird nicht perfekt, weil
Code: [AUSKLAPPEN]
StringWidth("T")+StringWidth("i")

ergibt was anderes als
Code: [AUSKLAPPEN]
StringWidth("Ti")

bin mir aber nicht 100% sicher, ich überprüfe das mal

edit: ich hatte nicht recht:
Code: [AUSKLAPPEN]
Graphics 640,480
SetFont LoadFont("Arial",44)
Print StringWidth("T")+StringWidth("y")
Print StringWidth("Ty")
WaitKey
End
 

Mr Hopp

BeitragDi, Apr 18, 2006 21:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Das Problem ist extrem bei W, aber egal, ich hab ne sau lange Formel, um das zu berechnen^^
Die Formel zu posten, und zu erklären, wäre mir momentan zu viel Laughing

5k41

BeitragDi, Apr 18, 2006 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
mach trozdem! Ich bin der Meinung, das wenn man Hilfe erwartet auch eine gegenleistung erbringen sollte und die besteht in dem Fall zumindest darin, das Problem zu lösen, damit wir das Morgen nicht nochmal klären müssen!

P.S.: Wenn die Formel wirklich so lang ist können wir sie dir vielleicht sogar noch optimieren!

MfG
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image

Mattis_the_brain

BeitragMi, Apr 19, 2006 17:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Meiner Meinung nach gehört sowas ins Beginners-Corner...
 

Mr Hopp

BeitragMi, Apr 19, 2006 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Dafür, dass es deiner meinung nach eine Anfängerfrage ist, wurde aber lange gerätselt. ok, hier das ergebnis: Rolling Eyes

Zuerst wird die Startposition des Textes ermittelt:

Code: [AUSKLAPPEN]
start_pos = GraphicsWidth()/2-(gesammtlaenge+abstaende*(buchstaben_ges-1))/2

Wobei gesammtlaenge die Summe aller Buchstabenlängen in Pixeln ist, abstaende die gewünschten Abstände zwischen den Worten (rumexperimentieren) ist und buchstaben_ges die anzahl aller Buchstaben ist.

Dann wird der Text in einer For-Schleife ausgegeben:

Code: [AUSKLAPPEN]
Text start_pos+(laenge+abstaende)*i,y, buchstabe$

wobei man dies am besten in einem Type macht Wink laenge ist die Länge des aktuellen Buchstaben alleine,i ist der Schleifendurchlauf, welcher bei 0 startet, y sollte jeder wissen Smile und buchstabe ist, wie sich vermuten lässt, der Buchstabe selbst.

Ich habe ja gesagt, dass das etwas kompliziert werden könnte Laughing Naja, ich hoffe, ich habe mich gut verständlich ausgedrückt Confused

5k41

BeitragMi, Apr 19, 2006 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
wieso ziehst du einen buchstaben ab?
Projekte:
For a better World - Gesellschaftsspiel ( 100%)

User posted image
 

Mr Hopp

BeitragMi, Apr 19, 2006 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Uff, kA, ich glaube, dass hing iwi mit dem Index, der bei 0 und nicht bei 1 startet zusammen Laughing

Also ne, sorry, ich weiß jetzt echt nicht, warum Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group