Ring auf dem Boden zeichnen

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

Megamag

Betreff: Ring auf dem Boden zeichnen

BeitragMi, Jan 13, 2010 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi!
Ich wollte gerne ein bombe in meinem Spiel unterbringe, die Umkreisschaden verursacht. Geht auch so weit, aber ich hätte gerne, dass man sehen kann, wie groß der Radius ist und somit gerne einen Kreis auf den Boden zeichnen mit der Radiusgröße. Mein Ansatz war, ein Sprite zu erstellen eine Textur zu erstellen und dann mit dem Texturebuffer einfach ein Oval dort reinzumalen. Hat zwar geklappt, aber das Problem ist natürlich folgendes:

Wenn ich das sprite nun um die Radiusgröße skaliere, verändert sich die Liniendicke ja mit. Die sollte aber immer gleich bleiben. Und ich habe ehrlichgesagt keine Ahnung, wie ich das umsetzten könnte. Danke für eure Hilfe!

Goodjee

BeitragMi, Jan 13, 2010 20:57
Antworten mit Zitat
Benutzer-Profile anzeigen
du könntest den kreis mit triangles zusammenbauen, also ein normales mesh benutzen
"Ideen sind keine Coladosen, man kann sie nicht recyclen"-Dr. House
http://deeebian.redio.de/ http://goodjee.redio.de/

Megamag

BeitragMi, Jan 13, 2010 21:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Hmm...
Könnte man natürlich machen, wobei das bei einem Kreisring relativ kompliziert werden wird.
Aber gut, was tut man nicht alles für sein Spiel Very Happy
 

BadDeath

BeitragMi, Jan 13, 2010 23:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Och, das geht eigentlich:

Code: [AUSKLAPPEN]
Function CreateRing(R, Size#=.1, cr=255,cg=255,cb=255,alpha=1.0,quality=370)
   Local mesh=CreateMesh()
   Local surf=CreateSurface(mesh)
   Local winkelstep#=(360/Float(quality))
   Local w#=winkelstep#
   
   Size# = 1-Size#
   
   Repeat
      v0=AddVertex(surf,Cos(w+winkelstep#) * r,   0,  Sin(w+winkelstep#)*r)
      v1=AddVertex(surf,Cos(w) * r * Size,  0,  Sin(w) * r * Size) 
      v2=AddVertex(surf,Cos(w) * r, 0, Sin(w) * r)
      v3=AddVertex(surf,Cos(w+winkelstep#) * r * Size, 0, Sin(w+winkelstep#) * r * Size)
      AddTriangle(surf,v0,v1,v2)
      AddTriangle(surf,v0,v1,v3)
     
      w=w+winkelstep#
   Until w>360
     
   EntityFX mesh,2+16
   
   For i=0 To count
      VertexColor(surf,i,cr,cg,cb,alpha)
   Next
   
   UpdateNormals mesh
   Return mesh
End Function


Irgendwo fand ich hier mal einen Code für eine Scheibe oder so, wo draus ich den gebastelt hatte.
-~= real coders just code in binary =~-

Megamag

BeitragDo, Jan 14, 2010 15:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, danke!
Ich kann leider noch nicht mit Winkelfunktionen umgehen, deshalb wusste ich nicht, dass man das auch so lösen kann. Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group