chez moi la commande ne plante pas mais ça ne fait rien
par contre mon code fait planter le debugger lorsque je quitte ! ça fait pareille chez toi ?
Et autre chose curieuse l'ID que je récupère avec
est négatif ....curieux ...
et j'ai aussi un problème avec la structure
MotionDetection
si je retire les ";" lorsque je donne les valeurs aux variable ça ne marche pas....il me dit que la structure n'est pas definit ...
voilà ou j'en suis apres des heures et des heures de test dans tout les sens
Tient voici la dernière version de mon code :
Code : Tout sélectionner
Global screen_width
Global screen_height
Global screen_depth
screen_width = 640
screen_height = 480
screen_depth = 16
#Mode_initSp = 2
#window = 0
Structure MotionDetection
MotionState.l
MotionTrackingValue.l
MotionLimited.l
EndStructure
Procedure InitScreen()
;- Init DirectX
If InitSprite() = 0 Or InitSprite3D() = 0 Or InitKeyboard() = 0 Or InitMouse() = 0 Or InitSound() = 0
MessageRequester("Erreur", "Impossible d'initialiser DirectX", 0)
CloseWindow(#Window) : End
EndIf
If #Mode_initSp = 0 Or #Mode_initSp = 1
res = OpenWindow(#Window, 0, 0, screen_width, screen_height, #PB_Window_TitleBar | #PB_Window_ScreenCentered, "Test")
OpenWindowedScreen(res, 0, 0, screen_width, screen_height, 0, 0, 0)
Else
OpenScreen( screen_width, screen_height, screen_depth, "Arcadthy" + ver$ )
EndIf
UsePNGImageDecoder()
UseJPEGImageDecoder()
TransparentSpriteColor(-1, 255, 0, 255)
EndProcedure
Procedure FatalError (error$)
If error$ = "" : error$ = "Undefined error... outta here!" : EndIf
MessageRequester ("Program error -- aborting...", error$, #MB_ICONWARNING | #MB_SYSTEMMODAL)
End
EndProcedure
Procedure OpenicamplayLibrary ()
If OpenLibrary (0, "icamplay.dll") = 0
FatalError ("Can't open icamplay.dll!")
Else
nb = CountLibraryFunctions(0)
Debug "Nb fonction:" + Str(nb)
If ExamineLibraryFunctions(0) <> 0
While NextLibraryFunction() <> 0
Debug LibraryFunctionName()
Wend
EndIf
EndIf
EndProcedure
Procedure iCamInitWindow(icamMode.l, icamMenu.l)
ProcedureReturn CallFunction (0, "iCamInitWindow", icamMode, icamMenu)
EndProcedure
Procedure iCamSelectDriver()
ProcedureReturn CallFunction (0, "iCamSelectDriver")
EndProcedure
Procedure iCamCaptureFormat()
ProcedureReturn CallFunction (0, "iCamCaptureFormat")
EndProcedure
Procedure iCamCaptureDisplay()
ProcedureReturn CallFunction (0, "iCamCaptureDisplay")
EndProcedure
Procedure iCamGetMotion()
ProcedureReturn CallFunction (0, "iCamGetMotion")
EndProcedure
Procedure.l iCamGetWebcamImage()
ProcedureReturn CallFunction (0, "iCamGetWebcamImage")
EndProcedure
Procedure iCamPreviewRate(fps.l)
ProcedureReturn CallFunction (0, "iCamPreviewRate", fps)
EndProcedure
Procedure iCamSetMotionDetection(adr.l)
ProcedureReturn CallFunction (0, "iCamSetMotionDetection", adr)
EndProcedure
Procedure iCamEvent(focus.l)
ProcedureReturn CallFunction (0, "iCamEvent", focus)
EndProcedure
OpenicamplayLibrary ()
Debug iCamInitWindow(#False, #False)
iCamPreviewRate(15)
InitScreen()
CreateImage(1, 320, 200)
UseImage(1)
StartDrawing(ImageOutput())
Box(1, 1, 320, 200, RGB(255, 0, 0))
StopDrawing()
;MotionDetection\MotionState = #True
;MotionDetection\MotionTrackingValue = 50
;MotionDetection\MotionLimited = #False
;iCamSetMotionDetection(@MotionDetection)
iCamGetMotion()
Repeat ; Jeu
ClearScreen(120, 120, 120)
ExamineKeyboard()
iCamEvent(#False)
ImageID = iCamGetWebcamImage()
Debug "id:" + Str(ImageID)
StartDrawing(ScreenOutput())
; CatchImage(1,ImageID)
DrawImage(UseImage(1), 50, 50)
DrawImage(ImageID, 1, 1)
StopDrawing()
FlipBuffers(0)
Delay(100)
If #Mode_initSp = 0 Or #Mode_initSp = 1
While WindowEvent() : Wend ; evite le plantage clic gauche
EndIf
Until KeyboardPushed(#PB_Key_Tab)
CloseScreen()
CloseLibrary(0)
End