SuperText(... = 16 Parameter)

Übersicht BlitzBasic Codearchiv

Neue Antwort erstellen

 

Kekskiller

Betreff: SuperText(... = 16 Parameter)

BeitragMo, Sep 06, 2004 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Hab mal für so ein paar kleine Text-Darstellungen eine Funktion
gebastelt, welche ich SuperText taufe. Man kann einen Rahmen um
die Schrift ziehen (mit Breite) einen transparenten Hintergrund, mit
Dicke, alles mit Farben versehbar...
Ach egal, sehr euch das mal an:

BlitzBasic: [AUSKLAPPEN]
;SuperText-Function
;Written by Kekskiller

Graphics 640,480,16,1
SetBuffer BackBuffer()
SeedRnd 1
ClsColor 255,255,255

Global rectx[10],recty[10],rectw[10],recth[10],rectr[10],rectg[10],rectb[10]
For z=1 To 10
rectx[z]=Int(Rnd(60,GraphicsWidth()-60))
recty[z]=Int(Rnd(60,GraphicsHeight()-60))
rectw[z]=Int(Rnd(10,50)):recth[z]=Int(Rnd(10,50))
rectr[z]=Int(Rnd(50,180))
rectg[z]=Int(Rnd(50,180))
rectb[z]=Int(Rnd(50,180))
Next

Repeat
Cls
mx=MouseX()
my=MouseY()
For z=1 To 10
Color rectr[z],rectg[z],rectb[z]
Rect rectx[z],recty[z],rectw[z],recth[z],1
Next
SuperText(10,5,"Engine-Test",255,255,255,0,0,0,$555555,0,0,1,1,6,3)
SuperText(10,25,"This is a simple Sample.",215,215,255,0,0,0,$555599,0,0,1,1,6,3)
SuperText(10,45,"Use mouse to move the colored Panel.",215,255,215,0,0,0,$559955,0,0,1,1,6,3)
SuperText(mx,my,"Mousex: "+mx+" Mousey: "+my,255,255,255,0,0,0,$555555,0,0,1,1,6,3)
Flip
Until KeyHit(1)
End

Function SuperText(x,y,msg$,froR,froG,froB,fraR,fraG,fraB,shadowcolor,centerx=0,centery=0,framewidth=0,shadow=0,shadowfw=3,shadowfh=3)
If shadow=1 Then
buf=GraphicsBuffer()
gfxw=GraphicsWidth()-1
gfxh=GraphicsHeight()-1
msgw=StringWidth(msg$)+shadowfw*2
msgh=StringHeight(msg$)+shadowfh*2
If centerx=1 Then xminus=-msgw/2 Else xminus=-shadowfw
If centery=1 Then yminus=-msgh/2 Else yminus=-shadowfh
LockBuffer
For zx=1 To msgw
For zy=1 To msgh
px=(x+xminus)+zx:py=(y+yminus)+zy
If px>=0 And py>=0 And px<=gfxw And py<=gfxh Then
rgbbefore=ReadPixelFast(px,py,buf)
rgbfinish=((rgbbefore And $FEFEFE)+(shadowcolor And $FEFEFE))/2
WritePixelFast px,py,rgbfinish,buf
EndIf
Next
Next
UnlockBuffer
EndIf
If framewidth>0 Then
For zx=-framewidth To framewidth
For zy=-framewidth To framewidth
Color fraR,fraG,fraB
If framewidth<>0 Then Text x+zx,y+zy,msg$,centerx,centery
Next
Next
EndIf
Color froR,froG,froB
Text x,y,msg$,centerx,centery
End Function


War nur zu faul, noch eine Zeilenbruch-Übersetzung zu schreiben ^_^ .
  • Zuletzt bearbeitet von Kekskiller am Mo, Sep 06, 2004 22:12, insgesamt einmal bearbeitet
 

Timo

Betreff: Re: SuperText(... = 16 Parameter)

BeitragMo, Sep 06, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
DerBlödeBB-Debugger hat Folgendes geschrieben:
Memory access violation


beim ersten ReadpixelFast sind die Koordinaten Px und PY negativ und erzeugen somit nen Fehler... warum sie negativ sind, keine Ahnung... Wink
Konnte es leider nicht ausprobieren, hört sich aber gut an!! Smile
  • Zuletzt bearbeitet von Timo am Di, Sep 07, 2004 15:15, insgesamt einmal bearbeitet
 

Kekskiller

BeitragMo, Sep 06, 2004 22:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ach, Mist. So, jetzt aber Wink !
 

Kekskiller

BeitragDi, Sep 07, 2004 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Na komm schon, jetzt ist doch schon längst editiert Confused !

Bigmichi

BeitragDi, Sep 07, 2004 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
wow Very Happy vorallem das transparent is gut =) aber mir komtm das sehr langsam vor oder irre ich mich da ?
 

Timo

BeitragDi, Sep 07, 2004 19:23
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja jetzt geht's Smile sieht echt gut aus!!

Neue Antwort erstellen


Übersicht BlitzBasic Codearchiv

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group