Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Mein erstes Spiel ... flakkert leider immer

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Patrick-Ratz



Anmeldungsdatum: 22.12.2008
Beiträge: 34

BeitragVerfasst am: 15.02.2010, 19:50    Titel: Mein erstes Spiel ... flakkert leider immer Antworten mit Zitat

Hallo ,
da ich mir mal gedacht habe, ein einfaches spiel zu schreiben
habe ich es in die tat umgesetzt happy doch leider stehe ich jetzt
vor ein Problem: Mein Spiel flackert leider immer , wenn ich mein
player steuer


Code:

CLS

x = 5
y = 5

PRINT "----------------------------"
PRINT "-                                -"
PRINT "-                                -"
PRINT "-                                -"
PRINT "-                                -"
PRINT "----------------------------"

1
CLS
LOCATE (x,y)
PRINT  CHR$(1)

DO:
taste$ = INKEY$:

LOOP WHILE taste$ = ""

IF taste$ = CHR$(0) + CHR$(72) THEN
x = x+1
goto 1
END IF

IF taste$ = CHR$(0) + CHR$(80) THEN
x = x-1
goto 1
END IF

IF taste$ = CHR$(0) + CHR$(75) THEN
y = y+1
goto 1
END IF


IF taste$ = CHR$(0) + CHR$(77) THEN
y = y-1
goto 1
END IF



-> also steuerbar über pfeiltasten

und nun die frage: gibt es eine möglichkeit, dass nicht alles
über CLS gelöscht wird ???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 15.02.2010, 19:56    Titel: Antworten mit Zitat

Du kannst z. B. nur die alte Stelle (x,y) mit einem Leerzeichen überschreiben.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick-Ratz



Anmeldungsdatum: 22.12.2008
Beiträge: 34

BeitragVerfasst am: 15.02.2010, 20:15    Titel: Antworten mit Zitat

neutral - mir ist aufgefallen, dass das problem nur erscheint , wenn ich
screen (bei mir 12)... einfüge
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 15.02.2010, 22:28    Titel: Antworten mit Zitat

Kann sein, dass das Löschen und Neubeschreiben im reinen Textmodus so schnell geht, dass es nicht mehr auffällt. Trotzdem würde ich nur dann den kompletten Bildschirm löschen, wenn es nötig ist. Oft reicht das Löschen des betreffenden Ausschnitts.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick-Ratz



Anmeldungsdatum: 22.12.2008
Beiträge: 34

BeitragVerfasst am: 16.02.2010, 00:32    Titel: Antworten mit Zitat

geschockt wie geht den sowas ???

ich habe schon offt darüber nachgedacht aber mann kann doch nicht einfach
eine function schreiben die sowas kann - beispiel:

ab goto 1 cls
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
nemored



Anmeldungsdatum: 22.02.2007
Beiträge: 4700
Wohnort: ~/

BeitragVerfasst am: 16.02.2010, 00:48    Titel: Antworten mit Zitat

nemored hat Folgendes geschrieben:
Du kannst z. B. nur die alte Stelle (x,y) mit einem Leerzeichen überschreiben.

Code:
IF taste$ = CHR$(0) + CHR$(80) THEN
locate x, y
print " "
x = x-1
goto 1
END IF

Allerdings ist die ganze GOTO-Konstruktion nicht die bestmögliche.
_________________
Deine Chance beträgt 1:1000. Also musst du folgendes tun: Vergiss die 1000 und konzentriere dich auf die 1.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Patrick-Ratz



Anmeldungsdatum: 22.12.2008
Beiträge: 34

BeitragVerfasst am: 16.02.2010, 09:53    Titel: Antworten mit Zitat

zwinkern leue ihr macht euern job SPITZE !!!
jetzt brauch ich auch nicht mehr jeden "DOT" einzeln löschen
DANKE !

für andere anfänger hier mein code ...
Code:

CLS
x = 5
y = 5

PRINT "-----------------------"
PRINT "|                           |"
PRINT "|                           |"
PRINT "|                           |"
PRINT "|                           |"
PRINT "|                           |"
PRINT "|                           |"
PRINT "-----------------------"
1

LOCATE x, y

PRINT CHR$(1)

DO:
taste$ = INKEY$:
LOOP WHILE taste$ = ""

IF taste$ = CHR$(0) + CHR$(80) THEN
LOCATE x, y
PRINT " "
x = x + 1
GOTO 1
END IF


IF taste$ = CHR$(0) + CHR$(72) THEN
LOCATE x, y
PRINT " "
x = x - 1
GOTO 1
END IF

IF taste$ = CHR$(0) + CHR$(77) THEN
LOCATE x, y
PRINT " "
y = y + 1
GOTO 1
END IF


IF taste$ = CHR$(0) + CHR$(75) THEN
LOCATE x, y
PRINT " "
y = y - 1
GOTO 1
END IF



... und collsion müsst ihr euch gedanken zu machen ...

ich sag nur if x = 2 then x =3
... lachen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz