Seite 2 von 3

Verfasst: 03.09.2007 18:47
von Kaeru Gaman
Groudon hat geschrieben:Ich hab jetzt ein Window aber kann man darin auch sprites rein tun und so ????
:roll:
lies doch erst mal die antworten, dann lies die Help.

Verfasst: 03.09.2007 18:56
von roherter
So ich werde jetzt mal mein Uralt PB auskramen da du ja sonst sowieso nicht weiterkommst. :D :lol:

Verfasst: 03.09.2007 19:08
von roherter

Code: Alles auswählen

;
; ------------------------------------------------------------
;
;   PureBasic - Sprite example file
;
;    (c) 2001 - Fantaisie Software
;
; ------------------------------------------------------------
;

If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
  End
EndIf

;
; Now, open a 640*480 - 16 bits (65000 colours) screen
;
If OpenWindow(0,100,100,400,500, #PB_Window_MinimizeGadget ,"kkskk")
EndIf 

If OpenWindowedScreen(WindowID(0),0,0,400,500,1,0,0)

  ; Load our 16 bit sprite (which is a 24 bit picture in fact, as BMP doesn't support 16 bit format)
  ; 
  LoadSprite(0, "Data\PureBasic.bmp", 0)
  CopySprite(0,1,0)
  
  ; Draw some red line on our sprite
  ;
  If StartDrawing(SpriteOutput(1))
    FrontColor(255, 0, 0)
    For k = 0 To SpriteHeight(1) Step 2
      Line(0, k, SpriteWidth(1), 0)
    Next
    StopDrawing()
  EndIf

  Repeat
    
    ; Inverse the buffers (the back become the front (visible)... And we can do the rendering on the back)
    
    FlipBuffers()
    
    ClearScreen(0,0,0)
    
    ; Draw our sprite

    ClipSprite(0, 0, 0, x, x/8)
     
    DisplaySprite(0, x, 100)
    DisplaySprite(1, x, x)
    DisplaySprite(0, 600-x, x)
    x+1
    
    ExamineKeyboard()
  Until x > 1500 Or KeyboardPushed(#PB_Key_Escape)
  
Else
  MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf

End   
So habe mal ebend das Sprite beispiel ein wenig manipuliert damit du annährend siehst was gemeint ist.

Kopieren und unter Purebasic\Examples\Sources abspeichern .
Ich habe ihr den Namen :Sprite_windowed.pb gegeben.

Ich hoffe du bekommst das hin. :lol:

Verfasst: 03.09.2007 19:22
von Groudon
ich habs benutzt (DANKE) aber wen ich benutze kommt da immer das er am laden ist und die maus wird zu ner sanduhr und ich kann sie nicht mehr bewegen

Verfasst: 03.09.2007 19:51
von roherter
Hopeless.

Verfasst: 03.09.2007 19:57
von Kaeru Gaman
na, wenn du jetzt schon angefangen hast....

zum befehl OpenWindowedScreen müßte dochn beispiel dabei sein - gibs doch nich, dass da keins is...
oder war das irgendwo bei den events...

auf jeden fall hast du ihm nicht wirklich geholfen.
er kommt mit dem code auch nicht klar, und in der Help hat er bestimmt immer noch nicht gelesen.

Verfasst: 03.09.2007 20:21
von Zaphod
@Groudon: klingt als hättest du keine Eventverarbeitung.

Verfasst: 03.09.2007 20:34
von roherter
Ja sorry aber ich habe schon lange nix mehr mit PB 3.30 am hut und mit Sprite und Screen arbeite ich eigentlich nicht er sollte mal "Stargate" fragen.

Verfasst: 03.09.2007 22:20
von STARGÅTE

Code: Alles auswählen

If InitSprite() = 0 Or InitKeyboard() = 0
  MessageRequester("Error", "Can't open DirectX 7 Or later", 0)
  End
EndIf

If OpenWindow(0,100,100,400,500, #PB_Window_MinimizeGadget ,"kkskk")
EndIf 

If OpenWindowedScreen(WindowID(0),0,0,400,500,1,0,0)

  LoadSprite(0, "Data\PureBasic.bmp", 0)
  CopySprite(0,1,0)
  If StartDrawing(SpriteOutput(1))
    FrontColor(255, 0, 0)
    For k = 0 To SpriteHeight(1) Step 2
      Line(0, k, SpriteWidth(1), 0)
    Next
    StopDrawing()
  EndIf

  Repeat
    
    Event = WindowEvent()
     
    FlipBuffers()
    
    ClearScreen(0,0,0)
    
    ClipSprite(0, 0, 0, x, x/8)
     
    DisplaySprite(0, x, 100)
    DisplaySprite(1, x, x)
    DisplaySprite(0, 600-x, x)
    x+1
    
    ExamineKeyboard()
  
  Until x > 1500 Or KeyboardPushed(#PB_Key_Escape)
  
Else
  MessageRequester("Error", "Can't open a 640*480 - 16 bit screen !", 0)
EndIf

End   
einfach ein WindowEvent() rein

Du könntest noch ebfragen ob das Fenster geschlossen wird.

Code: Alles auswählen

 Event = WindowEvent()
 Select Event
  Case #PB_EventCloseWindow
   End
 EndSelect
Aber brauchst du eigentlich nicht, da ja ESC das prog beendet

Verfasst: 03.09.2007 22:24
von ZeHa
PBprogger hat geschrieben:Du meinst wohl einen WidowedScreen?
Hehe... jaja, wenn er sich dann nicht allzu alleine fühlt :mrgreen: