Spezial Font-Routine für Blitz Basic 2D/3D

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Tratos

Betreff: Spezial Font-Routine für Blitz Basic 2D/3D

BeitragSo, Sep 25, 2005 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi,

Ich habe mich mal hingesetzt und was gecodet um auch in BlitzBasic mal die Möglichkeit zu haben die Text Hintergrund Farbe unabhänig vom Bildschirmhintergrund oder sonstigen Einflüssen verändern zu können.

Vielleicht kann es ja noch einer brauchen... Smile


BlitzBasic: [AUSKLAPPEN]


;Demo Programm umd die Möglichkeit zu zeigen wie man mit BlitzBasic Boardmitteln,
;den Text-Hintergrund umfärben kann ohne den Bildschirmhintergrund zu zerstören.
; -------------------------
; | (c) 2005 - Eisbaer |
; -------------------------


AppTitle \"Text-Demo... by Eisbaer\"

Global HEIGHT,WIDTH,BREITE,HOEHE,Posit_X,Posit_Y,InfoText$ ; Variablen definieren


InfoText$ = \"Middle of the Road\" ;Demo-Text für das Beispiel



Graphics 640,480,32,2 ;Grafik Modus festlegen. [1 Vollbild | 2 Festermodus]

BREITE=StringWidth(InfoText$) ; Breite des Textes ermitteln
HOEHE=StringHeight(InfoText$) ; Höhe des Textes ermitteln

HEIGHT = 640 ; Höhe [Auflösung]
WIDTH = 480 ; Breite [Auflösung]

Posit_X = (HEIGHT/2) - (BREITE/2) ; Startkordinaten text X
Posit_Y = ( WIDTH/2) - ( HOEHE/2) ; Startkordinaten text Y

frameTimer=CreateTimer(1)


;------------------------
; START
;------------------------


While Not KeyHit(1) ; Start Schleife 1

SetBuffer BackBuffer()

SeedRnd MilliSecs() ;Zufall System start

back_r=Rnd(0,255)
back_g=Rnd(0,255)
back_b=Rnd(0,255)

text_r=Rnd(0,255)
text_g=Rnd(0,255)
text_b=Rnd(0,255)

colo_r=Rnd(0,255)
colo_g=Rnd(0,255)
colo_b=Rnd(0,255)

ClsColor back_r,back_g,back_b ; Hintergrundfarbe setzen
Cls

Color colo_r,colo_g,colo_b ; Text Farbe setzen

LockBuffer BackBuffer()

rgb=text_r*65536+text_g*256+text_b

For X = Posit_X To (Posit_X + BREITE) ; Bereich des Färbens berechnen
For Y = Posit_Y To (Posit_Y + HOEHE) ; Bereich des Färbens berechnen

WritePixelFast X,Y,rgb

Next
Next

UnlockBuffer BackBuffer()

Text Posit_X,Posit_Y,InfoText$ ; Text ausrichten

Flip

WaitTimer (frameTimer) ; Zeit Timer (Geschwindigkeitsregelung)

Wend ;Ende Schleife 1

FreeTimer frameTimer




mfg Eisbaer... 8)
 

Apocalyptic

BeitragSo, Sep 25, 2005 20:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du deine Werke für so wichtig erachtest, dass sie unbedingt ins Codearchiv gehören, befolge am besten folgenden Rat: Programmier deine Routinen so, dass sie einfach in andere Codes implementiert werden können. In diesem Fall würde sich z.B. eine Funktion TextMitHintergrund(x,y,Nachricht,FarbeText,FarbeHintergrund,...) anbieten.

Und warum verwendest du Writepixelfast für deinen Hintergrund? Rect ist um ein Vielfaches schneller (insbesondere bei viel Text).
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group