Text ersetzen & Frage zur Eingabe (Tastatur oder Maus)
Übersicht

neoleinBetreff: Text ersetzen & Frage zur Eingabe (Tastatur oder Maus) |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Guten Morgen,
1. Ich hoffe das ist eine einfache Anfängerfrage, wie lautet der Befehl, wenn ich einen Text and die Stelle eines anderen setzen will, also z.B. ein Countdown o.ä. 2. Das Zweite ist schon unangenehmer, wenn ich z.B. aus einer Schleife mit einem Mausklick oder bei Input auf eine bestimmte Taste warte, damit das Programm weitergeht (oder sich wiederholt), dann löst diese Aktion meistens noch andere Vorgänge aus, die ich gar nicht haben möchte. Z.B. Repeat Until KeyHit(14) bewirkt, daß ich bei drücken der Leertaste zwar die Schleife verlasse, aber der Corsor bei der nächsten Halteposition um eine Stelle vorrückt; oder If Keyhit(2) Exit, daß bei der nächsten Eingabeaufforderung 1 steht. Mit anderen Worten: der Speicher merkt sich, was ich z.B. falsch gedrückt habe, druckt aber das Falsche nach Betätigung der richtigen Taste aus. Bei MouseHit() ist es ähnlich, will ich z.B. mit der linken Taste lediglich eine Schleife verlassen oder ein Programm fortführen, wird diese Aktion an der nächsten Stelle, an der ein Mausklick gefordert wird, ausgeführt. Gibt es sowas, wie ein Deaktivierungbefehl? Danke, Christian |
||
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke, und danke für den Hinweis, habe Robs Kurs rauf und runter gelesen, aber wahrscheinlich mal wieder nach den falschen Stichwörtern gesucht ![]() |
||
![]() |
ThunderBetreff: Re: Text ersetzen & Frage zur Eingabe (Tastatur oder Mau |
![]() Antworten mit Zitat ![]() |
---|---|---|
neolein hat Folgendes geschrieben: Guten Morgen,
1. Ich hoffe das ist eine einfache Anfängerfrage, wie lautet der Befehl, wenn ich einen Text and die Stelle eines anderen setzen will, also z.B. ein Countdown o.ä. Falls deine 1.Frage schon durch den Kurs beantwortet ist brauchst du dir das nicht durchlesen. Ich hätte das so gemacht: ![]() Text 0,0, "Hallo" cls Text 0,0,"Ciao" |
||
Meine Sachen: https://bitbucket.org/chtisgit https://github.com/chtisgit |
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi Thunder,
damit geht es natürlich, allerdings lösche ich damit auch gleich Alles, was ich auf meinem Bidschirm abgebildet habe,also z.B. Grafiken, Zahlen, Schriften etc. aber korrigier mich, wenn das nicht stimmt |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dein Programm läuft in einer Schleife. Oder sollte das, besser gesagt.
In jedem Schleifendurchlauf wird alles neu gezeichnet. Wenn Du dann also einen Text ersetzen oder löschen willst, geschieht das automatisch, da ja nur der aktuelle Inhalt gezeichnet wird. Beispiel: Code: [AUSKLAPPEN] graphics 640,480
setbuffer backbuffer() repeat if keyhit(57) then ;Leertaste gedrueckt? status = 1 - status endif if status text 0,0,"Ausgabe 1" else text 0,0,"Ausgabe 2" endif flip cls until keyhit(1) |
||
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 |
DarkDragon-1993 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Stimmt schon, aber wenn du alles mit Doubble Buffering machst, könntest du dem Countdown einer Variablen zuweisen, alles in der Schleife malen und jedes Mal, wenn es gelöscht wird, wird alles wieder gemalt und der neue Text des Timers wird durch das verändern der Variable auch anders gestallten.
Hoffe, du blickst da durch, ich tus irgendwie nicht mehr. mfG - DarkDragon-1993 |
||
neolein |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Blade,
ich verstehe zwar was du meinst, aber wenn ich meinetwegen ein Brettspiel programmiere, was im Moment der Fall ist, dann läuft im ersten Teil der Schleife ein aufwendiges Rechenprogramm, was zu einem neuen Layout des Brettes führt, meinetwegen sinds jetzt 20 Figuren anstatt 15. So müßte ich bei jedem Durchlauf der Schleife meine Rechenoperation nochmals durchführen lassen, z.B. ist doch Schach so ein Bespiel, sagen wir unter dem Brett ist ein Timer, der die Zeit in Sekundenschritte rückwärts anzeigt, heißt das, daß das Brett jede Sekunde neu gezeichnet werden muß? Ich könnte zwar den Bildspeicher irgendwo ablegen, aber mit jedem Durchlauf wird das Spiel neu gestartet. In Omikron Basic (Atari) hatte ich damals dieses Problem nicht, der Text wurde einfach ersetzt, wenn ich ihn an die selbe Stelle geschrieben habe, in Blitzbasic wird der Text, visuell, übereinander gestapelt. |
||
![]() |
BladeRunnerModerator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ja, das Brett wird bis idR 60 mal in der Sekunde neugezeichnet, was auch kein Problem ist - das geht Rucki-zucki. Es ist aufwändiger sich irgendwelche anderen Methoden aus den Rippen zu leiern um Teile zu löschen oder zu ersetzen.
Deine Spiellogik musst Du ja nicht - falls sie so aufwändig ist- in jedem Durchlauf der Schleife berechnen lassen, hier ist es ja möglich mit Schaltervariablen oder Timern zu arbeiten. Beispiel Code: [AUSKLAPPEN] if time < millisecs()+1000 then time = millisecs()+1000 text 0,10,"ich werde nur einmal pro sekunde aufgerufen!" endif Bau das einfach mal im obigen Code in der Repeat mit ein, du wirst sehen das einmal pro Sekunde kurz der Text aufflimmert. |
||
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 |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group