Text wird versetzt angezeigt

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

jonnyboy

Betreff: Text wird versetzt angezeigt

BeitragSa, Apr 05, 2008 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Halo Blitzer.
Ich habe ein großes Problem... ich habe ein kleines Spiel geproggt, Das schon so gut wie fertig ist. Aber beim Menü möchte ich nun Text anzeigen, Der wird aber irgendwie versetzt angezeigt. Das heißt, das wenn ich als x-Koordinate 0 eingebe, fängt der Text nicht genau bei 0 an, sondern davort, sodass man die Hälfte nicht lesen kann.

Code: [AUSKLAPPEN]

arialfontmenu = LoadFont ("Arial", 14, False, False, False)

Repeat
Cls
Delay 30
DrawImage folie, 0, 1
SetFont arialfontmenu
Color 0,0,0
Text 0, 405, "Drücke (F1) um das Spiel zu beginnen", True, False
Text 0, 420, "Drücke (ESC) um das Spiel zu beenden", True, False
Flip
Until KeyHit(1)
End


Ich könnte das zwar ignorieren, weil ich ja dann einfach 100 oder so eingeben könnte, sodass das richtig angezeigt wird. Aber ich wollte nur mal fragen, ob jemand das schonmal hatte, weils schon etwas nervig ist. Smile


Danke im vorraus, Jonas

ProfJake

ehemals "DTC" / "Fabian Niemann"

BeitragSa, Apr 05, 2008 21:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Schreib doch einfach
Code: [AUSKLAPPEN]
Text 0, 405, "Drücke (F1) um das Spiel zu beginnen"
Text 0, 420, "Drücke (ESC) um das Spiel zu beenden"

dann klappt's..

BTW machst du da komische Sachen.
Warum setzt du den Font und die Farbe in jeder Schleife?
Und warum baust du das Delay ein, bevor der ganze Kram gezeichnet wird?
Warum baust du überhaupt ein Delay ein?

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSa, Apr 05, 2008 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
@jonnyboy, die letzten beiden Parameter bei ql:Text sind eben die, dass der Text zentriert dargestellt wird. Gibtst du nun X = 0 an, so ist bei X = 0 die Mitte des Textes, da du den vierten Parameter auf ql:True gesetzt hast (Standard ist False).

@pupil, Sowohl ql:SetFont als auch ql:Color müssen nicht unbedingt in die Schleife. Doch ein ql:Delay bei einer so simplen Tastaturabfrage, wo sonst nichts passiert kann Delay schon sinnvoll sein um den Prozessor zu entlassten.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

jonnyboy

BeitragSo, Apr 06, 2008 1:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, erstmalvielen Dank für die Antworten.

also, das mit dem Setfont und Colour hab ich einfach so in die Schleife gebaut,weil ich verschiedene Textarten benutze und so den Setfont wechseln muss.. außerdem ists ja net so nen Arbeitsaufwand habe ich gedacht...

Das mit dem Delay habe ich eingebaut, einmal wegen Prozessorleistung, einmal weil bei bestimmten Schleifen halt nicht dauernd abgefragt werden soll,sondern miteinem delay, weil das spiel sonst zu schnell wird, und der benutzer das nichtmehr checkt..

So, und das mit dem Text-befehl: Vielen Dankfür den Hinweiß, ich wusste nicht, das das dann als Textmitte deklariert wird, danke für den Hinweiß Wink Das steht leider auchnicht in der Onlinehilfe... Wink

Also nochmal danke, ihr habt mir sehr geholfen.

mfg, Jonny

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Apr 06, 2008 2:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Installier dir die deutsche Onlinehilfe auf dein System. Dann hast du alles schön deutsch und zudem auch gut erklärt. Finden tust du das hier http://www.blitzbase.de/2b.htm

Für dein Delay -Problem schaue dir mal ql:CreateTimer in Verbindung mit ''Flip 0''

Das ist so in etwa die beste Lösung, um den Rechner zu drosseln. Ein ''Flip 1'' zieht immer so um 100% Systemleistung weg, obwohl garnichts berechnet wird.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

jonnyboy

BeitragSo, Apr 06, 2008 15:54
Antworten mit Zitat
Benutzer-Profile anzeigen
@hectic:
Ja, ich habe schon längst die Online-Hilfe installiert.
Aber in meiner steht zumindest nicht, was die drei oder zwei trues, bzw.falses am ende heißen sollen...
D.h., ich wusste nicht, was das bedeutet und habe es mit reingeschrieben, weil ichs nicht besser wusste.

Danke für die Aufklärung Wink

mfg, Jonny

The_Nici

BeitragSo, Apr 06, 2008 15:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ZentrX = Wert 1 zentriert den Text horizontal
ZentrY = Wert 1 zentriert den Text vertikal

Wird sogar sehr gut erklährt. Tipp: Zweimal durchlesen. Wink

jonnyboy

