how do I put the names of my network players over their heads..
is this some form of cameraproject?
is this some form of cameraproject?
SetBuffer TextureBuffer(texture) Text TextureWidth()/2,TextureHeight()/2,Name$ SetBuffer BackBuffer()
If EntityDistance(Player\Entity,MainCamera) < 10 Text ProjectedX(),ProjectedY(),Player\Name EndIf
SetBuffer TextureBuffer(texture) Text TextureWidth(texture)/2,TextureHeight(texture)/2,Name$ SetBuffer BackBuffer()
Name$ = Turds Texture = CreateTexture(32,16) SetBuffer TextureBuffer(Texture) Text TextureWidth(Texture)/2,TextureHeight(Texture)/2,Name$ SetBuffer BackBuffer()
tex = createtexture(32, 16) cls text 0, 0, "fred" copyrect 0, 0, 32, 16, 0, 0, backbuffer(), texturebuffer(tex)
EntityAlpha Sprite,(EntityDistance#(Camera,ParentCharacter)<Range#)
cameraproject camera,entityx(creatureentity),entityy(creatureentity)+creatureheight,entityz(creatureentity) if projectedz() > 0 and projectedx()>=0 and projectedy()>=0 and projectedx()<=graphicswidth() and projectedy()<=graphicsheight() then ns_text projectedx(),projectedy(),creaturename$ endif
InitGraphics(800,600) Global Light = CreateLight() Global Camera = CreateCamera() PositionEntity Camera,0,2,-5 RotateEntity Camera,20,0,0 Global Plane = CreatePlane() Global Name$ = "GIA" Global TurnPivot = CreatePivot() Global Player = CreateCube(TurnPivot) PositionEntity Player,0,1,3 ScaleEntity Player,.5,.5,.5 EntityColor Player,255,0,0 Global Sprite = CreateSprite() ScaleSprite Sprite,.5,.25 Global Sprite2 = CreateQuad(.5,.25,0) ScaleMesh Sprite2,-1,1,1 Global SpriteTexture = CreateNameTexture(Name,1+16+32) EntityTexture Sprite,SpriteTexture EntityTexture Sprite2,SpriteTexture EntityParent Sprite,Player PositionEntity Sprite,1,MeshHeight(Player)/2+.5,0 EntityParent Sprite2,Player PositionEntity Sprite2,-1,MeshHeight(Player)/2+.5,0 While Not KeyDown(1) If KeyDown(200) TranslateEntity Camera,0,0,.1 If KeyDown(208) TranslateEntity Camera,0,0,-.1 If KeyDown(203) TranslateEntity Camera,-.1,0,0 If KeyDown(205) TranslateEntity Camera,.1,0,0 TurnEntity TurnPivot,0,1,0 TurnEntity Sprite2,0,DeltaYaw(Sprite2,Camera)*.8,0 UpdateWorld RenderWorld Flip Wend End Function ShadowText(value$,x#,y#,red%=255,green%=255,blue%=255,shadow_red=20,shadow_green=20,shadow_blue=20,center_x=1,center_y=1) Color shadow_red,shadow_green,shadow_blue Text x+1,y,value,center_x,center_y Text x,y+1,value,center_x,center_y Text x+1,y+1,value,center_x,center_y Color red,green,blue Text x,y,value,center_x,center_y End Function Function InitGraphics(w = 1024, h = 768,title$="Blitz3D Program",exit_message$="") Graphics3D w, h, 32, 2 SetBuffer BackBuffer() SeedRnd MilliSecs() If exit_message <> "" AppTitle title,exit_message Else AppTitle title EndIf End Function Function CreateNameTexture(name$,flags) Local Width% = StringWidth(name)*2 Local Height% = StringHeight(name)*2 Local texture = CreateTexture(Width,Height,flags) SetBuffer TextureBuffer(texture) Color 0,255,0 Rect 0,0,TextureWidth(texture),TextureHeight(texture)*.1 Rect 0,TextureHeight(texture)*.9,TextureWidth(texture),TextureHeight(texture)*.1 Color 255,255,255 ShadowText(name,TextureWidth(texture)*.5,TextureHeight(texture)*.5,254) SetBuffer BackBuffer() Return texture End Function Function CreateQuad(width#,height#,order%=-1,parent%=False) Local v0,v1,v2,v3 Local Point,Surface If Not parent = False Point = CreateMesh(parent) Else Point = CreateMesh() EndIf If order <> 0 EntityOrder Point,order EndIf EntityFX Point,1 Surface = CreateSurface(Point) v0=AddVertex(Surface,-(width*.5),(height*.5),0 ,0,0) v1=AddVertex(Surface,(width*.5),(height*.5),0 ,1,0) v2=AddVertex(Surface,-(width*.5),-(height*.5),0 ,0,1) v3=AddVertex(Surface,(width*.5),-(height*.5),0 ,1,1) AddTriangle(Surface,v0,v1,v2) AddTriangle(Surface,v1,v3,v2) Return Point End Function
Function TEXTUREmask( texture , sr=240 , sg=0 , sb=240, st = 30 ) TW = TextureWidth( texture ) TH = TextureHeight( texture ) SetBuffer TextureBuffer( texture ) LockBuffer For j = 0 To TH- 1 For i = 0 To TW - 1 argb = ReadPixelFast( i,j, TextureBuffer( texture ) ) r = ( argb And $FF0000) Shr 16 g = ( argb And $FF00 ) Shr 8 b = ( argb And $FF ) a = ( argb And $FF000000 ) Shr 24 If ( r > sr-st And r < sr+st ) And ( g > sg-st And g < sg+st ) And ( b > sb-st And b < sb+st ) a = 0 r = 0 g = 0 b = 0 Else a = 255 EndIf argb = ( a Shl 24 ) Or ( r Shl 16 ) Or ( g Shl 8 ) Or b WritePixelFast i , j , argb, TextureBuffer( texture ) Next Next UnlockBuffer SetBuffer BackBuffer() End Function
Function TextureMaskFill( texture ) TW = TextureWidth( texture ) TH = TextureHeight( texture ) SetBuffer TextureBuffer( texture ) LockBuffer For j = 0 To TH - 1 For i = 0 To TW - 1 WritePixelFast i , j , 0, TextureBuffer( texture ) Next Next UnlockBuffer SetBuffer BackBuffer() End Function
InitGraphics(800,600) Global Light = CreateLight() Global Camera = CreateCamera() PositionEntity Camera,0,2,-5 RotateEntity Camera,20,0,0 Global Plane = CreatePlane() Global Name$ = "GIA" Global TurnPivot = CreatePivot() Global Player = CreateCube(TurnPivot) PositionEntity Player,0,1,3 ScaleEntity Player,.5,.5,.5 EntityColor Player,255,0,0 Global Sprite = CreateSprite() ScaleSprite Sprite,.5,.25 Global Sprite2 = CreateQuad(.5,.25,0) ScaleMesh Sprite2,-1,1,1 Global SpriteTexture = CreateNameTexture(Name,1+2+16+32) EntityTexture Sprite,SpriteTexture EntityTexture Sprite2,SpriteTexture EntityParent Sprite,Player PositionEntity Sprite,1,MeshHeight(Player)/2+.5,0 EntityParent Sprite2,Player PositionEntity Sprite2,-1,MeshHeight(Player)/2+.5,0 While Not KeyDown(1) If KeyDown(200) TranslateEntity Camera,0,0,.1 If KeyDown(208) TranslateEntity Camera,0,0,-.1 If KeyDown(203) TranslateEntity Camera,-.1,0,0 If KeyDown(205) TranslateEntity Camera,.1,0,0 TurnEntity TurnPivot,0,1,0 TurnEntity Sprite2,0,DeltaYaw(Sprite2,Camera)*.8,0 UpdateWorld RenderWorld Flip Wend End Function ShadowText(value$,x#,y#,red%=255,green%=255,blue%=255,shadow_red=20,shadow_green=20,shadow_blue=20,center_x=1,center_y=1) Color shadow_red,shadow_green,shadow_blue Text x+1,y,value,center_x,center_y Text x,y+1,value,center_x,center_y Text x+1,y+1,value,center_x,center_y Color red,green,blue Text x,y,value,center_x,center_y End Function Function InitGraphics(w = 1024, h = 768,title$="Blitz3D Program",exit_message$="") Graphics3D w, h, 32, 2 SetBuffer BackBuffer() SeedRnd MilliSecs() If exit_message <> "" AppTitle title,exit_message Else AppTitle title EndIf End Function Function CreateNameTexture(name$,flags) Local Width% = StringWidth(name)*2 Local Height% = StringHeight(name)*2 Local texture = CreateTexture(Width,Height,flags) TextureMaskFill(texture) SetBuffer TextureBuffer(texture) Color 0,255,0 Rect 0,0,TextureWidth(texture),TextureHeight(texture)*.1 Rect 0,TextureHeight(texture)*.9,TextureWidth(texture),TextureHeight(texture)*.1 Color 254,254,0 Text TextureWidth(texture)*.5,TextureHeight(texture)*.5,name,1,1 ;ShadowText(name,TextureWidth(texture)*.5,TextureHeight(texture)*.5,254) SetBuffer BackBuffer() Return texture End Function Function TextureMask( texture , sr=240 , sg=0 , sb=240, st = 30 ) TW = TextureWidth( texture ) TH = TextureHeight( texture ) SetBuffer TextureBuffer( texture ) LockBuffer For j = 0 To TH - 1 For i = 0 To TW - 1 argb = ReadPixelFast( i,j, TextureBuffer( texture ) ) r = ( argb And $FF0000) Shr 16 g = ( argb And $FF00 ) Shr 8 b = ( argb And $FF ) a = ( argb And $FF000000 ) Shr 24 If ( r > sr-st And r < sr+st ) And ( g > sg-st And g < sg+st ) And ( b > sb-st And b < sb+st ) a = 0 r = 0 g = 0 b = 0 Else a = 255 EndIf argb = ( a Shl 24 ) Or ( r Shl 16 ) Or ( g Shl 8 ) Or b WritePixelFast i , j , argb, TextureBuffer( texture ) Next Next UnlockBuffer SetBuffer BackBuffer() End Function Function TextureMaskFill( texture ) TW = TextureWidth( texture ) TH = TextureHeight( texture ) SetBuffer TextureBuffer( texture ) LockBuffer For j = 0 To TH - 1 For i = 0 To TW - 1 WritePixelFast i , j , 0, TextureBuffer( texture ) Next Next UnlockBuffer SetBuffer BackBuffer() End Function Function CreateQuad(width#,height#,order%=-1,parent%=False) Local v0,v1,v2,v3 Local Point,Surface If Not parent = False Point = CreateMesh(parent) Else Point = CreateMesh() EndIf If order <> 0 EntityOrder Point,order EndIf EntityFX Point,1 Surface = CreateSurface(Point) v0=AddVertex(Surface,-(width*.5),(height*.5),0 ,0,0) v1=AddVertex(Surface,(width*.5),(height*.5),0 ,1,0) v2=AddVertex(Surface,-(width*.5),-(height*.5),0 ,0,1) v3=AddVertex(Surface,(width*.5),-(height*.5),0 ,1,1) AddTriangle(Surface,v0,v1,v2) AddTriangle(Surface,v1,v3,v2) Return Point End Function
Function CreateNameTexture(name$,flags) Local Width% = StringWidth(name)*2 Local Height% = StringHeight(name)*2 Local texture = CreateTexture(Width,Height,flags) SetBuffer TextureBuffer(texture) Color 255,0,255 Rect 0,0,TextureWidth( texture )-1, TextureHeight( texture ) - 1, 1 Color 0,255,0 Rect 0,0,TextureWidth(texture),TextureHeight(texture)*.1 Rect 0,TextureHeight(texture)*.9,TextureWidth(texture),TextureHeight(texture)*.1 Color 254,254,0 Text TextureWidth(texture)*.5,TextureHeight(texture)*.5,name,1,1 ;ShadowText(name,TextureWidth(texture)*.5,TextureHeight(texture)*.5,254) SetBuffer BackBuffer() TextureMask( texture ) Return texture End Function
Function CreateNameTexture(name$,flags) Local Width% = StringWidth(name)*2 Local Height% = StringHeight(name)*2 Local texture = CreateTexture(Width,Height,flags) TextureMaskFill(texture) SetBuffer TextureBuffer(texture) Color 0,255,0 Rect 0,0,TextureWidth(texture),TextureHeight(texture)*.1 Rect 0,TextureHeight(texture)*.9,TextureWidth(texture),TextureHeight(texture)*.1 Color 254,254,0 Text TextureWidth(texture)*.5,TextureHeight(texture)*.5,name,1,1 ;ShadowText(name,TextureWidth(texture)*.5,TextureHeight(texture)*.5,254) SetBuffer BackBuffer() Return texture End Function