Bilder durch tastendruck ausblenden

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

aimheld

Betreff: Bilder durch tastendruck ausblenden

BeitragSa, Feb 17, 2007 18:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin !
Eigentlich wollte ich ja nicht wegen jedem kleinen problem um hilfe bitten, und die ganzen sachen selbst herausfinden, aber als anfänger kommt man wohl um ein bisl unterstützung nicht herum Wink

Zum thema.
Ich würde gerne durch tastendruck (escape) ein Bild hervorrufen lassen, zb eins wo draufsteht "möchten sie das programm beenden? ". Durch die j taste beendet man das programm, durch die n taste kommt man wieder in das spiel zurück. In der zeit wo das bild eingeblendet wird, pausiert das spiel.
Mein problem liegt darin, das ich es noch nicht geschafft habe, das bild durch die n taste auszublenden, und das spiel weiterlaufen zu lassen.

Ich hoffe ihr versteht was ich meine, und könnt mir helfen.

MfG
aimheld
 

Schnuff

BeitragSa, Feb 17, 2007 19:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
if keyhit(1) then
  repeat
    drawimage pausebild,640,480
    flip
    cls
    if keyhit(36) then end
  until keyhit(49)
endif

meinst du sowas?

Edit: mit den Variablen, die auf millisecs basieren, musst du natürlich noch einen counter davor bauen, und einen dahinter, damit du die zeit weist, die in disem menu verschwendet wurden
Programmers dont die. They gosub without return...
 

aimheld

BeitragMi, Feb 21, 2007 10:28
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,
sry für die verspätete antwort.
Ich habe den code mal probiert, aber leider hat das nicht so ganz hingehauen.
Ich habe den so eingebunden

Code: [AUSKLAPPEN]
Graphics 640,480,16,2
SetBuffer BackBuffer()

beenden = LoadImage("beenden.bmp")

Repeat

If KeyHit(1) Then
  Repeat
    DrawImage beenden,200,200
    Cls
    Flip
    If KeyHit(36) Then End
  Until KeyHit(49)
EndIf



Until KeyHit(88)
End


Wenn ich das so mache, kommen viele fehler, wie zum beispiel das das ganze system ruckelt, wenn man esc drückt, oder das das programm zwar mit j beendet wird, mit n das bild aber bestehen bleibt.

Ich hoffe ihr könnt mir da nochmal bei helfen Wink

MfG
aimheld

BladeRunner

Moderator

BeitragMi, Feb 21, 2007 11:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Bild bleibt bestehen: Du hast in deiner Mainloop weder ein Flip noch ein Cls, also wird alles beibehalten was im Buffer war, somit auch das Beenden-Bild.
Ergänze deine Hauptschleife um die Beiden Befehle und es wird besser laufen

Ruckeln: Schau Dir den gegebenen Code und Deinen nochmal genau an. Du hast 2 Befehle vertauscht- und deswegen ruckelt es. Es wäre jetzt nett wenn Du mir sagen würdest warum es dann ruckelt, denn das würde zeigen dass Du es nicht nur änderst sondern dir auch Gedanken darum machst warum es nur andersrum sinnvoll ist.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

aimheld

BeitragMi, Feb 21, 2007 13:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Ahh danke BladeRunner ^^

Ich habe mal ein bisschen über die frage, warum es ruckelt nachgedacht, aber ich kann die antwort nur schätzen, weil mir, denk ich mal, noch das richtige verständniss dafür fehlt. Ich bin noch nicht so richtig in die Materie eingearbeitet.
Ich denke aber mal, es liegt daran, das er in dem falschen code, den Bildschirm gelöscht hat, noch bevor er das Bild richtig anzeigen konnte. Und wenn er immer wieder den Bildschirm löscht, bevor er das Bild anzeigt, lastet das das system ziemlich aus.

Dabei denke ich doch aber, da in der Hauptschleife das cls vor dem flip steht, und die Bilder da problemlos angezeigt werden, kann das auch nicht so richtig stimmen.

Verwirrent ^^ zumindestens für mich, ich denke mal ihr steigt da locker durch.

Smily

BeitragMi, Feb 21, 2007 13:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuch einfach mal logisch zu denken und im Kopf schritt für schritt nach zu vollziehen, was dein Programm macht.

Gruß, Smily0412
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

StepTiger

BeitragMi, Feb 21, 2007 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ein cls direkt vor dem flip steht, ohne dazwischen etwas zu malen, sieht man schwarz. Ein PC macht das, was man ihm sagt. Nicht das, was man erwartet.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

BladeRunner

Moderator

BeitragMi, Feb 21, 2007 13:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
setbuffer backbuffer() ;es wird immer auf den nicht sichtbaren Buffer gezeichnet
repeat ; ab nun wird wiederholt

cls ;der Buffer wird gelöscht

drawimage bla,... ;nun wird er mit der aktuellen Zeichnung befüllt

flip ; Das gezeichnete wird sichtbar gemacht, das alte Bild wird zum unsichtbaren gemacht
until keyhit (1) ; solange wiederholen bis escape gedrückt wurde

Deine Vermutung war also schon im wesentlichen korrekt. Die Reihenfolge spielt hier eine wichtige Rolle. Wenn Du das bild löschst bevor es eingezeichnet wird siehst du nur schwarz, und das sorgt für die Flackererei.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Smily

BeitragMi, Feb 21, 2007 13:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm schade und ich dachte schon ich könnte den User mal dazu bewegen selber zu erkennen, was er genau falsch gemacht hat.

:/
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

BladeRunner

Moderator

BeitragMi, Feb 21, 2007 13:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
ich denke aber mal, es liegt daran, das er in dem falschen code, den Bildschirm gelöscht hat, noch bevor er das Bild richtig anzeigen konnte. Und wenn er immer wieder den Bildschirm löscht, bevor er das Bild anzeigt, lastet das das system ziemlich aus.


Er hatte den Fehler ja schon erkannt und war sich nutr nicht sicher ob seine Analyse stimmte.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

aimheld

BeitragMi, Feb 21, 2007 14:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Hauptsache ist ich hab den fehler verstanden, und da man aus fehlern lernt wird das wohl nicht noch mal ein problem werden Wink

Vielen dank an euch allen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group