Bei umschalten auf Vollbildmodus tauchen probleme auf???
Übersicht

DesantesBetreff: Bei umschalten auf Vollbildmodus tauchen probleme auf??? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also mein Proggie läuft im Fenstermodus "Graphics 640,480,16,2" einwandfrei. Wenn ich jedoch in den Vollbildmodus umschalte ergibt sich das Problem das es nach spielende nicht mehr in die Namenseingabe wechselt. Genauso wenig komme ich im Vollbildmodus, vom Menü aus in die Highscore anzeige, ich bekomme lediglich die Anzeige von der Highscoreliste am unteren Bildschirmrand " -- Drücken Sie eine Taste um ins Menü zurück zu kommen ---" mehr aber auch nicht.
Hat einer ne Ahnung woran das liegen kann? Code: [AUSKLAPPEN] Graphics 640,480,16,1 SetBuffer BackBuffer() SeedRnd MilliSecs() Dim Punkte(11) Dim Namen$(11) Global fntArialI=LoadFont("Arial",20,False,True,False) Global Spielerpunkte Global Computerpunkte Global spielername$ Global StopBall Global Hintergrund = LoadImage("Startbild.bmp") ;Zuweisen des Hintergrundbildes Global Name=LoadImage ("Nameneingabe.bmp") Global BAll = LoadImage("ball.bmp") ; zuweisen der Bilder Global Computer=LoadImage ("Schläger.bmp") Global Spieler=LoadImage("Schläger.bmp") Liste_laden() ; highscore einlesen ; highscore einlesen muss existieren sonst fehler Menü() ;Spiel starten Function Spiel() FlushKeys frameTimer=CreateTimer(75) Speedx=5 Speedy=5 BAll_x = 300 ; Ball Position BAll_y = 220 Spielerpunkte = 00 Computerpunkte = 00 AppTitle "Pong" ;Titel Spieler_x=30 ;Variable und Position des Spielers Spieler_y=400 Computer_x=600 ;Variable und position des Computers Computer_y=420 While Not KeyHit(1) ;Hauptspielschleife If KeyDown (200) ;Schläger bewegung des Spielers Spieler_y=Spieler_y-12 If Spieler_y<0 Then Spieler_y=0 EndIf If KeyDown (208) Spieler_y=Spieler_y+12 If Spieler_y>400 Then Spieler_y=400 EndIf If ImagesCollide(Spieler,Spieler_x,Spieler_y,0,BAll,Ball_x,Ball_y,0) Then SpeedX=Rand(5,12);Image Collision If ImagesCollide(BAll,Ball_x,Ball_y,0,Computer,Computer_x,Computer_y,0) Then SpeedX=Rand(-5,-8) If BAll_x>600 Then Spielerpunkte=Spielerpunkte+10 ;Punktezähler If Ball_x<1 Then Computerpunkte=Computerpunkte+10 If Computer_y>400 Then Computer_y=400 ; Bewegungsende des Computer If Computer_y<0 Then Computer_y=0 If Ball_y>Computer_y Then ; If random = 1 Then Computer_y=Computer_y ;Computerbewegung der Y Koordinate Else Computer_y=Computer_Y-Rand(4,7) EndIf If Ball_y<Computer_y Then If random = 1 Then Computer_y = Computer_y Else Computer_y=Computer_y+Rand(4,7) EndIf WaitTimer (frameTimer) ; Geschwindigkeit des Spieles Cls DrawImage Ball,Ball_x,Ball_y ;laden des Designs für den Ball If Ball_x<1 Or Ball_x>GraphicsWidth()-40 Then Ball_x=Rand(150,300) Ball_y=Rand(60,250) Speedx=Rand(6,10) Speedy=Rand(6,10) StopBall = 200 EndIf If StopBall > 0 Then StopBall = StopBall - 1 Else Ball_x = BAll_x + SpeedX ;Modernisieren der Ballposition Ball_y = Ball_y + SpeedY EndIf If Ball_y<1 Or Ball_y>GraphicsHeight()-40 Then SpeedY =- SpeedY DrawImage Spieler,Spieler_x,Spieler_y ; Design des Spielers laden DrawImage Computer,Computer_x,Computer_y ; Design des Computer laden Text 300,0,Spielerpunkte,1 ;Positionen für die Punkteanzeige Text 340,0,Computerpunkte,1 Text 220,1,"Player" ;Positionen der Namensanzeige Text 370,1,"Hall3000" If Computerpunkte=50 Then ;Balllimit Name() Exit End If Flip Wend ; Wiederholung der While Schleife() End Function Function Name() ; Function der Namenseingabe Cls FlushKeys() DrawImage Name, Name_x, Name_y Locate 200,350 ;Namenseingabe spielername$ = Input(" ") ;Variablenname des Spielers Highscore () ; Spielende - daten neu sortieren End Function Function Menü() ; Function des Hauptmenüs While Not KeyHit(1) Cls DrawImage Hintergrund,Hintergrund_y,Hintergrund_x If KeyDown(2) Then Spiel If KeyDown (1) Then Menü If KeyDown (5) Then End If KeyDown (3) Then Highscore Flip Wend End Function Function Highscore() ;Highscoreliste Alte anzeigen und dann neue anzeigen Cls AppTitle "Highscore" punkte(11) = spielerpunkte Namen$(11) = spielername$ For i = 1 To 11 ; unsortiert dann mit dem neuen wert anzeigen sonst sieht man nichts!! ;punkte(i) = spielerpunkte :; hier wird ja jeder neu zugewiesen der Fehler den du angesprochen hast ;Namen$(i) = spielername$ + i ; mit (+i) werden die Namen immer länger, das soll bestimmt nicht sein ;Print i + "." +" " + Namen$(i) + " " + "hat" + " " + punkte(i) + " " + "Punkte" Next ;Print "Taste für weiter" ;WaitKey FlushKeys Liste_sortieren (); --- Liste sortieren Liste_speichern(); --- Liste speichern Liste_anzeigen (); --- Liste laden + anzeigen WaitKey Cls End Function Function Liste_laden(); --- Liste laden + anzeigen Datei = ReadFile("Highscore.dat") For i = 1 To 10 Namen$(i) = ReadLine(Datei) punkte(i) = ReadLine(Datei) ;Print i + "." + spielername$ + " " + "hat" + " " + spielerpunkte Next CloseFile Datei ;Print "Datei eingelesen --Tatse für weiter---" End Function Function Liste_anzeigen() ;Anzeige der Highscoreliste SetFont fntArialI Text 260,10, "Highscoreliste" For i = 1 To 10 For i = 1 To 10 If i < 10 Then Text 200,(i*16)+100, i + ".)" ; Rang anzeigen If i = 10 Then Text 200,(i*16)+100, i + ".)" ; Rang anzeigen Text 300,(i*16)+100, Namen$(i) ; Namen anzeigen Text 450,(i*16)+100, punkte(i) ; Punkte anzeigen Next Locate 80,400 Print " -- Drücken Sie eine Taste um ins Menü zurück zu kommen ---" Next End Function Function Liste_sortieren (); --- Liste sortieren For I = 1 To 11 For J = I To 11 If punkte(I) < punkte(J) Then ; "<" = größter zuerst / ">" = kleinster zuerst X = punkte(I) : punkte(I) = punkte(J) : punkte(J) = X xx$ = Namen$(i) : Namen$(i) = Namen$(j): Namen(j) = xx$ EndIf Next Next End Function Function Liste_speichern(); --- Liste_speichern Datei = WriteFile("Highscore.dat") For i = 1 To 10 WriteLine Datei, Namen$(i) WriteLine Datei, punkte(i) Next CloseFile Datei End Function |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
mit welcher BB Version arbeitest du?
denn bei mir geht das.... alledings mit Ersatzbildern! was mir alledings sofort aufgefallen ist : Code: [AUSKLAPPEN] Text 260,10, "Highscoreliste"
For i = 1 To 10 For i = 1 To 10 .... next ... next diese beiden schleifen werden nicht voll durchlaufen sondern nur die innere , die äußere wird nur einmal benutzt also eine andere Variable nehmen! das mit der Highscore anzeige kann es sein das du es nicht mit flip machst oder sofort wieder den hintergrund drübermalst, denn text schreit in den eingestellten Buffer Print immer in den Frontbuffer also der sichtbare! |
||
[BB2D | BB3D | BB+]
|
Desantes |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Arbeite mit Ver. 1.66 Blitz 3D.
Wie gesagt bei mir läuft es zwar im Fenstermodus einwandfrei aber im Vollbildmodus nicht. Hab echt keine Ahnung wieso. Aber es muß irgendwas mit dem Print Befehl bei der Liste_anzeigen funktion zu tun haben. Denn ich habe ébend mal ausprobiert das Print und das Locate durch "text 80,400, "........" zu ersetzten und siehe da es kam garnichts mehr zur anzeige (im Vollbild sowie im Fenstermodus). Hmm, wie gesagt ich habe echt kein Plan was das ein kann. Mfg Desantes |
||
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Im Vollbildmodus wird der Front- und der Backbuffer auf andere Weise getauscht als im Fenstermodus. Bei den meisten funktioniert das Programm dann trotzdem, bei mir leider nicht.
Knall mal Flip woanders hin, vielleicht hast du ein ähnliches Problem. |
||
solitaire |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group