Image länger auf dem bildschirm lassen? [Gelöst]

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Alkan

Betreff: Image länger auf dem bildschirm lassen? [Gelöst]

BeitragDi, Jan 12, 2010 18:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo liebe Beitrag leser!
Ich hätte mal wieder eine Frage, nähmlich:
Wie kann ich dass Image länger auf dem Bildschirm lassen?
Ich hab leider nichts dazu gefunden Sad Crying or Very sad
Ich hab diesen Code geschrieben:
Code: [AUSKLAPPEN]
Global beenden=LoadImage("GFX\beenden.bmp")
später:
Code: [AUSKLAPPEN]
mh1=MouseHit(1)
mh2=MouseHit(2)
mx=MouseX()
my=MouseY()
dannach:
Code: [AUSKLAPPEN]
If mh1 Then
If (mx >412)And(mx <612)Then
If (my >610)And(my <700)Then
ende()
EndIf
EndIf
EndIf
und zuletzt:
Code: [AUSKLAPPEN]
Function ende()
DrawImage beenden,0,0
End Function
und das image bleibt nur für eine sehr kurze zeit auf dem bildschirm! Evil or Very Mad
Ich habe auch schon repeat , delay versucht!
Ich hoffe ihr könnt mir helfen Very Happy
Danke im voraus!
MfG
Alkan


Edit:Midimaster hat folgendes geschrieben:
Code: [AUSKLAPPEN]
Function Ende()
Local Zeit%=MilliSecs() + 5*1000
DrawImage Beenden,0,0
Repeat
If MilliSecs() > Zeit Then Exit
Until KeyHit(1)
End Function

Das funktioniert aber nicht , dann wartet der 5 sek. und teichnet dann das bild wieder nur für kurze zeit!

Edit2:ah jetzt funktioniert es!
Danke an euch allen!
MfG
Alkan
Hauptrechner: Win7 Ultimate x64|AMD Phenom II X4 965 BlackEdition 4x3.4GHz|4 GB DualKit DDR3-1600 Ram|1.5 TB Samsung EcoGreen|Cougar CM 700Watt|ASRock M3A790GFX/120M|Nvidia GeForce 9500GT|Ati Radeon HD3300(Onboard-Deaktiviert)
Server(früher Hauptrechner): Ubuntu 9.1 x86|Intel P4 HT 3GHz|Ati Radeon X600Pro|200 GB HDD
Worklog: Planetensimulation
Homepage(Under Construction): alkan96.dyndns.org
Wenn schon falsch, dann richtig falsch.
  • Zuletzt bearbeitet von Alkan am Di, Jan 12, 2010 19:05, insgesamt 3-mal bearbeitet

jokerman29

BeitragDi, Jan 12, 2010 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
hhmm... ein bisschen verrwirrend:
If mh1 Then
If (mx >412)And(mx <612)Then
If (my >610)And(my <700)Then
ende()
EndIf
EndIf
EndIf

beweg mal die haus zwischen 415(x), 612(x), 610(y) und 700 (y), weil das bild (beenden) wird ja nur gezeichnet, wenn die maus direkt dazwischen ist...
hoffentlich hilft dir das Wink
mfg
jokerman29
WhY sO sErIoUs? LeT´s PuT a SmIlE oN tHaT fAcE!

Rechtschreibfehler sind special-effekts meiner Tastatur Wink

Starwar

BeitragDi, Jan 12, 2010 18:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo und willkommen.
Du machst eine zweite "Hauptschleife" (also Cls, DrawImage, Flip) in die Ende-Funktion. Die lässt du so lange laufen, wie du das Bild anzeigen willst.
Vor der schleife speicherst du MilliSecs und holst es dir jeden Durchlauf nochmal. Den Startwert mit dem aktuellen wer vergleichen und wenn die Differenz einen bestimmten Wert überschreitet, verlässt du die Schleife.
MFG

Midimaster

BeitragDi, Jan 12, 2010 18:56
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function Ende()
Local Zeit%=MilliSecs() + 5*1000
DrawImage Beenden,0,0
Repeat
If MilliSecs() > Zeit Then Exit
Until KeyHit(1)
End Function

Starwar

BeitragDi, Jan 12, 2010 19:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja, so gehts.
Aber: Es ist nicht gut den Inhalt nicht laufend zu aktualisieren. Jedenfalls nicht. Der Buffer kann leicht von Windows (Alt-Tab/Win+D) überschrieben werden. Vondaher:
Code: [AUSKLAPPEN]
Function Ende()
   Local Zeit%=MilliSecs() + 5*1000
   Repeat
      Cls
      If MilliSecs() > Zeit Then Exit
      DrawImage Beenden,0,0
      Flip
   Until KeyHit(1)
End Function

MFG

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group