AlphaFont

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

.Yukito.

Betreff: AlphaFont

BeitragMi, Mai 26, 2004 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
so. bei alphaGUI gabs sowas, nur würd ich es gerne ohne das drum rum benutzen... also einfach nen tool womit man mal ne gut aussehende font benutzen kann, die dann nich so an rechenpower zieht (sprite basierend, oder so...)

gibt es das irgendwo?

Markus2

BeitragDo, Mai 27, 2004 12:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe das mal mit nem Mesh gemacht und direkt in den
Texturebuffer geschrieben . Allerdings ist man so auf die Anzahl der
Buchstaben begrenzt . Der Text waren Punkte die der Spieler erhält
wenn er was einsammelt und die dann nach einer Zeit wieder verschwinden .
 

INpac

BeitragDo, Mai 27, 2004 17:05
Antworten mit Zitat
Benutzer-Profile anzeigen
beachte aber beim schreiben in eine Texture, dass die alphabytes verloren gehen. Deswegen benutze Multitexturing oder BlendMode, damit du trotzdem ein schönes ergebnis bekommst =)

Markus2

BeitragDo, Mai 27, 2004 18:49
Antworten mit Zitat
Benutzer-Profile anzeigen
@INpac
War sowieso getrickse wegen der Maskierung die man nicht
bekommt wenn man CreateTexture benutzt .

@Yukito
Da könnte man dann auch direkt den Alpha Wert wieder setzen .
Code: [AUSKLAPPEN]


const MagentaMask =$ff00ff ;für 24 Bit

Function FixTexture(tx)

 LockBuffer TextureBuffer(tx)

 For x=0 To TextureWidth(tx)-1
 For y=0 To TextureHeight(tx)-1
  c=ReadPixelFast(x,y,TextureBuffer(tx))
  If (c And $ffffff)=0 Or c=MagentaMask Then
   WritePixelFast x,y,0,TextureBuffer(tx)
  EndIf
 Next
 Next

 UnlockBuffer TextureBuffer(tx)
End Function

Function NewQuadMesh(w,h)

 Local m=CreateMesh()
 Local s=CreateSurface(m)

 AddVertex s,-1,+1,0,0,0:AddVertex s,+1,+1,0,1,0
 AddVertex s,+1,-1,0,1,1:AddVertex s,-1,-1,0,0,1
 AddTriangle s,0,1,2:AddTriangle s,0,2,3

 RotateMesh m,0,180,0

 ScaleMesh m,w,h,1

 EntityFX m,1+16

 Return m

End Function



Function Partikel2New(x#,y#,z#,t$)

tw=Int(bmpTextWidth(t$)/32)*32+32

p.Partikel2Type=New Partikel2Type
p\Entity=NewQuadMesh(tw,32)
EntityOrder p\Entity ,-1
p\life=50
p\vx=0
p\vy=5
p\vz=0
p\gravity=-0.25
p\fadebias=0.02
p\vroll=Rnd(-1,1)
p\scalefactor=0.01
p\scale=0.5
p\blendmode=1
PositionEntity p\Entity,x,y,z
ScaleEntity p\Entity,p\scale,p\scale,p\scale
PointEntity p\Entity,Cam

p\tx=CreateTexture(tw,32,1+4)
bmpTextTexture tw/2,16,t$,1,1,TextureBuffer(p\tx)
FixTexture p\tx
EntityTexture p\Entity,p\tx

Return p\Entity

End Function

Function bmpTextTexture(x,y,t$,centerx=0,centery=0,texbuf)

If bmpfont_img=0 Then Return 0
If Len(t$)=0 Then Return 0

If centerx Then x=x-bmpTextWidth(t$)/2
If centery Then y=y-bmpfontxyw(0)\y/2

Local i,p

Local x1,y1

LockBuffer texbuf
LockBuffer ImageBuffer(bmpfont_img)

For i=1 To Len(t$)
p=Asc(Mid(t$,i,1))
x1=0
For xx=bmpfontxyw(p)\x To bmpfontxyw(p)\x+bmpfontxyw(p)\w-1
y1=0
For yy=0 To bmpfontxyw(p)\y-1
WritePixelFast x+x1,y+y1,ReadPixelFast(xx,yy,ImageBuffer(bmpfont_img)),texbuf
y1=y1+1
Next
x1=x1+1
Next
x=x+bmpfontxyw(p)\w ;add FontSpace here +2 or so
Next

UnlockBuffer ImageBuffer(bmpfont_img)
UnlockBuffer texbuf

Return True

End Function
 

.Yukito.

BeitragFr, Mai 28, 2004 9:21
Antworten mit Zitat
Benutzer-Profile anzeigen
@INPAC:

d.h. ich soll nen sprite vorne vor die cam klatschen mit blendmode 2 (oder welcher das nu war) und da wo die buchstaben erscheinen die textur weiß machen... für ne bestimmte textfarbe nimmt man eben EntityColor auf das Sprite...

so richtig?
AMD 2000+, 512MB DDR, ATI Radeon 9000, 80 GB HDD, DX9.0, C4D 8.0, Adobe Photoshop 7.0

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group