Hab nen Problem. Bin dabei sone Art Autorennspiel zu machen. Zurzeit kann man aber durch Häuser etc. fahren. Wie kann ich ne Kollisionsabfrage starten bzw. die Koordinaten von den Objekten kriegen um eine zu machen. Projekt ist mit Direct X 8.0 gemacht und ich lad die Objekte in ein Mesh. Falls es wichtig ist, heir meine InitGeometry Function
<pre>
Public Function InitGeometry() As Boolean
On Error GoTo Fehler
Dim mtrlBuffer As D3DXBuffer
Dim I As Long
Dim TextureFile As String
Set Mesh = D3DX.LoadMeshFromX(LevelFileName, D3DXMESH_MANAGED, D3DDevice, Nothing, mtrlBuffer, nMaterials)
If Mesh Is Nothing Then GoTo Fehler
ReDim MeshMaterials(nMaterials - 1) As D3DMATERIAL8
ReDim MeshTextures(nMaterials - 1) As Direct3DTexture8
Debug.Print "Materials: " & nMaterials
For I = 0 To nMaterials - 1
D3DX.BufferGetMaterial mtrlBuffer, I, MeshMaterials(I)
MeshMaterials(I).Ambient = MeshMaterials(I).diffuse
TextureFile = D3DX.BufferGetTextureName(mtrlBuffer, I)
If TextureFile <> "" Then
Set MeshTextures(I) = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "\Texturen\" & TextureFile, 128, 128, _
D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_LINEAR, _
D3DX_FILTER_LINEAR, 0, ByVal 0, ByVal 0)
End If
Next I
Debug.Print "Number of Vertices :" & Mesh.GetNumVertices
InitGeometry = True: Exit Function
Fehler:
MsgBox "Fehler beim Laden des Levels:" & Chr$(13) & Chr$(13) _
& "Mögliche Ursachen:" & Chr$(13) & "1. Kein Level angegeben oder beschädigt" _
& Chr$(13) & "2. Fehlende Textur"
InitGeometry = False
End Function
</pre>
<font color="orangered"> Edit by Admin: Ich habe mal einige Zeilenumbrüche eingefügt, weil man sonst so weit nach rechts scrollen musste. </font>
<pre>
Public Function InitGeometry() As Boolean
On Error GoTo Fehler
Dim mtrlBuffer As D3DXBuffer
Dim I As Long
Dim TextureFile As String
Set Mesh = D3DX.LoadMeshFromX(LevelFileName, D3DXMESH_MANAGED, D3DDevice, Nothing, mtrlBuffer, nMaterials)
If Mesh Is Nothing Then GoTo Fehler
ReDim MeshMaterials(nMaterials - 1) As D3DMATERIAL8
ReDim MeshTextures(nMaterials - 1) As Direct3DTexture8
Debug.Print "Materials: " & nMaterials
For I = 0 To nMaterials - 1
D3DX.BufferGetMaterial mtrlBuffer, I, MeshMaterials(I)
MeshMaterials(I).Ambient = MeshMaterials(I).diffuse
TextureFile = D3DX.BufferGetTextureName(mtrlBuffer, I)
If TextureFile <> "" Then
Set MeshTextures(I) = D3DX.CreateTextureFromFileEx(D3DDevice, App.Path & "\Texturen\" & TextureFile, 128, 128, _
D3DX_DEFAULT, 0, D3DFMT_UNKNOWN, D3DPOOL_MANAGED, D3DX_FILTER_LINEAR, _
D3DX_FILTER_LINEAR, 0, ByVal 0, ByVal 0)
End If
Next I
Debug.Print "Number of Vertices :" & Mesh.GetNumVertices
InitGeometry = True: Exit Function
Fehler:
MsgBox "Fehler beim Laden des Levels:" & Chr$(13) & Chr$(13) _
& "Mögliche Ursachen:" & Chr$(13) & "1. Kein Level angegeben oder beschädigt" _
& Chr$(13) & "2. Fehlende Textur"
InitGeometry = False
End Function
</pre>
<font color="orangered"> Edit by Admin: Ich habe mal einige Zeilenumbrüche eingefügt, weil man sonst so weit nach rechts scrollen musste. </font>
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()