AlphaFont
Übersicht

.Yukito.Betreff: AlphaFont |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 |
![]() Antworten mit Zitat ![]() |
---|---|---|
@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. |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
@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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group