Diese Programm, welches du gezeigt hast "thalius" ist sehr gut:
http://www.n3xt-d.org/_site/download.php
Ein gutes zusammenspiel mit Purebasic dank der trickreichen guten Programmiertechnik von n3xt.
Ich habe jetzt im "Gadget-Demo" mal die 3dSprite getestet, gleichzeitig mit dem originalen Gui-Button von Pure und dem 3d-Screen von n3xt. Einfach toll, wie gut man alles in einem Fenster nutzen kann mit einer hohen Geschwindigkeit.
mfg
Code: Alles auswählen
IncludePath "includes"
IncludeFile "n3xtD_PB.pbi"
Global dreh.f
Enumeration
#Window_0
EndEnumeration
Enumeration
#Container_0
#Button_0
#Button_1
#Button_2
EndEnumeration
SetCurrentDirectory("media/")
Global anim.b=#False, Event.l
Global Fond.LOGBRUSH
InitSprite()
InitSprite3D()
OpenWindow(0, 0, 0, 800,600, "A screen in a window...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0),10,200,200,200,0,0,0)
CreateSprite(0,64,64,#PB_Sprite_Texture)
CreateSprite3D(0, 0)
StartDrawing(SpriteOutput(0))
Box(20,20,44,44,RGB(255,0,0))
StopDrawing()
ButtonGadget(#Button_0, 20, 40, 110, 40, "QUIT ")
ButtonGadget(#Button_1, 20, 90, 110, 40, "vor")
ButtonGadget(#Button_2, 20, 140, 110, 40, "zurück")
ContainerGadget(#Container_0, 260, 10, 400,400)
iGraphics3DGadget(480, 440, GadgetID(#Container_0), #EDT_DIRECT3D9)
iAddZipFileArchive( "map-20kdm2.pk3" )
; load Quake3 scene object
Global *obj.IObject = iLoad3DObject("20kdm2.bsp")
; create a mesh with one of the 3D object loaded
Define *mesh.IMesh = iCreateMesh(*obj)
; create a camera
Global *cam.ICamera = iCreateCamera()
iRotateNode(*cam, 20,-90, 0)
iPositionNode(*cam, 1850, 800, 1550)
dreh=45
Repeat
Repeat
Event = WaitWindowEvent(0)
Select Event
Case #PB_Event_Gadget
If EventGadget() = #Button_0
End
EndIf
If EventGadget() = #Button_1
anim=1
EndIf
If EventGadget() = #Button_2
anim=2
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
If anim=1 : iTurnNode(*mesh ,0,0.1,0) : EndIf
If anim=2 : iTurnNode(*mesh ,0,-0.1,0) : EndIf
dreh=dreh+1
ClearScreen(RGB(255,255,0))
Start3D()
RotateSprite3D(0,dreh,0)
DisplaySprite3D( 0,20,20)
Stop3D()
FlipBuffers()
iBeginScene(0,0,0)
iDrawScene()
iEndScene()
ForEver
iFreeEngine()
End