Seite 1 von 2

Screenshot - kein Programm gefunden

Verfasst: 18.12.2006 12:10
von startspieler
Hallo,

kann mir jemand helfen ?
Ich möchte gerne ein Programm haben, dass es mir ermöglicht,
einen Screenshot von meinen Spielen zu machen. Also drücke
z.B. F6 und dann Screenshot im Zwischenspeicher .. oder so.

Da ich meine Programme nicht im Windowsfenster starte, habe
ich noch kein Progamm für Screenshots gefunden, das mir hiflt.

Danke für die Hilfe !
Gruß
Michael

Verfasst: 18.12.2006 12:18
von #NULL
du kannst so eine funktion auch ganz leicht in dein programm einbauen:

Code: Alles auswählen

If KeyboardReleased(#PB_Key_F12)
  scrnsht=GrabSprite(#PB_Any, 0,0, #screenWidth, #screeHeight)
  SaveSprite(scrnsht, "C:\myGame\screenshots\screenshot001.bmp")
EndIf

Alte Version

Verfasst: 18.12.2006 13:15
von startspieler
Leider habe ich eine ganz alte Version 3.30 und er erkennt
(#PB_Any.. nicht. Gibt es auch ein Script für meine Version ?

Aber schon mal danke für die Antwort.

Re: Alte Version

Verfasst: 18.12.2006 13:19
von ts-soft
startspieler hat geschrieben:Leider habe ich eine ganz alte Version 3.30 und er erkennt
(#PB_Any.. nicht. Gibt es auch ein Script für meine Version ?

Aber schon mal danke für die Antwort.

Code: Alles auswählen

If KeyboardReleased(#PB_Key_F12)
  GrabSprite(1, 0, 0, #screenWidth, #screeHeight)
  SaveSprite(1, "C:\myGame\screenshots\screenshot001.bmp")
EndIf
ungetested, mangels Uralt-Basic :mrgreen:

Re: Alte Version

Verfasst: 18.12.2006 13:33
von Kiffi
startspieler hat geschrieben:Leider habe ich eine ganz alte Version 3.30
schreib das bitte in Deine Signatur.

Grüße ... Kiffi

Verfasst: 18.12.2006 14:08
von #NULL
wenn du es mit konstanten machst, wie ts-soft gezeigt hat, mußt du aber natürlich darauf achten, dass du eine konstante verwendest, die du noch nicht für ein anderes sprite benutzt. der compiler wird dir das nicht sagen, mußt du also selbst sicherstellen.

Verfasst: 18.12.2006 14:36
von AND51
Game Photographer (Freeware) kann per Knopfdruck einen einzelnen Screenshot machen oder eine Serie von Screenshots (z. B. alle 0.5 Sekunden, einstellbar).

Verfasst: 18.12.2006 17:21
von Kaeru Gaman
was ist mit "NNS screenshot"... kann es sowas?
voreingestellt werden, um ohne dialog per tastendruck einen fremden DX-Screen zu knipsen?
..wenn nicht, wärs ne anregung fürs nächste release..

aber wenn startspieler das für eigene games braucht, ist es eh besser,
das auszufutzeln wie's funktioniert.

[EDIT]
da ich die V3.30 noch drauf hab, hab ich mal rumprobiert.

Code: Alles auswählen

InitSprite()
InitKeyboard()
OpenScreen(800,600,32,"bla")
SetFrameRate(60)
Repeat
  ExamineKeyboard()
  ClearScreen(12,24,48)
  StartDrawing(ScreenOutput())
    FrontColor(255,240,128)
    For n=0 To 100
      Plot(Random(800),Random(600))
    Next
  StopDrawing()
  If KeyboardReleased(#PB_Key_F12) 
    GrabSprite(0, 0,0, 800,600) 
    SaveSprite(0, "C:\screenshot001.bmp") 
  EndIf
  FlipBuffers()
Until KeyboardPushed(#pb_key_escape)
so funktionierts.

wie #NULL sagte, die spritenummer, die du für den screenshot verwendest, sollte natürlich nicht für ein anderes sprite schon benutzt worden sein...

Verfasst: 18.12.2006 17:52
von ZeHa
Jo, am besten hierfür eine #Screenshot-Konstante anlegen oder so...

Klappt manchmal ... und manchmal nicht :-)

Verfasst: 18.12.2006 18:10
von startspieler
Hallo,

erstmal vielen Dank für die vielen Tipps.
Habe es mal versucht und merkwürdiger Weise funktioniert
es bei zwei Spielen ganz wunderbar ( Screenshot liegt vor )
bei anderen Spielen wiederrum nicht.

Werde wohl noch etwas herumprobieren müssen.
Bisher habe ich es immer in den Bereich der Tasturbelegung
gelegt.

Code: Alles auswählen

If KeyboardPushed(#PB_Key_Escape)                    
   End                                            
   EndIf
If KeyboardPushed(#PB_Key_F12) 
  GrabSprite(20,0,0,800,600,0) 
  SaveSprite(20, "C:\Dokumente und Einstellungen\M.Fuchs\Eigene Dateien\Screenshot\screenshot001.bmp") 
  EndIf
ForEver 
Gruß
Michael

code-tags gesetzt. bitte in zukunft selber dran denken.
modedit - Kaeru fecit