Модератор: Mikle
iP=iP+1: If iP>=MaxP then iP=0
XPos(iP)=PlayerXPos
For n=0 to MaxP-1
If pEnable(n) then DrawP(n)
next n
Maxwell писал(а):разница между ReDim и ReDim Preserve?
Maxwell писал(а):Какое мне поставить отдаление камеры от центра так, что бы на экране было 1024x768 пикселей?
Public Const FVF_World = (D3DFVF_XYZRHW Or D3DFVF_DIFFUSE Or D3DFVF_TEX1)
.....
d3dDevice.SetVertexShader FVF_World
После того, как Z становиться больше определённого числа объекты пропадоют!?
Option Explicit
Dim dx As New DirectX8
Dim d3d As Direct3D8
Dim d3dDevice As Direct3DDevice8
Dim pVB As Direct3DVertexBuffer8
Dim Running As Boolean
Private Type CUSTOMVERTEX
X As Single
Y As Single
Z As Single
RHW As Single
Color As Long
End Type
Private Const D3DFVF_CUSTOMVERTEX = (D3DFVF_XYZRHW Or D3DFVF_DIFFUSE)
Private Sub Form_Activate()
InitD3D
Running = True
Do While Running
Render
Loop
End
End Sub
Private Sub Form_KeyPress(KeyAscii As Integer)
Running = False
End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
Set pVB = Nothing
Set d3dDevice = Nothing
Set d3d = Nothing
End Sub
Private Sub InitVB1()
Dim Vertices(3) As CUSTOMVERTEX
With Vertices(0): .X = 50: .Y = 50: .Z = 0.5: .RHW = 1: .Color = &HFFFF0000: End With
With Vertices(1): .X = 150: .Y = 150: .Z = 0.5: .RHW = 1: .Color = &HFF00FF00: End With
With Vertices(2): .X = 50: .Y = 150: .Z = 0.5: .RHW = 1: .Color = &HFF00FFFF: End With
Set pVB = d3dDevice.CreateVertexBuffer(3 * Len(Vertices(0)), 0, D3DFVF_CUSTOMVERTEX, D3DPOOL_DEFAULT)
Call D3DVertexBuffer8SetData(pVB, 0, Len(Vertices(0)) * 3, 0, Vertices(0))
End Sub
Private Sub Render()
Dim v As CUSTOMVERTEX
Dim sizeOfVertex As Long
DoEvents
sizeOfVertex = Len(v)
Call d3dDevice.Clear(0, ByVal 0, D3DCLEAR_TARGET, &H7F007F, 1, 0)
Call d3dDevice.BeginScene
InitVB1
Call d3dDevice.SetStreamSource(0, pVB, sizeOfVertex)
Call d3dDevice.SetVertexShader(D3DFVF_CUSTOMVERTEX)
Call d3dDevice.DrawPrimitive(D3DPT_TRIANGLELIST, 0, 1)
Call d3dDevice.EndScene
Call d3dDevice.Present(ByVal 0, ByVal 0, 0, ByVal 0)
End Sub
Private Sub InitD3D()
Dim DispMode As D3DDISPLAYMODE
Dim d3dpp As D3DPRESENT_PARAMETERS
Set d3d = dx.Direct3DCreate
Call d3d.GetAdapterDisplayMode(D3DADAPTER_DEFAULT, DispMode)
d3dpp.Windowed = True
d3dpp.SwapEffect = D3DSWAPEFFECT_DISCARD
d3dpp.BackBufferFormat = DispMode.Format
Set d3dDevice = d3d.CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, Me.hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, d3dpp)
End Sub
d3dDevice.SetVertexShader FVF_World
Maxwell писал(а):Урич, ты так и не осматрелся, жду ответа?
Maxwell писал(а):Если "ВЫ" - это обращение ко мне то давай будем на ты, так проще.
На счёт моей работы, так она даже не работа, я просто пока осваиваю азы DX8. Уже довольно неплохо в нём разбираюсь. Но возникают всё новые вопросы, с которыми пытаюсь бороться.
А о чём собственно твой проект? Поделись если не секрет.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 70