|
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 |
cyberkeks
Anmeldungsdatum: 19.02.2007 Beiträge: 18
|
Verfasst am: 22.02.2007, 15:14 Titel: v0.16 und v0.17 des Compilers schrotten meine Programme |
|
|
Hallo! Ich bastelte mir ein kleines aber feines Pong zusammen und kompilierte es unter Windows mit Version 0.15 des Compilers. Alles klappte problemlos.
Nun wollte ich Sound einbauen, lud mir FBsound herunter und erfuhr, dass man am besten die 0.17 testing des Compilers dazu verwendet. Also erst mal 0.16 des Compilers installiert und mein Spiel (noch unverändert ohne Soundroutinen) kompiliert.
Aber das, was da kompiliert herauskam, war eine .exe, die, wenn ich sie startete nur kurz das DOS-Fenster öffnete udn sich sofort wieder schloss. Dabei wird keine Fehlermeldung ausgegeben.
Mit 0.17 das Gleiche. Benutze ich vielleicht einen SCREEN-Modus, der ab 0.16 anders definiert werden muss? Wenn ich das Programm
Code: | CLS
PRINT "HALLO!"
GETKEY |
mit 0.17 kompiliere, funktioniert es schließlich.
ich verwende in meinem PONG den Modus
Bin ziemlich verzweifelt, da das Programm eigentlich fertig ist und ich mit 0.16 oder 0.17 nicht mehr zum Laufen bekomme!
Ich würde mich über Hilfe sehr sehr freuen! |
|
Nach oben |
|
|
cyberkeks
Anmeldungsdatum: 19.02.2007 Beiträge: 18
|
Verfasst am: 22.02.2007, 15:28 Titel: |
|
|
Hier ist übrigens der Quellcode meines PONGs:
Ich finde den Fehler einfach nicht, wobei er ja nicht mal einen Fehler ausgibt!
Code: |
'PONG extreme
'written by Benjamin Luikenga
'Bildschirmmodus setzen
SCREEN 18, 32,2
SETMOUSE 0, 0, 0
OPEN "config.cfg" FOR INPUT AS #1
INPUT #1, b$,retro_switch
CLOSE #1
IF retro_switch = 1 THEN
PRINT "Retro-Mode activated"
PRINT " "
PRINT " "
END IF
?"==============================================================================="
?" -=|PONG eXtreme|=-"
?" Copyright (C) 2007 Benjamin Luikenga"
?"==============================================================================="
?" This program is free software; you can redistribute it and/or"
?" modify it under the terms of the GNU General Public License"
?" as published by the Free Software Foundation; either version 2"
?" of the License, or (at your option) any later version."
?""
?" This program is distributed in the hope that it will be useful,"
?" but WITHOUT ANY WARRANTY; without even the implied warranty of"
?" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the"
?" GNU General Public License for more details."
?""
?" You should have received a copy of the GNU General Public License"
?" along with this program; if not, write to the "
?" "
?" Free SoftwareFoundation, Inc."
?" 51 Franklin Street, "
?" Fifth Floor, Boston, MA 02110-1301, USA"
? " "
?"==============================================================================="
? " PLEASE READ readme.txt FOR MORE!"
?"==============================================================================="
? " "
? " "
? " Press RETURN to continue!"
GOSUB waitloop
DIM ballswitch AS INTEGER
DIM ballswitch2 AS INTEGER
DIM score1 AS INTEGER
DIM score2 AS INTEGER
DIM ballspeed AS INTEGER
DIM videocount AS INTEGER
DIM backswitcher AS INTEGER
'Set arrays for sprites
DIM ball(4 * (16 * 16) + 4) AS BYTE ' set ball array
DIM paddle(4 * (16 * 64) + 4) AS BYTE ' set paddle array
DIM background(4 * (640 * 480) + 4) AS BYTE ' set background array
DIM title(4 * (640 * 480) + 4) AS BYTE ' set title array
DIM go(4 * (640 * 480) + 4) AS BYTE ' set gameover array
DIM yw(4 * (640 * 480) + 4) AS BYTE ' set youwin array
DIM menu(4 * (640 * 480) + 4) AS BYTE ' set menu array
DIM number(4 * (8 * 8) + 4) AS BYTE ' set number array
DIM background2(4 * (640 * 480) + 4) AS BYTE ' set menu array
'Load bitmaps into an array
BLOAD "./graphics/ball_3.bmp", @ball(0) 'load ball bitmap
BLOAD "./graphics/paddle_02.bmp", @paddle(0) 'load paddle bitmap
BLOAD "./graphics/title_01.bmp", @title(0) 'load title bitmap
BLOAD "./graphics/youwin.bmp", @yw(0) 'load title bitmap
BLOAD "./graphics/menu.bmp", @menu(0) 'load title bitmap
IF retro_switch = 1 THEN
BLOAD "./graphics/menu_otv.bmp", @menu(0) 'load title bitmap
BLOAD "./graphics/youwin_otv.bmp", @yw(0) 'load title bitmap
BLOAD "./graphics/gameover_otv.bmp", @go(0) 'load title bitmap
BLOAD "./graphics/number.bmp", @number(0) 'load title bitmap
BLOAD "./graphics/title_otv.bmp", @title(0) 'load title bitmap
BLOAD "./graphics/backgrounds/otv1.bmp", @background(0) 'load paddle bitmap
BLOAD "./graphics/backgrounds/otv2.bmp", @background2(0) 'load title bitmap
END IF
IF retro_switch = 0 THEN
BLOAD "./graphics/menu.bmp", @menu(0) 'load title bitmap
BLOAD "./graphics/youwin.bmp", @yw(0) 'load title bitmap
BLOAD "./graphics/gameover.bmp", @go(0) 'load title bitmap
BLOAD "./graphics/number.bmp", @number(0) 'load title bitmap
BLOAD "./graphics/title_01.bmp", @title(0) 'load title bitmap
BLOAD "./graphics/backgrounds/back3.bmp", @background(0) 'load paddle bitmap
BLOAD "./graphics/backgrounds/back3.bmp", @background2(0) 'load title bitmap
END IF
RANDOMIZE TIMER
'Drawing
'=========================================================
DIM work_page AS INTEGER, x AS INTEGER, y AS INTEGER
' Request 640x480 with 2 pages
'SCREEN 18,32,2
SETMOUSE 0, 0, 0
'Startbildschirm
'=========================================================
start:
score1 = 0
score2 = 0
IF retro_switch = 1 THEN PUT (0,0), background(0)
PUT (0,0), title(0)
GOSUB waitloop
PUT (0,0), menu(0)
FOR i = 1 TO 11: PRINT " ": NEXT i
IF retro_switch = 0 THEN PRINT " SELECT GAME MODE!"
PRINT " ================="
PRINT " "
PRINT " [1] Player 1 vs CPU"
PRINT " [2] Training Mode"
PRINT " [3] Player 1 vs Player 2"
PRINT " "
PRINT " [4] EXIT GAME"
PRINT " "
DO
INPUT " >",modus
IF modus = 1 THEN GOSUB fuckthecomputer:GOSUB start
IF modus = 2 THEN GOSUB training:GOSUB start
IF modus = 3 THEN GOSUB fuckthetwo:GOSUB start
IF modus = 4 THEN GOSUB endscreen
LOOP
'Training Spiel
'========================================================
training:
DO
PRINT " "
PRINT " ================="
PRINT " Set the Speed of the ball (7 = normal)!"
INPUT " >",ballspeed
IF ballspeed < 1 THEN PRINT " This is nothin' but wrong!":PRINT " "
LOOP WHILE ballspeed < 1
DO
PRINT " Set the Number of trials you have (1-10)!"
INPUT " >",trials
IF trials < 1 OR trials > 10 THEN PRINT " Oh my dear! Pick a number between 1 and 10!":PRINT " "
LOOP WHILE trials < 1 OR trials > 10
PRINT " "
'Vor dem ersten Anstoß pausieren
PRINT " READY? HIT RETURN FOR KICK OFF!" :GOSUB waitloop
10
work_page = 0
x = 320
y = 240
paddle1y1 = 240
paddle1y2 = 304
ballx = 624
bally = 250
kick1 = 0
kick2 = 0
kick3 = 0
ballspot = 600
ballswitch = 0
ballswitch2 = 0
ballup = 0
DO
' Let's work on a page while we display the other one
SCREENSET work_page, work_page XOR 1
' Check arrow keys and update position accordingly
'IF MULTIKEY(&h4B) AND x > 0 THEN x = x - 1
'IF MULTIKEY(&h4D) AND x < 639 THEN x = x + 1
IF MULTIKEY(&h48) THEN paddle1y1 =paddle1y1-8:paddle1y2 =paddle1y2-8
IF MULTIKEY(&h50) THEN paddle1y1 =paddle1y1+8:paddle1y2 =paddle1y2+8
CLS
'Retro Hintergrund zeichnen
IF RND*10000 > 9500 THEN
PUT (0,0), background2(0)
ELSE
PUT (0,0), background(0)
END IF
'Paddle zeichnen
PUT (20,paddle1y1), paddle(0)
IF paddle1y1 < -64 THEN paddle1y1 =480
IF paddle1y1 > 480 THEN paddle1y1 = -64
PUT (ballx,bally), ball(0),trans
'Punktestand anzeigen
'PRINT " ";score1;" ";score2
GOSUB display_points
'Abfrage des Balls
'==============================================================
'Wenn der Ball auf dem Weg nach links ist...
'Steuerung der Paddles
'Festlegung Austrittswinkel Ball
IF ballx < 33 THEN 'Wenn der Ball in der gleichen Spalte wie das linke Paddle ist...
ballspot = bally'wird der momentane Ballaufschlagspunkt gesetzt
IF ballspot > paddle1y1 - 16 AND ballspot < paddle1y1 + 5 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +4 AND ballspot < paddle1y1 + 20 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +19 AND ballspot < paddle1y1 + 36 THEN
'kick1 = 0
ballswitch = 1
ballswitch2 = RND*1
kick1 = RND*3
END IF
IF ballspot > paddle1y1 +35 AND ballspot < paddle1y1 +52 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 1
END IF
IF ballspot > paddle1y1 +51 AND ballspot < paddle1y1 +72 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 1
END IF
END IF
'Zeichnen des Balls auf dem Weg nach links
IF ballswitch = 0 THEN
ballx = ballx -ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
END IF
END IF
SLEEP 20
END IF
'Zeichnen des Balls auf dem Weg nach rechts
IF ballswitch = 1 THEN
ballx = ballx +ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
END IF
END IF
SLEEP 20
END IF
'Bereiche rechts und links für den Ball eingrenzen und reagieren
IF ballx < 4 THEN ballswitch = 1:score2=score2+1:GOSUB waitloop:GOTO 10
IF ballx > 628 THEN ballswitch = 0::score1=score1+1
IF score1 > 10 then score1 = 0
'Punkte überprüfen
IF score2 > trials-1 THEN GOTO 66
' Page flip
work_page = work_page XOR 1
LOOP WHILE NOT MULTIKEY(&h1)
66
' Clear input buffer
WHILE INKEY$ = "": WEND
' Restore both work and visible pages to page 0
SCREENSET
IF score1 < 10 THEN
GOSUB gameover
ELSE
GOSUB youwin
END IF
RETURN
'Multiplayer Spiel
'========================================================
fuckthetwo:
PRINT " "
PRINT " ================="
DO
PRINT " Set the Speed of the ball (7 = normal)!"
INPUT " >",ballspeed
IF ballspeed < 1 THEN PRINT" This is nothin' but wrong!":PRINT " "
LOOP WHILE ballspeed < 1
PRINT " "
'Vor dem ersten Anstoß pausieren
PRINT " READY? HIT RETURN FOR KICK OFF!" :GOSUB waitloop
ballswitch = 0
11
work_page = 0
x = 320
y = 240
paddle1y1 = 240
paddle1y2 = 304
paddle2y1 = 240
paddle2y2 = 304
ballx = 320
bally = 250
kick1 = 0
kick2 = 0
kick3 = 0
ballspot = 600
ballswitch2 = 0
ballup = 0
DO
' Let's work on a page while we display the other one
SCREENSET work_page, work_page XOR 1
' Check arrow keys and update position accordingly
IF MULTIKEY(&h48) THEN paddle2y1 =paddle2y1-8:paddle2y2 =paddle2y2-8
IF MULTIKEY(&h50) THEN paddle2y1 =paddle2y1+8:paddle2y2 =paddle2y2+8
IF MULTIKEY(&h11) THEN paddle1y1 =paddle1y1-8:paddle1y2 =paddle1y2-8
IF MULTIKEY(&h1F) THEN paddle1y1 =paddle1y1+8:paddle1y2 =paddle1y2+8
CLS
'Retro Hintergrund zeichnen
IF RND*10000 > 9500 THEN
PUT (0,0), background2(0)
ELSE
PUT (0,0), background(0)
END IF
'paddles zeichnen
PUT (20,paddle1y1), paddle(0)
PUT (604,paddle2y1), paddle(0)
IF paddle1y1 < -64 THEN paddle1y1 =480
IF paddle2y1 < -64 THEN paddle2y1 =480
IF paddle1y1 > 480 THEN paddle1y1 =-64
IF paddle2y1 > 480 THEN paddle2y1 =-64
PUT (ballx,bally), ball(0),trans
'Punktestand anzeigen
'PRINT " ";score1;" ";score2
GOSUB display_points
'Abfrage des Balls
'==============================================================
'Wenn der Ball auf dem Weg nach links ist...
'Steuerung der Paddles
'Festlegung Austrittswinkel Ball
'=======================================================================================
'KOLLISION LINKS
IF ballx < 33 THEN 'Wenn der Ball in der gleichen Spalte wie das linke Paddle ist...
ballspot = bally'wird der momentane Ballaufschlagspunkt gesetzt
IF ballspot > paddle1y1 - 16 AND ballspot < paddle1y1 + 5 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +4 AND ballspot < paddle1y1 + 20 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +19 AND ballspot < paddle1y1 + 36 THEN
'kick1 = 0
ballswitch = 1
ballswitch2 = RND*1
kick1 = RND*3
END IF
IF ballspot > paddle1y1 +35 AND ballspot < paddle1y1 +52 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 1
END IF
IF ballspot > paddle1y1 +51 AND ballspot < paddle1y1 +72 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 1
END IF
END IF
'=======================================================================================
'KOLLISION RECHTS
IF ballx > 592 THEN 'Wenn der Ball in der gleichen Spalte wie das rechte Paddle ist...
ballspot = bally'wird der momentane Ballaufschlagspunkt gesetzt
IF ballspot > paddle2y1 - 16 AND ballspot < paddle2y1 + 5 THEN
kick1 = 8
ballswitch = 0
'ballswitch2 = 0
END IF
IF ballspot > paddle2y1 +4 AND ballspot < paddle2y1 + 20 THEN
kick1 = 4
ballswitch = 0
'ballswitch2 = 0
END IF
IF ballspot > paddle2y1 +19 AND ballspot < paddle2y1 + 36 THEN
'kick1 = 0
ballswitch = 0
ballswitch2 = RND*1
kick1 = RND*3
END IF
IF ballspot > paddle2y1 +35 AND ballspot < paddle2y1 +52 THEN
kick1 = 4
ballswitch = 0
'ballswitch2 = 1
END IF
IF ballspot > paddle2y1 +51 AND ballspot < paddle2y1 +72 THEN
kick1 = 8
ballswitch = 0
'ballswitch2 = 1
END IF
END IF
'Zeichnen des Balls auf dem Weg nach links
IF ballswitch = 0 THEN
ballx = ballx -ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
END IF
END IF
SLEEP 20
END IF
'Zeichnen des Balls auf dem Weg nach rechts
IF ballswitch = 1 THEN
ballx = ballx +ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
END IF
END IF
SLEEP 20
END IF
'Bereiche rechts und links für den Ball eingrenzen und reagieren
IF ballx < 4 THEN ballswitch = 0:score2=score2+1:GOSUB waitloop:GOTO 11
IF ballx > 620 THEN ballswitch = 1:score1=score1+1:GOSUB waitloop: GOTO 11
'Punkte überprüfen
IF score1 > 9 OR score2 > 9 THEN GOTO 55
' Page flip
work_page = work_page XOR 1
LOOP WHILE NOT MULTIKEY(&h1)
55
' Clear input buffer
WHILE INKEY$ = "": WEND
' Restore both work and visible pages to page 0
SCREENSET
GOSUB gameover
RETURN
'Spiel gegen computer
'========================================================
fuckthecomputer:
PRINT " "
PRINT " ================="
PRINT " The level increases CPU Skill and ball speed!"
DO
PRINT " Set the level (1 - 16)!"
INPUT " >",level
IF level < 1 OR level > 16 THEN PRINT" This is nothin' but wrong!":PRINT " "
LOOP WHILE level < 1 OR level > 16
PRINT " "
'Vor dem ersten Anstoß pausieren
PRINT " READY? HIT RETURN FOR KICK OFF!" :GOSUB waitloop
react_counter = 0
react_counter_max = 16/level
react_counter_random = 0
level_randomup =level
IF level > 4 THEN level_randomup = 4
IF level > 10 THEN level_randomup = 2
ballspeed = level +4
level = level * 4
14
work_page = 0
x = 320
y = 240
paddle1y1 = 240
paddle1y2 = 304
paddle2y1 = 240
paddle2y2 = 304
ballx = 320
bally = 250
kick1 = 0
kick2 = 0
kick3 = 0
ballspot = 600
ballswitch2 = 0
ballup = 0
react_counter = 0
DO
' Let's work on a page while we display the other one
SCREENSET work_page, work_page XOR 1
' Check arrow keys and update position accordingly
IF MULTIKEY(&h48) THEN paddle1y1 =paddle1y1-8:paddle1y2 =paddle1y2-8
IF MULTIKEY(&h50) THEN paddle1y1 =paddle1y1+8:paddle1y2 =paddle1y2+8
'Bewegen des Computer paddles
IF bally < paddle2y1 +level OR bally > paddle2y2 -level THEN
IF react_counter > react_counter_random AND bally < paddle2y1 +level AND ballswitch2 = 0 THEN paddle2y1 =paddle2y1-8:paddle2y2 =paddle2y2-8
IF react_counter > react_counter_random AND bally > paddle2y2 -level AND ballswitch2 = 1 THEN paddle2y1 =paddle2y1+8:paddle2y2 =paddle2y2+8
END IF
CLS
'Retro Hintergrund zeichnen
IF RND*10000 > 9500 THEN
PUT (0,0), background2(0)
ELSE
PUT (0,0), background(0)
END IF
'paddles zeichnen
PUT (20,paddle1y1), paddle(0)
PUT (604,paddle2y1), paddle(0)
IF paddle1y1 < -64 THEN paddle1y1 =480
IF paddle2y1 < -64 THEN paddle2y1 =480
IF paddle1y1 > 480 THEN paddle1y1 =-64
IF paddle2y1 > 480 THEN paddle2y1 =-64
PUT (ballx,bally), ball(0),trans
'Punktestand anzeigen
'PRINT " ";score1;" ";score2
'PRINT react_counter;" ";react_counter_random;" ";ballspeed
GOSUB display_points
'Abfrage des Balls
'==============================================================
'Wenn der Ball auf dem Weg nach links ist...
'Steuerung der Paddles
'Festlegung Austrittswinkel Ball
'=======================================================================================
'KOLLISION LINKS
IF ballx < 33 THEN 'Wenn der Ball in der gleichen Spalte wie das linke Paddle ist...
ballspot = bally'wird der momentane Ballaufschlagspunkt gesetzt
react_counter_random = RND*2*react_counter_max+level_randomup
IF ballspot > paddle1y1 - 16 AND ballspot < paddle1y1 + 5 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +4 AND ballspot < paddle1y1 + 20 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 0
END IF
IF ballspot > paddle1y1 +19 AND ballspot < paddle1y1 + 36 THEN
'kick1 = 0
ballswitch = 1
ballswitch2 = RND*1
kick1 = RND*3
END IF
IF ballspot > paddle1y1 +35 AND ballspot < paddle1y1 +52 THEN
kick1 = 4
ballswitch = 1
'ballswitch2 = 1
END IF
IF ballspot > paddle1y1 +51 AND ballspot < paddle1y1 +72 THEN
kick1 = 8
ballswitch = 1
'ballswitch2 = 1
END IF
END IF
'=======================================================================================
'KOLLISION RECHTS
IF ballx > 592 THEN 'Wenn der Ball in der gleichen Spalte wie das rechte Paddle ist...
ballspot = bally'wird der momentane Ballaufschlagspunkt gesetzt
IF ballspot > paddle2y1 - 16 AND ballspot < paddle2y1 + 5 THEN
kick1 = 8
ballswitch = 0
'ballswitch2 = 0
END IF
IF ballspot > paddle2y1 +4 AND ballspot < paddle2y1 + 20 THEN
kick1 = 4
ballswitch = 0
'ballswitch2 = 0
END IF
IF ballspot > paddle2y1 +19 AND ballspot < paddle2y1 + 36 THEN
'kick1 = 0
ballswitch = 0
ballswitch2 = RND*1
kick1 = RND*3
END IF
IF ballspot > paddle2y1 +35 AND ballspot < paddle2y1 +52 THEN
kick1 = 4
ballswitch = 0
'ballswitch2 = 1
END IF
IF ballspot > paddle2y1 +51 AND ballspot < paddle2y1 +72 THEN
kick1 = 8
ballswitch = 0
'ballswitch2 = 1
END IF
END IF
'Zeichnen des Balls auf dem Weg nach links
IF ballswitch = 0 THEN
ballx = ballx -ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
END IF
END IF
SLEEP 20
END IF
'Zeichnen des Balls auf dem Weg nach rechts
IF ballswitch = 1 THEN
ballx = ballx +ballspeed
IF ballswitch2 = 0 THEN
bally = bally-kick1
IF bally < 0 THEN
ballswitch2 = 1
react_counter = 0
END IF
END IF
IF ballswitch2 = 1 THEN
bally = bally+kick1
IF bally > 468 THEN
ballswitch2 = 0
react_counter = 0
END IF
END IF
SLEEP 20
END IF
'Bereiche rechts und links für den Ball eingrenzen und reagieren
IF ballx < 4 THEN ballswitch = 0:score2=score2+1:GOSUB waitloop:GOTO 14
IF ballx > 620 THEN ballswitch = 1:score1=score1+1:GOSUB waitloop: GOTO 14
'Reaktions Counter hochzählen
react_counter = react_counter +1
IF react_counter > react_counter_random+100 THEN react_counter = 0
'Punkte überprüfen
IF score1 > 9 OR score2 > 9 THEN GOTO 44
' Page flip
work_page = work_page XOR 1
LOOP WHILE NOT MULTIKEY(1)
44
' Clear input buffer
WHILE INKEY$ = "": WEND
' Restore both work and visible pages to page 0
SCREENSET
IF score1 < 10 THEN
GOSUB gameover
ELSE
GOSUB youwin
END IF
RETURN
'===============================================================
'The SUB for the waitin' sequence
waitloop:
DO
LOOP UNTIL getkey=13
CLS
RETURN
gameover:
PUT (0,0), go(0)
GOSUB waitloop
RETURN
youwin:
PUT (0,0), yw(0)
GOSUB waitloop
RETURN
'=============================================================
print1_0:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_1:
print1_x = 216
PUT (print1_x,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0)
RETURN
print1_2:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_3:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_4:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print1_5:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_6:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_7:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print1_8:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print1_9:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print1_10:
print1_x = 170
PUT (print1_x,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0)
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
'=====================================================================================================
print2_0:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_1:
print1_x = 400
PUT (print1_x,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0)
RETURN
print2_2:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_3:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_4:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print2_5:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_6:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_7:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x+16,38), number(0)
PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print2_8:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print2_9:
print1_x = 400
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x+16,54), number(0)
PUT (print1_x+16,62), number(0)
RETURN
print2_10:
print1_x = 400
PUT (print1_x,30), number(0)
PUT (print1_x,38), number(0)
PUT (print1_x,46), number(0)
PUT (print1_x,54), number(0)
PUT (print1_x,62), number(0)
print1_x = 446
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
print888:
print1_x = 216
PUT (print1_x,30), number(0):PUT (print1_x+8,30), number(0):PUT (print1_x+16,30), number(0)
PUT (print1_x,38), number(0):PUT (print1_x+8,38), number(0):PUT (print1_x+16,38), number(0)
PUT (print1_x,46), number(0):PUT (print1_x+8,46), number(0):PUT (print1_x+16,46), number(0)
PUT (print1_x,54), number(0):PUT (print1_x+8,54), number(0):PUT (print1_x+16,54), number(0)
PUT (print1_x,62), number(0):PUT (print1_x+8,62), number(0):PUT (print1_x+16,62), number(0)
RETURN
display_points:
IF score1 = 0 THEN GOSUB print1_0
IF score1 = 1 THEN GOSUB print1_1
IF score1 = 2 THEN GOSUB print1_2
IF score1 = 3 THEN GOSUB print1_3
IF score1 = 4 THEN GOSUB print1_4
IF score1 = 5 THEN GOSUB print1_5
IF score1 = 6 THEN GOSUB print1_6
IF score1 = 7 THEN GOSUB print1_7
IF score1 = 8 THEN GOSUB print1_8
IF score1 = 9 THEN GOSUB print1_9
IF score1 = 10 THEN GOSUB print1_10
IF score2 = 0 THEN GOSUB print2_0
IF score2 = 1 THEN GOSUB print2_1
IF score2 = 2 THEN GOSUB print2_2
IF score2 = 3 THEN GOSUB print2_3
IF score2 = 4 THEN GOSUB print2_4
IF score2 = 5 THEN GOSUB print2_5
IF score2 = 6 THEN GOSUB print2_6
IF score2 = 7 THEN GOSUB print2_7
IF score2 = 8 THEN GOSUB print2_8
IF score2 = 9 THEN GOSUB print2_9
IF score2 = 10 THEN GOSUB print2_10
RETURN
'===============================================================
endscreen:
'The END screen
END |
|
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 22.02.2007, 16:21 Titel: |
|
|
Hi,
versuch mal ob es mit der Compileroption
Code: | .... -s gui -lang qb |
funktioniert (ohne Gewähr ) _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 22.02.2007, 19:53 Titel: |
|
|
Hi,
leider ist das Programm auch mit voltas Tipp nicht zum Laufen zu bekommen..
..nun läßt sich natürlich einwenden, daß ja auch die ganzen Bilder fehlen, aber selbst wenn ich vor dem ersten 'GoSub waitloop' ein Sleep einfüge,
bleib das Programm nicht stehen, komisch
@cyberkeks:
cyberkeks hat Folgendes geschrieben: | ich verwende in meinem PONG den Modus
|
cyberkeks' Pong-Programm hat Folgendes geschrieben: | Code: | 'Bildschirmmodus setzen
SCREEN 18, 32,2 |
| Was denn nun ?
Gruß
ytwinky _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
cyberkeks
Anmeldungsdatum: 19.02.2007 Beiträge: 18
|
Verfasst am: 22.02.2007, 20:20 Titel: |
|
|
so ein mist
Gibt es denn als Notbehelf eine FBsound version, die mit v 0.15b des Compilers läuft? |
|
Nach oben |
|
|
ytwinky
Anmeldungsdatum: 28.05.2005 Beiträge: 2624 Wohnort: Machteburch
|
Verfasst am: 22.02.2007, 21:10 Titel: |
|
|
Diese Frage solltest du dem Autor von FBSound mal stellen..
..ich weiß gerad seinen Namen nicht und seine EMail-Adresse habe ich auch verlegt _________________
v1ctor hat Folgendes geschrieben: | Yeah, i like INPUT$(n) as much as PRINT USING.. | ..also ungefähr so, wie ich GOTO.. |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 23.02.2007, 11:59 Titel: |
|
|
Hi,
so startet das Spiel erstmal, hängt dann aber??
Code: | ...
? " Press RETURN to continue!"
Dim As Integer ballswitch, retro_switch
Dim ballswitch2 As Integer
Dim score1 As Integer
Dim score2 As Integer
Dim ballspeed As Integer
Dim videocount As Integer
Dim backswitcher As Integer
Open "config.cfg" For Input As #1
Input #1, b$,retro_switch
Close #1
If retro_switch = 1 Then
Print "Retro-Mode activated"
Print " "
Print " "
End If
'Set arrays for sprites
Dim ball(4 * (16 * 16) + 4) As Byte ' set ball array
Dim paddle(4 * (16 * 64) + 4) As Byte ' set paddle array
Redim background(4 * (640 * 480) + 4) As Byte ' set background array
Redim title(4 * (640 * 480) + 4) As Byte ' set title array
Redim go(4 * (640 * 480) + 4) As Byte ' set gameover array
Redim yw(4 * (640 * 480) + 4) As Byte ' set youwin array
Redim menu(4 * (640 * 480) + 4) As Byte ' set menu array
Dim number(4 * (8 * 8) + 4) As Byte ' set number array
Redim background2(4 * (640 * 480) + 4) As Byte ' set menu array
'Load bitmaps into an array
Bload "./graphics/ball_3.bmp", @ball(0) 'load ball bitmap
... |
also etwas die Reihenfolge geändert
'Bildschirmmodus setzen
'-=|PONG eXtreme|=-
'siehe oben : Wichtig die großen Arrays mit 'Redim'
'Set arrays for sprites
'Load bitmaps into an array
'Gosub waitloop
'....
weiter fehlen dann wohl die Dateien?? _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
Nach oben |
|
|
cyberkeks
Anmeldungsdatum: 19.02.2007 Beiträge: 18
|
Verfasst am: 28.02.2007, 01:17 Titel: |
|
|
Vielen Dank schon mal für den Tipp!
Ich habe mit FBSound nun auch Klänge in mein Pong eingebaut. Unter Linux funktioniert alles, unter Windows kommt beim Start lediglich die Fehlermeldung:
Was mache ich falsch? |
|
Nach oben |
|
|
volta
Anmeldungsdatum: 04.05.2005 Beiträge: 1875 Wohnort: D59192
|
Verfasst am: 01.03.2007, 14:06 Titel: |
|
|
ytwinky hat Folgendes geschrieben: | Diese Frage solltest du dem Autor von FBSound mal stellen..
..ich weiß gerad seinen Namen nicht und seine EMail-Adresse habe ich auch verlegt |
siehe: http://www.freebasic.net/forum/viewtopic.php?p=61841#61841 _________________ Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater. |
|
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.
|
|