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:

v0.16 und v0.17 des Compilers schrotten meine Programme

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cyberkeks



Anmeldungsdatum: 19.02.2007
Beiträge: 18

BeitragVerfasst am: 22.02.2007, 14:14    Titel: v0.16 und v0.17 des Compilers schrotten meine Programme Antworten mit Zitat

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

Code:
SCREEN 12, 32,2


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



Anmeldungsdatum: 19.02.2007
Beiträge: 18

BeitragVerfasst am: 22.02.2007, 14:28    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 22.02.2007, 15:21    Titel: Antworten mit Zitat

Hi,
versuch mal ob es mit der Compileroption
Code:
.... -s gui -lang qb

funktioniert (ohne Gewähr zwinkern )
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 18:53    Titel: Antworten mit Zitat

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 verwundert
@cyberkeks:
cyberkeks hat Folgendes geschrieben:
ich verwende in meinem PONG den Modus
Code:
SCREEN 12, 32,2
cyberkeks' Pong-Programm hat Folgendes geschrieben:
Code:
'Bildschirmmodus setzen
SCREEN 18, 32,2
Was denn nun ? zwinkern
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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
cyberkeks



Anmeldungsdatum: 19.02.2007
Beiträge: 18

BeitragVerfasst am: 22.02.2007, 19:20    Titel: Antworten mit Zitat

so ein mist peinlich

Gibt es denn als Notbehelf eine FBsound version, die mit v 0.15b des Compilers läuft?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ytwinky



Anmeldungsdatum: 28.05.2005
Beiträge: 2624
Wohnort: Machteburch

BeitragVerfasst am: 22.02.2007, 20:10    Titel: Antworten mit Zitat

Diese Frage solltest du dem Autor von FBSound mal stellen..
..ich weiß gerad seinen Namen nicht und seine EMail-Adresse habe ich auch verlegt grinsen
_________________
v1ctor hat Folgendes geschrieben:
Yeah, i like INPUT$(n) as much as PRINT USING..
..also ungefähr so, wie ich GOTO..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 23.02.2007, 10:59    Titel: Antworten mit Zitat

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



Anmeldungsdatum: 19.02.2007
Beiträge: 18

BeitragVerfasst am: 28.02.2007, 00:17    Titel: Antworten mit Zitat

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:

Code:
error:fbs_init()


Was mache ich falsch?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 01.03.2007, 13:06    Titel: Antworten mit Zitat

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 grinsen

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
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 -> Windows-spezifische Fragen 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