http://www.basicpure.de.vu
Dort gibt es auch das dazugehörige Bild Wurfel.jpg.
Wollte ich das mal austesten.
Und habe den Code für (PB 4.3 Beta4 x86) angepasst.
Aber irgendwie will er die Textur nicht anzeigen.
Außerdem funktioniert
StartDrawing(ScreenOutput()) mit (PB 4.3 Beta4 x86) nicht. Wieso?
Code: Alles auswählen
InitKeyboard()
InitEngine3D()
InitSprite()
InitMouse()
OpenWindow(0, 50, 50, 640, 480, "3D - Würfel", #PB_Window_SystemMenu)
OpenWindowedScreen(WindowID(0), 0, 0, 640, 480, 0, 0, 0)
;- Kamera einstellen
CreateCamera(0, 0, 5, 100, 90)
CameraLocate(0, 33, 56, -66)
CameraLookAt(0, 10, 10, 15)
DataSection
V_01:
Data.f 00, 00, 00 ;Point 0 *
Data.f 32, 00, 00 ;Point 1 +
Data.f 32, 32, 00 ;Point 2 -
Data.f 00, 32, 00 ;Point 3 /
Data.f 00, 00, -32 ;Point 4 !
Data.f 32, 00, -32 ;Point 5 ?
Data.f 32, 32, -32 ;Point 6 $
Data.f 00, 32, -32 ;Point 7 %
Data.f 00, 00, 00 ;Point 8 *
Data.f 32, 00, 00 ;Point 9 +
Data.f 32, 00, -32 ;Point 10 ?
Data.f 00, 00, -32 ;Point 11 !
Data.f 32, 32, 00 ;Point 12 -
Data.f 00, 32, 00 ;Point 13 /
Data.f 00, 32, -32 ;Point 14 %
Data.f 32, 32, -32 ;Point 15 $
Data.f 00, 00, 00 ;Point 16 *
Data.f 00, 32, 00 ;Point 17 /
Data.f 00, 32, -32 ;Point 18 %
Data.f 00, 00, -32 ;Point 19 !
Data.f 32, 32, 00 ;Point 20 -
Data.f 32, 00, 00 ;Point 21 +
Data.f 32, 00, -32 ;Point 22 ?
Data.f 32, 32, -32 ;Point 23 $
T_01: ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Data.w 0, 1, 2 ;Dreieck 0 (Vorne)
Data.w 0, 2, 3 ;Dreieck 1
Data.w 4, 6, 5 ;Dreieck 2 (Hinten)
Data.w 4, 7, 6 ;Dreieck 3
Data.w 8, 10, 9 ;Dreieck 4 (Unten)
Data.w 8, 11, 10 ;Dreieck 5
Data.w 12, 14, 13 ;Dreieck 6 (Oben)
Data.w 12, 15, 14 ;Dreieck 7
Data.w 16, 17, 18 ;Dreieck 8 (Links)
Data.w 16, 18, 19 ;Dreieck 9
Data.w 20, 21, 22 ;Dreieck 10 (Rechts)
Data.w 20, 22, 23 ;Dreieck 11
U_01: ;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Data.f 0/256, 170/256 ; Vertex 0
Data.f 85/256, 170/256 ; Vertex 1
Data.f 85/256, 255/256 ; Vertex 2
Data.f 0/256, 255/256 ; Vertex 3
Data.f 170/256, 85/256 ; Vertex 4
Data.f 255/256, 85/256 ; Vertex 5
Data.f 255/256, 170/256 ; Vertex 6
Data.f 170/256, 170/256 ; Vertex 7
Data.f 85/256, 85/256 ; Vertex 8
Data.f 170/256, 85/256 ; Vertex 9
Data.f 170/256, 170/256 ; Vertex 10
Data.f 85/256, 170/256 ; Vertex 11
Data.f 85/256, 170/256 ; Vertex 12
Data.f 170/256, 170/256 ; Vertex 13
Data.f 170/256, 255/256 ; Vertex 14
Data.f 85/256, 255/256 ; Vertex 15
Data.f 170/256, 170/256 ; Vertex 16
Data.f 255/256, 170/256 ; Vertex 17
Data.f 255/256, 255/256 ; Vertex 18
Data.f 170/256, 255/256 ; Vertex 19
Data.f 0/256, 85/256 ; Vertex 20
Data.f 85/256, 85/256 ; Vertex 21
Data.f 85/256, 170/256 ; Vertex 22
Data.f 0/256, 170/256 ; Vertex 23
EndDataSection
CreateMesh(0,100)
SetMeshData(0, #PB_Mesh_Vertex, ?V_01, 24)
SetMeshData(0, #PB_Mesh_Face, ?T_01, 12)
SetMeshData(0, #PB_Mesh_UVCoordinate, ?U_01, 24)
Add3DArchive(".", #PB_3DArchive_FileSystem)
CreateEntity(0, MeshID(0), CreateMaterial(0, LoadTexture(0, "wurfel.jpg")))
EntityLocate(0, 0, 0, 20)
;- Hauptschleife
Repeat
RenderWorld()
; StartDrawing(ScreenOutput())
; FrontColor(RGB(255,255,255)) : BackColor(RGB(0,0,0))
; DrawText(4, 3,"Position = " +Str(CameraX(0))+ " ; " +Str(CameraY(0))+ " ; " + Str(CameraZ(0)) + Space(10))
; DrawText(4, 460,"Auf = Num8 | Ab = Num2 | Drehen = Strg rechts")
; StopDrawing()
FlipBuffers(2)
ExamineKeyboard()
If KeyboardPushed(#PB_Key_All)
Zm = 0 : Xm = 0 : Ym = 0
If KeyboardPushed(#PB_Key_Up) : Zm = -2.1 : EndIf
If KeyboardPushed(#PB_Key_Down) : Zm = 2.1 : EndIf
If KeyboardPushed(#PB_Key_Right) : Xm = 2.1 : EndIf
If KeyboardPushed(#PB_Key_Left) : Xm = -2.1 : EndIf
If KeyboardPushed(#PB_Key_Pad8) : Ym = 2.1 : EndIf
If KeyboardPushed(#PB_Key_Pad2) : Ym = -2.1 : EndIf
MoveCamera(0, Xm, Ym, Zm)
If KeyboardPushed(#PB_Key_RightControl)
ReleaseMouse(0)
ExamineMouse()
RotateCamera(0, -MouseDeltaX(), -MouseDeltaY(), 0)
MouseLocate(320, 240)
EndIf
EndIf
If KeyboardReleased(#PB_Key_RightControl) : ReleaseMouse(1) : EndIf
Until KeyboardPushed(#PB_Key_Escape) Or WindowEvent() = #PB_Event_CloseWindow
CloseScreen()
End