so das ist jetzt meine funktion:
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] timer=CreateTimer(60) Graphics3D 0,0,32,1 SetBuffer BackBuffer()
w=CreateMesh() ws=CreateSurface(w) wsv1a=AddVertex(ws,-50,0,-50) wsv2a=AddVertex(ws,50,0,-50) wsv3a=AddVertex(ws,-50,0,50) wsv4a=AddVertex(ws,50,0,50) wsv1=AddVertex(ws,0,0,0) wsv2=AddVertex(ws,0,0,0) wsv3=AddVertex(ws,0,0,0) wsv4=AddVertex(ws,0,0,0) wsv5=AddVertex(ws,0,0,0) wsv6=AddVertex(ws,0,0,0) wsv7=AddVertex(ws,0,0,0) wsv8=AddVertex(ws,0,0,0)
AddTriangle ws,wsv1,wsv2,wsv1a AddTriangle ws,wsv1,wsv1a,wsv3 AddTriangle ws,wsv6,wsv8,wsv4a AddTriangle ws,wsv8,wsv7,wsv4a AddTriangle ws,wsv4a,wsv2a,wsv6 AddTriangle ws,wsv2,wsv6,wsv2a AddTriangle ws,wsv3a,wsv4a,wsv7 AddTriangle ws,wsv3a,wsv7,wsv3 AddTriangle ws,wsv1a,wsv2,wsv2a AddTriangle ws,wsv4,wsv6,wsv2 AddTriangle ws,wsv1a,wsv3a,wsv3 AddTriangle ws,wsv3,wsv5,wsv4 AddTriangle ws,wsv5,wsv6,wsv4 AddTriangle ws,wsv5,wsv3,wsv7
w2=CreateMesh() w2s=CreateSurface(w2) w2sv1a=AddVertex(w2s,-50,0,-50) w2sv2a=AddVertex(w2s,50,0,-50) w2sv3a=AddVertex(w2s,-50,0,50) w2sv4a=AddVertex(w2s,50,0,50) w2sv1=AddVertex(w2s,0,0,0) w2sv2=AddVertex(w2s,0,0,0) w2sv3=AddVertex(w2s,0,0,0) w2sv4=AddVertex(w2s,0,0,0) w2sv5=AddVertex(w2s,0,0,0) w2sv6=AddVertex(w2s,0,0,0) w2sv7=AddVertex(w2s,0,0,0) w2sv8=AddVertex(w2s,0,0,0)
AddTriangle w2s,w2sv1,w2sv2,w2sv1a AddTriangle w2s,w2sv1,w2sv1a,w2sv3 AddTriangle w2s,w2sv6,w2sv8,w2sv4a AddTriangle w2s,w2sv8,w2sv7,w2sv4a AddTriangle w2s,w2sv4a,w2sv2a,w2sv6 AddTriangle w2s,w2sv2,w2sv6,w2sv2a AddTriangle w2s,w2sv3a,w2sv4a,w2sv7 AddTriangle w2s,w2sv3a,w2sv7,w2sv3 AddTriangle w2s,w2sv1a,w2sv2,w2sv2a AddTriangle w2s,w2sv5,w2sv6,w2sv2 AddTriangle w2s,w2sv1a,w2sv3a,w2sv3 AddTriangle w2s,w2sv2,w2sv4,w2sv5 AddTriangle w2s,w2sv7,w2sv5,w2sv4 AddTriangle w2s,w2sv4,w2sv3,w2sv7
w3=CreateMesh() w3s=CreateSurface(w3) w3sv1a=AddVertex(w3s,-50,0,-50) w3sv2a=AddVertex(w3s,50,0,-50) w3sv3a=AddVertex(w3s,-50,0,50) w3sv4a=AddVertex(w3s,50,0,50) w3sv1=AddVertex(w3s,0,0,0) w3sv2=AddVertex(w3s,0,0,0) w3sv3=AddVertex(w3s,0,0,0) w3sv4=AddVertex(w3s,0,0,0) w3sv5=AddVertex(w3s,0,0,0) w3sv6=AddVertex(w3s,0,0,0) w3sv7=AddVertex(w3s,0,0,0) w3sv8=AddVertex(w3s,0,0,0)
AddTriangle w3s,w3sv1,w3sv2,w3sv1a AddTriangle w3s,w3sv1,w3sv1a,w3sv3 AddTriangle w3s,w3sv6,w3sv8,w3sv4a AddTriangle w3s,w3sv8,w3sv7,w3sv4a AddTriangle w3s,w3sv4a,w3sv2a,w3sv6 AddTriangle w3s,w3sv2,w3sv6,w3sv2a AddTriangle w3s,w3sv3a,w3sv4a,w3sv7 AddTriangle w3s,w3sv3a,w3sv7,w3sv3 AddTriangle w3s,w3sv1a,w3sv2,w3sv2a AddTriangle w3s,w3sv5,w3sv6,w3sv2 AddTriangle w3s,w3sv1a,w3sv3a,w3sv3 AddTriangle w3s,w3sv4,w3sv3,w3sv7
x1=CreateSphere() EntityColor x1,255,0,0 x2=CreateSphere() EntityColor x2,0,0,255
cam=CreateCamera() TurnEntity cam,90,0,0 MoveEntity cam,0,0,-75
While Not KeyHit(1) If KeyHit(2) wf=1-wf WireFrame wf If KeyDown(32) MoveEntity x1,1,0,0 If KeyDown(30) MoveEntity x1,-1,0,0 If KeyDown(17) MoveEntity x1,0,0,1 If KeyDown(31) MoveEntity x1,0,0,-1 If KeyDown(205) MoveEntity x2,1,0,0 If KeyDown(203) MoveEntity x2,-1,0,0 If KeyDown(200) MoveEntity x2,0,0,1 If KeyDown(208) MoveEntity x2,0,0,-1 If EntityX(x1)<=EntityX(x2) And EntityZ(x1)+9<EntityZ(x2) RotateEntity w,0,0,0 VertexCoords ws,wsv1,EntityX(x1)-5,0,EntityZ(x1)-5 VertexCoords ws,wsv2,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords ws,wsv3,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords ws,wsv4,EntityX(x1)+5,0,EntityZ(x1)+5 VertexCoords ws,wsv5,EntityX(x2)-5,0,EntityZ(x2)-5 VertexCoords ws,wsv6,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords ws,wsv7,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords ws,wsv8,EntityX(x2)+5,0,EntityZ(x2)+5 HideEntity w2 HideEntity w3 ShowEntity w EndIf If EntityX(x1)=>EntityX(x2) And EntityZ(x1)>EntityZ(x2)+9 RotateEntity w,0,0,0 VertexCoords ws,wsv5,EntityX(x1)-5,0,EntityZ(x1)-5 VertexCoords ws,wsv6,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords ws,wsv7,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords ws,wsv8,EntityX(x1)+5,0,EntityZ(x1)+5 VertexCoords ws,wsv1,EntityX(x2)-5,0,EntityZ(x2)-5 VertexCoords ws,wsv2,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords ws,wsv3,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords ws,wsv4,EntityX(x2)+5,0,EntityZ(x2)+5 HideEntity w2 HideEntity w3 ShowEntity w EndIf If EntityX(x1)>EntityX(x2)+9 And EntityZ(x1)<=EntityZ(x2) RotateEntity w,0,90,0 VertexCoords ws,wsv1,EntityZ(x1)-5,0,-EntityX(x1)-5 VertexCoords ws,wsv2,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords ws,wsv3,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords ws,wsv4,EntityZ(x1)+5,0,-EntityX(x1)+5 VertexCoords ws,wsv5,EntityZ(x2)-5,0,-EntityX(x2)-5 VertexCoords ws,wsv6,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords ws,wsv7,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords ws,wsv8,EntityZ(x2)+5,0,-EntityX(x2)+5 HideEntity w2 HideEntity w3 ShowEntity w EndIf If EntityX(x1)<EntityX(x2) And EntityZ(x1)+9>EntityZ(x2) RotateEntity w,0,90,0 VertexCoords ws,wsv5,EntityZ(x1)-5,0,-EntityX(x1)-5 VertexCoords ws,wsv6,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords ws,wsv7,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords ws,wsv8,EntityZ(x1)+5,0,-EntityX(x1)+5 VertexCoords ws,wsv1,EntityZ(x2)-5,0,-EntityX(x2)-5 VertexCoords ws,wsv2,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords ws,wsv3,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords ws,wsv4,EntityZ(x2)+5,0,-EntityX(x2)+5 HideEntity w2 HideEntity w3 ShowEntity w EndIf If EntityX(x1)+10<EntityX(x2) And EntityZ(x1)<EntityZ(x2) And EntityZ(x1)+10>EntityZ(x2) RotateEntity w2,0,0,0 VertexCoords w2s,w2sv1,EntityX(x1)-5,0,EntityZ(x1)-5 VertexCoords w2s,w2sv2,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords w2s,w2sv3,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords w2s,w2sv4,EntityX(x1)+5,0,EntityZ(x1)+5 VertexCoords w2s,w2sv5,EntityX(x2)-5,0,EntityZ(x2)-5 VertexCoords w2s,w2sv6,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords w2s,w2sv7,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords w2s,w2sv8,EntityX(x2)+5,0,EntityZ(x2)+5 HideEntity w HideEntity w3 ShowEntity w2 EndIf If EntityX(x1)>EntityX(x2)+10 And EntityZ(x1)>EntityZ(x2) And EntityZ(x1)<EntityZ(x2)+10 RotateEntity w2,0,0,0 VertexCoords w2s,w2sv5,EntityX(x1)-5,0,EntityZ(x1)-5 VertexCoords w2s,w2sv6,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords w2s,w2sv7,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords w2s,w2sv8,EntityX(x1)+5,0,EntityZ(x1)+5 VertexCoords w2s,w2sv1,EntityX(x2)-5,0,EntityZ(x2)-5 VertexCoords w2s,w2sv2,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords w2s,w2sv3,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords w2s,w2sv4,EntityX(x2)+5,0,EntityZ(x2)+5 HideEntity w HideEntity w3 ShowEntity w2 EndIf If EntityZ(x1)+10<EntityZ(x2) And EntityX(x1)<EntityX(x2)+10 And EntityX(x1)>EntityX(x2) RotateEntity w2,0,90,0 VertexCoords w2s,w2sv1,EntityZ(x1)-5,0,-EntityX(x1)-5 VertexCoords w2s,w2sv2,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords w2s,w2sv3,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords w2s,w2sv4,EntityZ(x1)+5,0,-EntityX(x1)+5 VertexCoords w2s,w2sv5,EntityZ(x2)-5,0,-EntityX(x2)-5 VertexCoords w2s,w2sv6,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords w2s,w2sv7,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords w2s,w2sv8,EntityZ(x2)+5,0,-EntityX(x2)+5 HideEntity w HideEntity w3 ShowEntity w2 EndIf If EntityZ(x1)>EntityZ(x2)+10 And EntityX(x1)<EntityX(x2) And EntityX(x1)+10>EntityX(x2) RotateEntity w2,0,90,0 VertexCoords w2s,w2sv5,EntityZ(x1)-5,0,-EntityX(x1)-5 VertexCoords w2s,w2sv6,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords w2s,w2sv7,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords w2s,w2sv8,EntityZ(x1)+5,0,-EntityX(x1)+5 VertexCoords w2s,w2sv1,EntityZ(x2)-5,0,-EntityX(x2)-5 VertexCoords w2s,w2sv2,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords w2s,w2sv3,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords w2s,w2sv4,EntityZ(x2)+5,0,-EntityX(x2)+5 HideEntity w HideEntity w3 ShowEntity w2 EndIf If EntityX(x1)<=EntityX(x2) And EntityX(x1)+11>EntityX(x2) And EntityZ(x1)<=EntityZ(x2) And EntityZ(x1)+11>EntityZ(x2) RotateEntity w3,0,0,0 VertexCoords w3s,w3sv1,EntityX(x1)-5,0,EntityZ(x1)-5 VertexCoords w3s,w3sv2,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords w3s,w3sv3,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords w3s,w3sv5,EntityX(x1)+5,0,EntityZ(x2)-5 VertexCoords w3s,w3sv4,EntityX(x2)-5,0,EntityZ(x1)+5 VertexCoords w3s,w3sv6,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords w3s,w3sv7,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords w3s,w3sv8,EntityX(x2)+5,0,EntityZ(x2)+5 HideEntity w2 HideEntity w ShowEntity w3 EndIf If EntityX(x1)=>EntityX(x2) And EntityX(x1)<EntityX(x2)+11 And EntityZ(x1)=>EntityZ(x2) And EntityZ(x1)<EntityZ(x2)+11 RotateEntity w3,0,0,0 VertexCoords w3s,w3sv1,EntityX(x2)-5,0,EntityZ(x2)-5 VertexCoords w3s,w3sv2,EntityX(x2)+5,0,EntityZ(x2)-5 VertexCoords w3s,w3sv3,EntityX(x2)-5,0,EntityZ(x2)+5 VertexCoords w3s,w3sv5,EntityX(x2)+5,0,EntityZ(x1)-5 VertexCoords w3s,w3sv4,EntityX(x1)-5,0,EntityZ(x2)+5 VertexCoords w3s,w3sv6,EntityX(x1)+5,0,EntityZ(x1)-5 VertexCoords w3s,w3sv7,EntityX(x1)-5,0,EntityZ(x1)+5 VertexCoords w3s,w3sv8,EntityX(x1)+5,0,EntityZ(x1)+5 HideEntity w2 HideEntity w ShowEntity w3 EndIf If EntityZ(x1)<EntityZ(x2) And EntityZ(x1)+11>EntityZ(x2) And EntityX(x1)>EntityX(x2) And EntityX(x1)<EntityX(x2)+11 RotateEntity w3,0,90,0 VertexCoords w3s,w3sv1,EntityZ(x1)-5,0,-EntityX(x1)-5 VertexCoords w3s,w3sv2,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords w3s,w3sv3,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords w3s,w3sv5,EntityZ(x1)+5,0,-EntityX(x2)-5 VertexCoords w3s,w3sv4,EntityZ(x2)-5,0,-EntityX(x1)+5 VertexCoords w3s,w3sv6,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords w3s,w3sv7,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords w3s,w3sv8,EntityZ(x2)+5,0,-EntityX(x2)+5 HideEntity w2 HideEntity w ShowEntity w3 EndIf If EntityZ(x1)>EntityZ(x2) And EntityZ(x1)<EntityZ(x2)+11 And EntityX(x1)<EntityX(x2) And EntityX(x1)+11>EntityX(x2) RotateEntity w3,0,90,0 VertexCoords w3s,w3sv1,EntityZ(x2)-5,0,-EntityX(x2)-5 VertexCoords w3s,w3sv2,EntityZ(x2)+5,0,-EntityX(x2)-5 VertexCoords w3s,w3sv3,EntityZ(x2)-5,0,-EntityX(x2)+5 VertexCoords w3s,w3sv5,EntityZ(x2)+5,0,-EntityX(x1)-5 VertexCoords w3s,w3sv4,EntityZ(x1)-5,0,-EntityX(x2)+5 VertexCoords w3s,w3sv6,EntityZ(x1)+5,0,-EntityX(x1)-5 VertexCoords w3s,w3sv7,EntityZ(x1)-5,0,-EntityX(x1)+5 VertexCoords w3s,w3sv8,EntityZ(x1)+5,0,-EntityX(x1)+5 HideEntity w2 HideEntity w ShowEntity w3 EndIf RenderWorld WaitTimer timer Flip 0 Wend End
funktioniert einwandfrei fals mal jemand so etwas brauchen kann
kann man aber noch verbessern
|