 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 08:38 Titel: Ping Pong |
|
|
Hi,
bin noch zimlich neu bei qbasic, habe aber schon ein paar lustige Programme, wie Quiz, Text-Adventure oder etwas in der art......naja jetzt wollte ich halt mal nen Grafik-Spiel machen, deswegen hab ich halt mal eine art Ping Pong gemacht....nur irgendwie is da ein Fehler drin (' ')
weinen, der Ball fliegt irgendwo zufällig lang und fliegt im Zickzack rum, warum das so is weiß ich leider nich und deswegen hab ich jetzt halt mal das Programm ins Forum gestellt:
a = 150
b = 160
c = 165
d = 157
e = 100
f = 150
g = 165
h = 10
10 SCREEN 1
DO
T$ = INKEY$
IF T$ = CHR$(108) THEN 70
IF T$ = CHR$(106) THEN 60
IF T$ = CHR$(27) THEN END
IF T$ = CHR$(100) THEN 30
IF e = b AND d > a < c THEN 150
CLS
e = e + 1
LINE (f, h)-(g, h)
LINE (d, e)-(d, e)
LINE (a, b)-(c, b)
Z = .01
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL T$ = CHR$(97)
20 a = a - 3
c = c - 3
GOTO 10
30 a = a + 3
c = c + 3
GOTO 10
60 f = f - 3
g = g - 3
GOTO 10
70 f = f + 3
g = g + 3
GOTO 10
40 SCREEN 1
DO
U$ = INKEY$
IF U$ = CHR$(108) THEN 90
IF U$ = CHR$(106) THEN 80
IF U$ = CHR$(27) THEN END
IF U$ = CHR$(100) THEN 50
CLS
IF e = 10 AND d > f < h THEN 10
e = e - 1
LINE (f, h)-(g, h)
LINE (d, e)-(d, e)
LINE (a, b)-(c, b)
Z = .01
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL U$ = CHR$(97)
a = a - 3
c = c - 3
GOTO 40
50 a = a + 3
c = c + 3
GOTO 40
80 f = f - 3
g = g - 3
GOTO 40
90 f = f + 3
g = g + 3
GOTO 40
100 SCREEN 1
DO
V$ = INKEY$
IF V$ = CHR$(108) THEN 130
IF V$ = CHR$(106) THEN 120
IF V$ = CHR$(27) THEN END
IF V$ = CHR$(100) THEN 110
CLS
IF e = 10 AND d > f < h THEN 10
e = e - 1
d = d - 1
LINE (f, h)-(g, h)
LINE (d, e)-(d, e)
LINE (a, b)-(c, b)
Z = .01
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL T$ = CHR$(97)
a = a - 3
c = c - 3
GOTO 10
110 a = a + 3
c = c + 3
GOTO 10
120 f = f - 3
g = g - 3
GOTO 10
130 f = f + 3
g = g + 3
GOTO 10
150 Zufall1 = INT(3 * RND(1)) + 1
IF Zufall1 = 1 THEN 40
IF Zufall1 = 2 THEN 100
IF Zufall1 = 3 THEN 100
Kann mir bitte jemand helfen und sagen wo der Fehler liegt????  |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 07.05.2005, 09:02 Titel: |
|
|
Bittte Bitte nimm die Ganzen GOTOS raus das is ja furchbar  _________________ www.piratenpartei.de |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 09:09 Titel: |
|
|
Öhm...tja wenn du mir sagen könntest wie ich dann das Programm zum laufen kriegen könnte? ohne goto geht da gar nichts........wie gesagt....ich bin noch Anfänger und habe keine Ahnung wie ich das anders machen kann  |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 07.05.2005, 09:20 Titel: |
|
|
Hier mal eine kleine Demo zu einem bewegten Ball, der immer am Rand des Bildschrimes um 45° abprallt.
Code: |
SCREEN 7, , 0, 1
x = 100
y = 100
xs = 1
ys = 1
DO
x = x + xs
y = y + ys
IF x >= 320 OR x <= 0 THEN xs = -xs
IF y >= 200 OR y <= 0 THEN ys = -ys
CIRCLE (x, y), 10, 10
PCOPY 0, 1
CLS
LOOP
|
Des Weiteren kann ich Devilkevin nur beipflichten; versuch mal die ganzen
GOTOs rauszukriegen.
Anstatt
Code: |
IF U$ = CHR$(108) THEN 90
[...]
90 f = f + 3
g = g + 3
GOTO 40
|
könntest du z.B.
Code: |
IF U$ = CHR$(108) THEN
f = f + 3
g = g + 3
END IF
|
schreiben.
jb |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 10:13 Titel: |
|
|
Es funkt Danke  |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 10:22 Titel: |
|
|
Tja....mhhh ich habe mir nochmal dein programm mit dem ball genauer angeschaut, jb, und dazu hätte ich noch ein paar fragen:
1. Was macht der Unterschied zwischen den verschiedenen Screens(ich habe bis jetzt immer nur Screen 1 verwendet)
2. Wofür sind die Kommas und die Zahlen hinter screen 7?
3. Was sind das für Zahlen hinter dem CIRCLE (x,y)?
4. Was bringt das PCOPY 0,1?
Bitte antworte möglichst früh |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 10:23 Titel: |
|
|
Ach noch was
5. Warum ist der Ball grün??? |
|
Nach oben |
|
 |
