Page 1 sur 1

openwindow+screen+sprite marche pas

Publié : lun. 14/janv./2008 19:51
par Patrick88
comprends pas pourquoi ça marche pas... j'ai plus de cheveux à m'arracher !!! c'est l'exemple de pb à peine tripoté...

gnédoitêtre bouché... pas possible
le sprite ne s'affiche pas, j'ai beau bidouiller... rien nada quedalle....
gni!gni?

Code : Tout sélectionner

Enumeration
  #fprin
    #spr_player
    
EndEnumeration


Procedure GestFenetrePrincipale()
  l_option.l = #PB_Window_SystemMenu|#PB_Window_SizeGadget
  l_event.l
  w_coordX.w 
  
  b_quit.b
  titre.s = "Essai1"
  
  If InitSprite() = 0
    MessageRequester("Erreur", "Impossible d'ouvrir l'écran & l'environnement nécessaire aux sprites !", 0)
    End
  EndIf
  
  w_coordX = GetSystemMetrics_(SM_CXFULLSCREEN)-650
  
  If OpenWindow(#fprin,w_coordX,0,640,480,titre,l_option)
    If OpenWindowedScreen(WindowID(#fprin),0, 0, 1, 1, 1, 0, 0)
    Else
      MessageRequester("Erreur", "Impossible d'ouvrir un écran dans la fenêtre!", 0)
      End
    EndIf
  EndIf

  If CreateSprite(#spr_player,100,100)
    If StartDrawing(SpriteOutput(#spr_player))
      FrontColor(RGB(255,0,0))
      For k = 0 To SpriteHeight(#spr_player) Step 5
        Line(0, k, SpriteWidth(#spr_player), 0)
      Next
      StopDrawing()
    EndIf
  EndIf
  
  b_quit = 0
  
  Repeat
    
    Repeat
      l_Event = WindowEvent()
 
      If l_event = #PB_Event_CloseWindow
        b_quit = 1
      EndIf
    Until l_Event = 0
    
    FlipBuffers() 
    ClearScreen(RGB(0, 0, 200))
    
    DisplaySprite(#spr_player, 320, 200)

    Delay(1)
  Until b_quit>0

EndProcedure

GestFenetrePrincipale()
End

Publié : lun. 14/janv./2008 20:05
par comtois
change la taille de ton écran

Code : Tout sélectionner

OpenWindowedScreen(WindowID(#fprin),0, 0, 640, 480, 1, 0, 0)

Publié : lun. 14/janv./2008 21:30
par Patrick88
exacte, c'est ça qui chiotte... merci

pourtant dans l'aide il est dit :

Si 'RedimensionnementAuto' est 1, alors l'écran se redimensionnera automatiquement ainsi que son contenu quand la taille de la fenêtre changera.

et

If OpenWindowedScreen(WindowID(0), 0, 0, 1, 1, 1, 0, 0) ; nous n'avons pas besoin des dimensions exact de l'écran, car il sera automatiquement étiré.

jaja jacomprire pas bien

pat

Publié : lun. 14/janv./2008 21:38
par Octavius
Il est aussi dit qu'Openscreen et OpenWindowedScreen doivent avoir une taille d'écran valide, càd classique (640*480, 800*600, 1024*768, etc.), or 0*0 n'est pas une taille classique, d'où le bug... Je suppose que PureBasic regarde d'abord si les paramètres sont corrects et ne redimensionne qu'après.