Bon....decidement le graphisme c'est pas mon truc.....
J'ai pourtant tenté de melanger les deux codes pour voir partir l'icone a la place du carré rouge.
Et j'vous l'donne emile....3 heures apres, ça marche toujours pas
J'ai collé mon groin sur l'ecran et on voit apparaitre un icone de dossier en une milliseconde et plus rien.
Doit encore y'avoir un rafraichissement qui se fait pas....niveau rafraichissement, rien que dans ma tete ça chauffe...... alors !!!!
Si quinquin qui connait bien le graphisme, il peut jeter un oeil, en faisant attention de ne pas se le faire aspirer dans la spirale, parce que KCC, il est pas assuré pour ça
Code : Tout sélectionner
#SpriteIcone = 10
Structure MySHFILEINFO
hIcon.l
iIcon.l
dwAttributes.l
szDisplayName.b[#MAX_PATH]
szTypeName.b[80]
EndStructure
If InitSprite() = 0 Or InitSprite3D()=0
MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
End
EndIf
If OpenWindow(0, 0, 0, 240, 240, "Un écran dans une fenêtre...", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ButtonGadget(0, 170, 135, 45, 20, "Quitter")
If OpenWindowedScreen(WindowID(0), 0, 0, 240, 240, 0, 0, 0)
size=Sqr(240*240+240*240)
CreateSprite(0, size, size,#PB_Sprite_Texture)
If StartDrawing(SpriteOutput(0))
For z=0 To 2800
x=Cos(z*#PI/180)*z/15
y=Sin(z*#PI/180)*z/15
Circle(size/2+x,size/2+y,1+z/250,RGB(255,255,255))
Next
StopDrawing()
CreateSprite3D(0,0)
EndIf
Else
MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
End
EndIf
EndIf
;EnableWindowDrop(0, #PB_Drop_Files, #PB_Drag_Copy)
DragAcceptFiles_(WindowID(#FenetreSpirale), #True)
icon=#False ; pas d'icon pour l'instant
Repeat
; Il est très important de traiter tous les événements restants dans la file d'attente à chaque tour
;
Repeat
Event = WaitWindowEvent(1)
Select Event
;Case #PB_Event_WindowDrop
Case #WM_DROPFILES
icon=#True
iconX=WindowMouseX(0)
iconY=WindowMouseY(0)
iconangle=ATan((140-iconY)/(160-iconX))
iconlong=100
iconstarttime=ElapsedMilliseconds()
Define Dropped.l, Num.l, Index.l, SizeDrop.l, FileName.s
Dropped = EventwParam()
Num = DragQueryFile_(Dropped, - 1, "", 0)
For Index = 0 To Num - 1
SizeDrop.l = DragQueryFile_(Dropped, Index, 0, 0)
FileName.s = Space(SizeDrop)
DragQueryFile_(Dropped, Index, FileName, SizeDrop + 1)
Debug FileName
Next
DragFinish_(Dropped)
If SHGetFileInfo_(FileName, 0, @Info.MySHFILEINFO, SizeOf(MySHFILEINFO), #SHGFI_ICON|#SHGFI_LARGEICON)
IconHandle = Info\hIcon
CreateSprite(#SpriteIcone, 32, 32)
StartDrawing(SpriteOutput(#SpriteIcone))
DrawImage(IconHandle, 0, 0, 32, 32)
StopDrawing()
DestroyIcon_(IconHandle)
Delay(10)
EndIf
Case #PB_Event_Gadget
If EventGadget() = 0
End
EndIf
Case #PB_Event_CloseWindow
End
EndSelect
Until Event = 0
FlipBuffers()
ClearScreen(RGB(0, 0, 0))
Start3D()
RotateSprite3D(0,ElapsedMilliseconds()/5,0)
DisplaySprite3D(0, (240-size)/2, (240-size)/2)
Stop3D()
If icon=#True
StartDrawing(ScreenOutput())
anglesup.f=(ElapsedMilliseconds()-iconstarttime)/100
long=100-(ElapsedMilliseconds()-iconstarttime)/10
If long<0:
icon=#False
EndIf
iconX=Cos(iconangle+anglesup)*long
iconY=Sin(iconangle+anglesup)*long
; Box(120+iconX,120+iconY,20,20,#Red) ; <-------------- Carré enlevé
If IsSprite(#SpriteIcone)
DisplaySprite(#SpriteIcone, 120+iconX, 120+iconY)
; Debug iconX
; Debug iconY
; Debug ""
EndIf
StopDrawing()
FlipBuffers()
EndIf
Delay(1)
ForEver