Devilkevin aka Kerstin

Anmeldungsdatum: 11.11.2004 Beiträge: 2532 Wohnort: nähe Mannheim
|
Verfasst am: 07.05.2005, 10:33 Titel: |
|
|
NixAhnung hat Folgendes geschrieben: | Tja....mhhh ich habe mir nochmal dein programm mit dem ball genauer angeschaut, jb, und dazu hätte ich noch ein paar fragen:
1. Was macht der Unterschied zwischen den verschiedenen Screens(ich habe bis jetzt immer nur Screen 1 verwendet)
Screen 0 ist der Textscreen, alle anderen sind Grafik Screens, es gibt insgesamt 13 Screens. Am besten für Grfaiken geignet sind Screen 9, 12, und 13.
3. Was sind das für Zahlen hinter dem CIRCLE (x,y)?
CIRCLE (250, 250), 50, 4
Die 250 sind die Kordinaten, 50 ist der Radius und 4 ist die Farbe.
Die Zahlen kann man natürlich auch durch Variablen ersetzen, wie jb es mit den Kordinaten gemacht hat.[/b]
Schau mal oben rechts da gibts nen tollen Edit Button
Bitte antworte möglichst früh |
_________________ www.piratenpartei.de |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 10:37 Titel: |
|
|
Ok danke   jetzt gibts nur noch die frage wofür das PCOPY is..... |
|
Nach oben |
|
 |
Jan

Anmeldungsdatum: 04.01.2005 Beiträge: 74
|
Verfasst am: 07.05.2005, 11:01 Titel: |
|
|
Ich würde dir auch empfehlen aussagekräftigere Variablennamen zu nehmen.
Denn bei a, b, c ... weißt nur du, was du meinst. Und nach ein paar Wochen haste das dann selbst auch vergessen. |
|
Nach oben |
|
 |
