sprites in windowmode

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

sprites in windowmode

Beitrag von unix »

Kann man Sprites zusammen mit Gadgets in ein Window paken?
Winn wie?
Tutorials dazu?

Danke für ihre Kooperation


MfG
Unix
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

nicht gemischt, man kann einen abschnitt des fensters als Screen definieren,
mit OpenWindowedScreen(), in diesem kann man dann sprites darstellen,
aber keine gadgets, die nur aussen drumrum...

ansonsten müsste man das mit Images lösen, also keine sprites...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

Vielen dank für deine Hilfe muss ich gleich ausprob :allright:

thanks


MfG
Unix
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Ka

Beitrag von unix »

Irgendwie funktioniert des ned und ich habe keine Ahnung warum mein Code ist (war):

OpenWindow(0,0,0,200,300,#PB_Window_Systemmenu,"Servus")
OpenWindowedScreen(0,0,0,200,150,0,0,0)
Delay(5000)
End

Wenn ich ein Fehler habe wäre es ett wenn ihr ihn mir sagt.
Danke!
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
Falko
Admin
Beiträge: 3535
Registriert: 29.08.2004 11:27
Computerausstattung: PC: MSI-Z590-GC; 32GB-DDR4, ICore9; 2TB M2 + 2x3TB-SATA2 HDD; Intel ICore9 @ 3600MHZ (Win11 Pro. 64-Bit),
Acer Aspire E15 (Win11 Home X64). Purebasic LTS 6.11b1
HP255G8 Notebook @AMD Ryzen 5 5500U with Radeon Graphics 2.10 GHz 3.4GHz, 32GB_RAM, 3TB_SSD (Win11 Pro 64-Bit)
Kontaktdaten:

Beitrag von Falko »

Wenn du den Debugger einschaltest und Dein PB-Source im Debugmode testest , hättest du bemerkt, das InitSprite - Initialisierung fehlen würde und
das du das OpenWindow z.B. auf dein aktives Windows beziehen muß hier z.B mit WindowID(0).

Code: Alles auswählen

InitSprite()
OpenWindow(0,0,0,200,300,#PB_Window_SystemMenu,"Servus")
OpenWindowedScreen(WindowID(0),0,0,200,150,0,0,0)
Repeat:Until WaitWindowEvent()= #PB_Event_CloseWindow ; Dies Schleife wartet solange, bis du das Fenster schliesst.
End 
Zuletzt geändert von Falko am 22.02.2005 11:58, insgesamt 2-mal geändert.
Bild
Win11 Pro 64-Bit, PB_6.11b1
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

So geht!

Code: Alles auswählen

InitSprite() ;das brauchst für den screen!!!

OpenWindow(0,0,0,200,300,#PB_Window_Systemmenu | #PB_Window_ScreenCentered,"Servus")

  If InitSprite()
    If OpenWindowedScreen(WindowID(0),0,0,200,300,0,0,0)
   

      Debug "geht!"

    EndIf
  EndIf

Delay(5000)
End
Du hast "InitSprite()" vergässen und bei "OpenWindowedScreen" hast du was mit den Parametern Falsch gemacht!

Und ihr noch ein kleines Beispiel von mir! Denn ich finde bei deinem Beispiel sieht man nicht das es Offen ist!

Code: Alles auswählen

InitSprite() ;das brauchst für den screen!!!

OpenWindow(0,0,0,200,300,#PB_Window_Systemmenu | #PB_Window_ScreenCentered,"Servus")

  If InitSprite()
    If OpenWindowedScreen(WindowID(0),0,0,200,300,0,0,0)
    ;Debug "geht!"
    


     Repeat 
      EventID = WindowEvent() 
        
        If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button 
          Quit = 1 
        EndIf 
        
        FlipBuffers()
        ClearScreen(0,0,0)
        StartDrawing(ScreenOutput())
        Locate(2,2)      ;
        DrawingMode(1)
        FrontColor(255,255,0)
        DrawText("TEst")
        StopDrawing()
     Until Quit=1 
    EndIf
  EndIf

;Delay(5000)
End 
mfg
netfreak
mfg
netfreak
Benutzeravatar
Hroudtwolf
Beiträge: 1416
Registriert: 30.10.2004 23:33
Kontaktdaten:

Beitrag von Hroudtwolf »

@netfreak

Warum rufst du in deinem zweiten Code INITSPRITE()
zweimal auf ?
Einmal reicht !
netfreak
Beiträge: 91
Registriert: 23.10.2004 18:30
Kontaktdaten:

Beitrag von netfreak »

OH Sry! Habe ich nicht gesehen! :oops:

EDIT: So ich habe den Fehler behoben und hab das Beispiel mal ausgebaut! (Aus Langeweile habe nämlich Schneefrei!)

Code: Alles auswählen


OpenWindow(0,0,0,200,300,#PB_Window_Systemmenu | #PB_Window_ScreenCentered,"Servus")

  If InitSprite()
    If OpenWindowedScreen(WindowID(0),0,0,200,300,0,0,0)
    ;Debug "geht!"
   


     Repeat
      EventID = WindowEvent()
       
        If EventID = #PB_Event_CloseWindow  ; If the user has pressed on the close button
          Quit = 1
        EndIf
       
        FlipBuffers()
        ClearScreen(0,0,0)
        StartDrawing(ScreenOutput())
        
      For a=1 To 4
        Locate(Random(200),Random(300))      ;
        DrawingMode(1)
        FrontColor(Random(255),Random(255),Random(255))
        DrawText("TEST")
      Next

                    
        StopDrawing()
      Delay(25)
     Until Quit=1
    EndIf
  EndIf

;Delay(5000)

End
mfg
netfreak
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Danke

Beitrag von unix »

Mit eurer hilfe habe ich herausgefunden was mein fehler war.

1. kein InitSprite()
2. falsche eingage der WindowsID statt 0 WindowsID(0)

Vielen dank für alles!!!!
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Beitrag von DrShrek »

Kaeru Gaman hat geschrieben:nicht gemischt, man kann einen abschnitt des fensters als Screen definieren,
mit OpenWindowedScreen(), in diesem kann man dann sprites darstellen,
aber keine gadgets, die nur aussen drumrum...
ansonsten müsste man das mit Images lösen, also keine sprites...
Es kann sein, dass ein Mischen von Sprites und Gadget ab PB3.93 (final) umgesetzt wird.
Ich habe Fred getriggert :wink:
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten