Gras-Map (Gelöst)
Übersicht

martin_moehlerBetreff: Gras-Map (Gelöst) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi ich hab für mein Programm die Gras-Erstellungs-Routine von Mr.Keks genommen. Nun wollte ich, das man mit Hilfe einer *.bmp (256*256) bestimmen kann an welchen Stellen das Gras erstellt wird bzw. wo es NICHT erstellt wird.
Für mein Problem ist wichtig, dass das Gras (der Rasen) in Rechtecke unterteilt ist. Hier der Code: Code: [AUSKLAPPEN] Function CreateGrass(ter,texp$,ter_scale=1) Local vert[3] gpiv = CreatePivot() tex = LoadTexture(texp,2) Dim grass(9,9) For sx = 0 To (ter_scale*TerrainSize(ter)/128)-1 ; Anpassung an Terraingröße For sz = 0 To (ter_scale*TerrainSize(ter)/128)-1 gmesh = CreateMesh(gpiv); EntityTexture gmesh,tex piv=CreatePivot(gmesh) gsur = CreateSurface(gmesh) PositionEntity gmesh,sx*128,0,sz*128 ;(4*32) EntityFX gmesh,1+16+2 ; In jedem mesh gibt's 32x32 Sprites For x = 0 To 32 For z = 0 To 32 vx1# = x*4+Rnd(-8,8) vz1# = z*4+Rnd(-8,8) vx2# = x*4+Rnd(-8,8) vz2# = z*4+Rnd(-8,8) vert[0] = AddVertex(gsur,vx1,TerrainY(ter,vx1+sx*128,0,vz1+sz*128)-.1,vz1,0,.9) vert[1] = AddVertex(gsur,vx1,TerrainY(ter,vx1+sx*128,0,vz1+sz*128)+Rnd(3,5.5),vz1,0,0) vert[2] = AddVertex(gsur,vx2,TerrainY(ter,vx2+sx*128,0,vz2+sz*128)-.1,vz2,.9,.9) vert[3] = AddVertex(gsur,vx2,TerrainY(ter,vx2+sx*128,0,vz2+sz*128)+Rnd(3,5.5),vz2,.9,0) a=((sx*128+VertexX(gsur,vert[0]))/(TerrainSize(ter)*ter_scale))*256 If a<0 Then a=0 ;aa=a If a>256 Then a=256 b=((sz*128+VertexY(gsur,vert[0]))/(TerrainSize(ter)*ter_scale))*256 ;--> Hier ist der Fehler: Es muss VertexZ sein. Zu viel hin und her gespringe zwischen 2d und 3d!! :D If b<0 Then b=0 ;bb=b If b>256 Then b=256 If Not Map(a,b)=-16777216 AddTriangle(gsur,vert[0],vert[1],vert[2]) AddTriangle(gsur,vert[1],vert[2],vert[3]) r = Rand(70,90) g = Rand(195,230) b = Rand(70,90) VertexColor gsur,vert[0],r,g,b VertexColor gsur,vert[1],r,g,b VertexColor gsur,vert[2],r,g,b VertexColor gsur,vert[3],r,g,b End If Next Next grass(sx,sz) = gmesh Next Next Return gpiv End Function Map(a,b) - das array in das ich die *bmp "geladen" habe. Das Programm arbeitet anstandslos, jedoch werden immer ganze Gras-Rechtecke weggelassen anstelle einzelner sprites. Kann mir jemand meinen Fehler erklären?? |
||
![]() |
biggicekey |
![]() Antworten mit Zitat ![]() |
---|---|---|
bei selbst gelösten problemen fänd ich es ganz nett wenn du die lösung auch vorstellen würdest, damit andere, auf der suche nach antworten auf diese frage in diesem thread fündig werden. | ||
#45 www.icekeyunlimited.de www.starcrusade.de
Gewinner BCC#17 !!! mit dotkiller Nothing more to register - you've cleaned us out![/size] |
martin_moehler |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
steht im code ^^
ich hatte statt vertexz vertexy genommen. |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group