Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Patrick-Ratz
Anmeldungsdatum: 22.12.2008 Beiträge: 34
|
Verfasst am: 15.02.2010, 19:50 Titel: Mein erstes Spiel ... flakkert leider immer |
|
|
Hallo ,
da ich mir mal gedacht habe, ein einfaches spiel zu schreiben
habe ich es in die tat umgesetzt 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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 15.02.2010, 19:56 Titel: |
|
|
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 |
|
 |
Patrick-Ratz
Anmeldungsdatum: 22.12.2008 Beiträge: 34
|
Verfasst am: 15.02.2010, 20:15 Titel: |
|
|
- mir ist aufgefallen, dass das problem nur erscheint , wenn ich
screen (bei mir 12)... einfüge |
|
Nach oben |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 15.02.2010, 22:28 Titel: |
|
|
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 |
|
 |
Patrick-Ratz
Anmeldungsdatum: 22.12.2008 Beiträge: 34
|
Verfasst am: 16.02.2010, 00:32 Titel: |
|
|
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 |
|
 |
nemored

Anmeldungsdatum: 22.02.2007 Beiträge: 4700 Wohnort: ~/
|
Verfasst am: 16.02.2010, 00:48 Titel: |
|
|
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 |
|
 |
Patrick-Ratz
Anmeldungsdatum: 22.12.2008 Beiträge: 34
|
Verfasst am: 16.02.2010, 09:53 Titel: |
|
|
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
...  |
|
Nach oben |
|
 |
|