merci...Cpl.Bator a écrit :Ouais , mais fait vite quoi !
j'ai pas que ca à foutre de t'attendre !![]()
je rigole hein ! bon app
tant pis alors, je finis mon fromage sur le clavier, me femme m'apporte ma part de gâteau et mes filles sont partie me préparer mon café avec
leur pyjama '3D with PB without N3xtD is for loosers' brodé dans le dos ...
Bon, pour revenir à nos moutons, en fait j'ai refais sebsiblement le même code, mais en passant par les
fonctions GUI de N3xtD.
Cela donne ceci (basé sur le code précedent, a quelques lignes près) :
Code : Tout sélectionner
; Include files 
IncludePath "includes"   :   IncludeFile "n3xtD_PB.pbi"
; Globales
Global	anglex.f, angley.f, flagXDown.w
Global	mox.f, omx.f, moy.l, omy.l
Global *app.l, Quit.l
;----------------------------------------------------------
; open n3xt-D screen
*app = iCreateGraphics3D(800,600)
; << OR >>
;*app = iCreateGraphics3D(800,600, 32, #False, #True, #EDT_DIRECT3D9)
If *app= #Null
  End
EndIf
 
 
  SetCurrentDirectory("media/") 
;-----------------------------------------
; set ambient light
; iAmbientLight( color.l=$ffaaaaaa)
;----------------------------------------
; create light and set position
 *light.ILight = iCreateLight($ffffffff, 45)
 iPositionNode(*light, 0,30,10)
; turn off MipMap
iTextureCreation( #ETCF_CREATE_MIP_MAPS, #False )
;----------------------------------------
 ; load 3D objects 
  Global *obj1.IObject = iLoad3DObject("plane.3ds")
  Global *obj2.IObject = iLoad3DObject("earth.x")
;-----------------------------------------
; create plane
*plane.IMesh =  iCreateMesh(*obj1)
;-----------------------------------------
; create tiger
Global *sphere.IMesh =  iCreateMesh(*obj2)
iPositionNode(*sphere, 0,0.5,5)
iScaleMeshBuffer(iMeshGeometry(*sphere), 1.5,1.5,1.5)
;-----------------------------------------
; create first  camera
Global *cam.ICamera = iCreateCamera( )
iPositionNode(*cam, 0,10,-15)
iTurnNode(*cam, 15,0,0)
;-----------------------------------
; load font png
iLoadFont("courriernew.png")
Global *font.IGUIFont = iGetFont()
iPointNode(*cam, *sphere)
;-----------------------
; create GUI Image
*logo.ITexture = iLoadTexture("logo_128.png")
*img.IGUIImage = iAddImageGUI(*logo, 0,15,#True, "text")
iColor_GUIImage(*img, $55ffffff )
; ---------------------------------------
;           main loop
; ---------------------------------------
Repeat
    
 	; control earth
  If iGetKeyDown(#KEY_ARROW_UP)
    iTranslateNode(*sphere, 0,0,0.5)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_DOWN)
    iTranslateNode(*sphere, 0,0,-0.5)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_RIGHT)
    iTranslateNode(*sphere, 0.5,0,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_ARROW_LEFT)
    iTranslateNode(*sphere, -0.5,0,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_KEY_R)
    iTranslateNode(*sphere, 0,0.5,0)
    iPointNode(*cam, *sphere)
  EndIf
  If iGetKeyDown(#KEY_KEY_F)
    iTranslateNode(*sphere, 0,-0.5,0)
    iPointNode(*cam, *sphere)
  EndIf
  
  
  
	; move camera with dir key and mouse (left click)
  If iGetMouseEvent(#MOUSE_BUTTON_LEFT)
  		If flagXDown=0
  			omx = iGetMouseX()
  			omy = iGetMouseY()
  			flagXDown=11
  		Else
  			moy = iGetMouseY()-omy
  			angley=(moy/10.0)
  			omy= iGetMouseY()
  			mox = iGetMouseX()-omx
  			anglex=(mox/10.0)
  			omx= iGetMouseX()
  			iTurnNode(*cam, angley, anglex,0)
  		EndIf
  Else
  	 		flagXDown=0
  EndIf
	; if Escape Key, exit	
  If iGetKeyDown(#KEY_ESCAPE)
    Quit=1
  EndIf
  xx.l = iProjectedX(*sphere)
  yy.l = iProjectedY(*sphere)
  	; ---------------
  	;      Render
  	; ---------------
  iBeginScene()
    iDrawScene()
    iDrawGUI()
    iDrawText(*font, "DirKey and R/F for move earth",  10,10,0,0, $ff00ffff)
    iRelativePositionGUI(*img, xx,yy)
  iEndScene()
Until Quit=1
; end
iFreeEngine()