BeitragSo, Apr 06, 2008 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
oh ja, stimmt... Ein großes Entschuldigung, das habe ich tatsächlich übersehen...
Naja, da habe ich wirklich nicht so drauf geachtet, aber ich denke, man hätte da bei den parametern ja noch in Klammern hinzuschreiben können (true oder false), dann kann sich auch ein Noob etwas drunter vorstellen. Wink

Außerdem kann man die letzten beiden Sachen, so wie ich das verstanden habe, ja weglassen können, wieso wurde das in der onlinehilfe nicht gemacht? Also ich fand das sowieso schon etwas verwirrend...

Naja, sorry, ich wollt net meckern^^

Jetzt habe ich es verstanden, vielen Dank Smile

mfg

jonnyboy

BeitragSo, Apr 06, 2008 20:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Noch eine kleine Frage: Wenn ich also die letzten beiden Parameter für die horizontale bzw. vertikale weglasse, wird der Text dann linksbündig gemacht? bzw. kann man das auch umstellen? Weil gerade bei Punkteanzeigen ist es doch manchmal nötig, das das 0 halt ganz rechts ist, und dann aber bei 10nern und 100tern das ganze nach links verstellt wird, versteht ihr?

Gibt es dazu eine Methode?

The Shark

BeitragSo, Apr 06, 2008 20:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Selbst mit stringwidth programmieren, vorgefertigt gibts das nicht

THE SHARK

edit:
so zB

Code: [AUSKLAPPEN]

Function txt_r (x,y,txt$)
   breite=StringWidth(txt$)
   x=x-breite
   Text x,y,txt$
End Function

txt_r 200,200,"Blah"
txt_r 200,220,"Blah2"
WaitKey()
  • Zuletzt bearbeitet von The Shark am So, Apr 06, 2008 20:30, insgesamt 2-mal bearbeitet

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Apr 06, 2008 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Rset () wäre das Stichwort, aber das alleine reicht nicht,
da brauchst du eine eigene Function
Die Function müßte dir die Zahl in einen String zurück geben mit den 2 Nachkommastellen
und dann...
.. hier mal ein Beispiel mit Integer
Code: [AUSKLAPPEN]
For t = 0 To 10
  Text  10,10+t*15,RSet( Rand (1,100000),10)
Next

WaitKey
[BB2D | BB3D | BB+]

jonnyboy

BeitragSo, Apr 06, 2008 20:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, danke auch für diese Antwort =)

Also die Version von Shark verstehe ich, danke, das kann man gebrauchen Wink
Aber die Version von Rallimen ist mir noch nicht ganz klar... wenn du etwas Zeit hättest, könntest du mir deinen Code kurz erklären, ist aber nicht notwendig, ich meine nur aus verständnissgründen.
Das von Shark würde mir auchschon reichen, danke an beide =)

Greez, Jonny

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Apr 06, 2008 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Nur so am Rande. In der deutschen Onlinehilfe wie auch in allen anderen Programmierhilfen die ich bisher in meine Fingern hatte, bestimmen durch eckige Klammern, dass es sich um optionale Parameter handelt. So ist die Angabe TEXT X, Y, String$ [,ZentrX] [,ZentrY] bereits eindeutig, da die eckigen Klammern zeigen, dass man die Parameter auch weg lassen kann wenn man sowieso die Standardvorgaben nutzt. Wink
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

jonnyboy

BeitragSo, Apr 06, 2008 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Tja, das mag vielleicht so sein

hectic

Sieger des IS Talentwettbewerb 2006

BeitragSo, Apr 06, 2008 23:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Sorry, aber jonnyboy hat Folgendes geschrieben:
Außerdem kann man die letzten beiden Sachen, so wie ich das verstanden habe, ja weglassen können, wieso wurde das in der onlinehilfe nicht gemacht? Also ich fand das sowieso schon etwas verwirrend...


Ist ja wohl mehr als eindeutig, dass du es anscheinend nicht ganz verstanden hast, wie die Onlinehilfe bzw. überhaupt Hilfen aufgebaut sind. Von daher ist deine Aussage unpassend. Ich würde zumindest versuchen höflich zu bleiben, vor allem bei Leuten die dir helfen sollen.
Download der Draw3D2 V.1.1 für schnelle Echtzeiteffekte über Blitz3D

jonnyboy

BeitragMo, Apr 07, 2008 14:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Hm.. vielleciht habe ich mich da auch was unklar ausgedrückt, das sollte keine Kritik an euch sein! Ich wollte nur meine Meinung dazu sagen, wie man die Onlinehoilfe noch hilfreicher machen würde. Denn auch anfänger sollen sie verstehen, oder? Und zu diesen Anfäöngern zähle ich mich auch...

Ich finds einfach nicht unbedingt so eindeutig, das alles, was in [] steht, weggelassen werden darf... Ich mein es gibt doch auch Blitzarrays, die in [] stehen.. das heißt doch nicht direkt, das das optional ist, finde ich.

Wie auch immer, es sollte nhicht unhöflich klingen also sorry.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group