|
Sub MainLoop()
bnRunning = True
Do While bnRunning
' Die Größe wird verändert
If Hoehe >= 200 Then SizeChange = -1 * SizeChange
If Oben <= 10 Then SizeChange = -1 * SizeChange
Oben = Oben + SizeChange
Unten = Unten + 2 * SizeChange
Hoehe = Hoehe + SizeChange
' Die Vertexe werden der neuen Größe angepasst
Trapez
' Die Szene wird gerendert
Clear_Device
Device.BeginScene
Device.DrawPrimitive D3DPT_TRIANGLESTRIP, _
D3DFVF_TLVERTEX, vtx_Trapez(0), 4, D3DDP_WAIT
Device.EndScene
' Die Trapezeigenschaften werden gezeichnet und die
' Font-Eigenschaften geändert.
Dim fnt As IFont
Set fnt = frmMain.Font
fnt.Name = "Tahoma"
fnt.Bold = True
fnt.Size = 10
Backbuffer.SetFont fnt
Set fnt = Nothing
Backbuffer.SetForeColor vbGreen
Backbuffer.DrawText 20, 10, _
"Breite-Oben = " & CStr(2 * Oben), False
Backbuffer.DrawText 20, 25, _
"Breite-Unten = " & CStr(2 * Unten), False
Backbuffer.DrawText 20, 40, _
"Höhe = " & CStr(2 * Hoehe), False
Backbuffer.DrawText 20, 55, _
"Esc-Taste drücken, um abzubrechen", False
' Nun wird alles in die Primary-Surface gezeichnet
Primary.Flip Nothing, DDFLIP_WAIT
DoEvents
Loop
End Sub
Sub Trapez()
' Die Punkte werden individuell gerendert
P_X(1) = 400 - Oben: P_Y(1) = 300 - Hoehe
P_X(2) = 400 + Oben: P_Y(2) = 300 - Hoehe
P_X(3) = 400 - Unten: P_Y(3) = 300 + Hoehe
P_X(4) = 400 + Unten: P_Y(4) = 300 + Hoehe
' Punkt 1 - Rot
DX.CreateD3DTLVertex P_X(1), P_Y(1), 0, 1, _
DX.CreateColorRGB(1, 0, 0), 1, 0, 0, vtx_Trapez(0)
' Punkt 2 - Blau
DX.CreateD3DTLVertex P_X(2), P_Y(2), 0, 1, _
DX.CreateColorRGB(0, 0, 1), 1, 0, 0, vtx_Trapez(1)
' Punkt 3 - Gelb
DX.CreateD3DTLVertex P_X(3), P_Y(3), 0, 1, _
DX.CreateColorRGB(1, 1, 0), 1, 0, 0, vtx_Trapez(2)
' Punkt 4 - Grün
DX.CreateD3DTLVertex P_X(4), P_Y(4), 0, 1, _
DX.CreateColorRGB(0, 1, 0), 1, 0, 0, vtx_Trapez(3)
End Sub
|
|