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:

Ping Pong

 
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
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 08:38    Titel: Ping Pong Antworten mit Zitat

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')
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???? weinen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 07.05.2005, 09:02    Titel: Antworten mit Zitat

Bittte Bitte nimm die Ganzen GOTOS raus das is ja furchbar durchgeknallt
_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 09:09    Titel: Antworten mit Zitat

Ö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 mit dem Kopf durch die Mauer wollen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 07.05.2005, 09:20    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 10:13    Titel: Antworten mit Zitat

Es funkt Danke lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 10:22    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 10:23    Titel: Antworten mit Zitat

Ach noch was grinsen

5. Warum ist der Ball grün???
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Devilkevin
aka Kerstin


Anmeldungsdatum: 11.11.2004
Beiträge: 2532
Wohnort: nähe Mannheim

BeitragVerfasst am: 07.05.2005, 10:33    Titel: Antworten mit Zitat

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 zwinkern

Bitte antworte möglichst früh

_________________
www.piratenpartei.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 10:37    Titel: Antworten mit Zitat

Ok danke lächelnlächelnlächeln jetzt gibts nur noch die frage wofür das PCOPY is.....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jan



Anmeldungsdatum: 04.01.2005
Beiträge: 74

BeitragVerfasst am: 07.05.2005, 11:01    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
NixAhnung



Anmeldungsdatum: 07.05.2005
Beiträge: 37

BeitragVerfasst am: 07.05.2005, 11:32    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
LostTime



Anmeldungsdatum: 23.04.2005
Beiträge: 13
Wohnort: Hannover

BeitragVerfasst am: 07.05.2005, 12:36    Titel: Antworten mit Zitat

Warum Spieler oben/unten?
Ich würde die Spieler nach rechts und links verlegen...
_________________
Datensalat enthält Vitamin C++
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
jb



Anmeldungsdatum: 14.01.2005
Beiträge: 2010

BeitragVerfasst am: 09.05.2005, 15:40    Titel: Antworten mit Zitat

Zu deiner Frage mit PCOPY:

Schau mal hier im Forum nach.

jb
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
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