NixAhnung
Anmeldungsdatum: 07.05.2005 Beiträge: 37
|
Verfasst am: 07.05.2005, 11:32 Titel: |
|
|
So.....habe jetzt mal den Fehler behoben......ist zwar noch ohne Punkte und so, aber immer noch mit goto *g*
a = 150
b = 160
c = 165
d = 157
e = 100
f = 150
g = 165
h = 10
ds = 1
10 SCREEN 7
DO
T$ = INKEY$
IF T$ = CHR$(108) THEN 70
IF T$ = CHR$(106) THEN 60
IF T$ = CHR$(27) THEN END
IF T$ = CHR$(100) THEN 30
e = e + 1
IF e = b AND d > a THEN 150
CLS
IF d > 320 OR d < 0 THEN ds = -ds: SOUND 39, 2
LINE (f, h)-(g, h), 1
CIRCLE (d, e), 1, 4
LINE (a, b)-(c, b), 1
Z = .001
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL T$ = CHR$(97)
20 a = a - 3
c = c - 3
GOTO 10
30 a = a + 3
c = c + 3
GOTO 10
60 f = f - 3
g = g - 3
GOTO 10
70 f = f + 3
g = g + 3
GOTO 10
40 SCREEN 7
DO
U$ = INKEY$
IF U$ = CHR$(108) THEN 90
IF U$ = CHR$(106) THEN 80
IF U$ = CHR$(27) THEN END
IF U$ = CHR$(100) THEN 50
CLS
e = e - 1
IF e = h AND d > f THEN 170
LINE (f, h)-(g, h), 1
CIRCLE (d, e), 1, 4
LINE (a, b)-(c, b), 1
Z = .001
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL U$ = CHR$(97)
a = a - 3
c = c - 3
GOTO 40
50 a = a + 3
c = c + 3
GOTO 40
80 f = f - 3
g = g - 3
GOTO 40
90 f = f + 3
g = g + 3
GOTO 40
100 SCREEN 7
DO
V$ = INKEY$
IF V$ = CHR$(108) THEN 130
IF V$ = CHR$(106) THEN 120
IF V$ = CHR$(27) THEN END
IF V$ = CHR$(100) THEN 110
CLS
e = e - 1
d = d - ds
IF e = h AND d > f THEN 160
IF d > 320 OR d < 0 THEN ds = -ds: SOUND 39, 2
LINE (f, h)-(g, h), 1
CIRCLE (d, e), 1, 4
LINE (a, b)-(c, b), 1
Z = .001
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL T$ = CHR$(97)
a = a - 3
c = c - 3
GOTO 100
110 a = a + 3
c = c + 3
GOTO 100
120 f = f - 3
g = g - 3
GOTO 100
130 f = f + 3
g = g + 3
GOTO 100
180 SCREEN 7
DO
T$ = INKEY$
IF T$ = CHR$(108) THEN 210
IF T$ = CHR$(106) THEN 200
IF T$ = CHR$(27) THEN END
IF T$ = CHR$(100) THEN 190
e = e + 1
d = d + ds
IF e = b AND d > a THEN 150
CLS
IF d > 320 OR d < 0 THEN ds = -ds: SOUND 39, 2
LINE (f, h)-(g, h), 1
CIRCLE (d, e), 1, 4
LINE (a, b)-(c, b), 1
Z = .001
T = TIMER
DO WHILE NOT T + Z <= TIMER: LOOP
LOOP UNTIL T$ = CHR$(97)
a = a - 3
c = c - 3
GOTO 10
190 a = a + 3
c = c + 3
GOTO 10
200 f = f - 3
g = g - 3
GOTO 10
210 f = f + 3
g = g + 3
GOTO 10
150 IF d > c THEN 10
SOUND 39, 2
Zufall1 = INT(3 * RND(1)) + 1
IF Zufall1 = 1 THEN 40
IF Zufall1 = 2 THEN 100
IF Zufall1 = 3 THEN 100
160 IF d > g THEN GOTO 100
SOUND 39, 2
Zufall2 = INT(2 * RND(1)) + 1
IF Zufall2 = 1 THEN 10
IF Zufall2 = 2 THEN 180
170 IF g > d THEN SOUND 39, 2: GOTO 10
GOTO 40
PS: Steuerung für den unteren Spieler:Links=a und Rechts=d
Steuerung für den oberen Spieler:Links=j und Rechts=l |
|
Nach oben |
|
 |
LostTime
Anmeldungsdatum: 23.04.2005 Beiträge: 13 Wohnort: Hannover
|
Verfasst am: 07.05.2005, 12:36 Titel: |
|
|
Warum Spieler oben/unten?
Ich würde die Spieler nach rechts und links verlegen... _________________ Datensalat enthält Vitamin C++ |
|
Nach oben |
|
 |
jb

Anmeldungsdatum: 14.01.2005 Beiträge: 2010
|
Verfasst am: 09.05.2005, 15:40 Titel: |
|
|
Zu deiner Frage mit PCOPY:
Schau mal hier im Forum nach.
jb |
|
Nach oben |
|
 |
|
|
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.
|
|