2 komische Fehler im Hauptmenü
Übersicht

![]() |
Lord AdZBetreff: 2 komische Fehler im Hauptmenü |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab zwei komische Fehler in meinem Hauptmenü und schaffs einfach nicht, die Ursache dafür zu finden.
1. Fehler: Wenn ich im Hauptmenü auf Spiel starten klicke (wenigstens das klappt), soll eine Abfage erscheinen (klappt auch), wo man mit Ja oder Nein antworten kann. Wenn man auf Ja klickt, soll das Spiel gestartet werden, wenn man auf Nein klickt, wird das Handbuch geöffnet und das Spiel beendet. Der Fehler liegt darin, dass das Spiel startet oder endet, wenn ich mit der Maus das Ja oder Nein berühre, die Function soll aber erst starten, wenn ich auf Ja oder Nein klicke. 2. Fehler: Wenn ich im Hauptmenü auf Optionen klicke, soll man die Grafikeinstellungen ändern können. Der Fehler liegt darin, das wenn ich auf Optionen klicke, der ganze Bildschirm komisch flackert und nach ca. 2sek will mir der Debugger erklären "Image does not exsist", obwohl ich da gar kein Bild außer der Maus lade, aber die war vorher auch schon da. Hier noch der Code: Code: [AUSKLAPPEN] ;---------------------------------------------Einstellungen Graphics 1024,768,32,1 SetBuffer BackBuffer() Global font1 = LoadFont("Arial", 30, 1, 1, 0) Global font2 = LoadFont("Century Gothic", 20, 1, 1, 0) Global Grafik=0, mausklick Global xmax=1024,ymax=768 SetBuffer BackBuffer() Global frametimer = CreateTimer(60) SeedRnd MilliSecs() Global kugel=LoadImage("Bullet2.png") MidHandle kugel Global spieler1=LoadImage("Spieler_1.png") MidHandle spieler1 MaskImage spieler1,255,255,255 Global spieler2=LoadImage("Spieler_2.png") MidHandle spieler2 MaskImage spieler2,255,255,255 Global begrenzung=LoadImage("Wand.png") MaskImage begrenzung,255,255,255 Global mauszeiger=LoadImage("Mauszeiger_1.png") MaskImage mauszeiger,0,0,0 Global xsp1=xmax/2;in der Mitte Global xsp2=xmax/2 Global ysp1=ymax-10;10 Pixel überm unteren Rand Global ysp2 Global sp1st Global sp2st Global xkugel# Global ykugel# Global winkel Global geschwindigkeit=10 Global fehlersp1 Global fehlersp2 Global beweglichkeit Global cheats Global xZufall# ClsColor 0,0,200 Color 128,255,0 SetFont font1 Repeat DrawImage mauszeiger,MouseX(),MouseY() Text 500,100,"Ping-Pong",1,1 Text 500,200,"Spiel starten ",1,1 Text 500,300,"Optionen",1,1 Text 500,400,"Credits",1,1 Text 500,500,"Beenden",1,1 mausklick = MouseHit(1) If mausklick And Maus_Text_Kollision(500,200,"Spiel starten",1,1) Then Handbuch() If mausklick And Maus_Text_Kollision(500,300,"Optionen",1,1) Then Optionen() If mausklick And Maus_Text_Kollision(500,400,"Credits",1,1) Then Credits () If mausklick And Maus_Text_Kollision(500,500,"Beenden",1,1) Then Ende() Flip:Cls Until KeyHit(1) End If KeyHit(1) Then End ;--------------------------------------------Funktionen Function Maus_Text_Kollision(xPos,yPos,Text1$,AusrichtungX = 0,AusrichtungY = 0) Breite=StringWidth(Text1$) Hoehe =StringHeight(Text1$) If AusrichtungX Then xPos = xPos - Breite/2 If AusrichtungY Then yPos = yPos - Hoehe/2 If RectsOverlap(xPos,yPos,Breite,Hoehe,MouseX(),MouseY(),1,1) Then Rect xPos,yPos,Breite,Hoehe,0; Rahmen zur Kontrolle Return True End If Return False End Function Function Handbuch() Repeat Cls DrawImage mauszeiger,MouseX(),MouseY() Text 500,200,"Haben Sie das Handbuch gelesen?",1,1 Text 500,240,"Ja",1,1 Text 500,265,"Nein",1,1 If mausklick And Maus_Text_Kollision(500,240,"Ja",1,1) Then Startegame() If mausklick And Maus_Text_Kollision(500,265,"Nein",1,1) Then OpenFile "Handbuch.txt" End EndIf Flip Until GetKey()<>0 End Function Function Startegame() Cls Text 500,300,"Spiel wird geladen!",1,1 DrawImage mauszeiger,MouseX(),MouseY() Flip Delay 1000 Include"PPT_06.bb" Graphics 1024,768,32,1 SetFont font2 End Function Function Optionen() Cls Repeat DrawImage mauszeiger,MouseX(),MouseY() Text 450,200,"Grafikeinstellungen:",1,1 Text 500,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Cls Text 450,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Grafik=Grafik+1 EndIf Flip EndIf Flip Until KeyHit(3) End Function Function Grafikeinstellungen() Cls DrawImage mauszeiger,MouseX(),MouseY() Select Grafik Case 1 Grafik=0 Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,2 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 LoadFont("Arial", 30, 1, 1, 0) Flip Case 2 Grafik=1 Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,1 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 LoadFont("Arial", 30, 1, 1, 0) Flip Case 3 Grafik=2 Cls Text 400,250,"1280X1024X16",1,1 Flip Default Print "Irgendwas klappt nicht" End Select If Grafik>2 Then Grafik=0 Flip End Function Function Credits () Cls Text 500,100,"Menü by Lord AdZ",1,1 Flip Delay 1000 End Function Function ende () Cls Text 500,100,"Spiel wird beendet",1,1 Text 500,130,"Bitte habe Sie einen Augenblick Geduld.....",1,1 Flip Delay 2000 End End Function Function resetkugel() xkugel=xmax/2:ykugel=ymax/2 If Rand(0,1)=1 Then winkel=Rand(75,105) Else winkel=Rand(255,285);zufälliger Winkel End Function |
||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Code: [AUSKLAPPEN] Repeat
Cls DrawImage mauszeiger,MouseX(),MouseY() Text 500,200,"Haben Sie das Handbuch gelesen?",1,1 Text 500,240,"Ja",1,1 Text 500,265,"Nein",1,1 If mausklick And Maus_Text_Kollision(500,240,"Ja",1,1) Then Startegame() If mausklick And Maus_Text_Kollision(500,265,"Nein",1,1) Then OpenFile "Handbuch.txt" End EndIf Flip Until GetKey()<>0 Naa welchen Wert hat Mausklick wohl in diesem Moment? ![]() |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Stimmt, du hast recht, wenn ich mausklick=Mousehit(1) dazuschreibe, funktioniert die Handbuch-Funktion. Aber das Optionsmenü flackert immer noch. Was soll ich da tun? | ||
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
mach mal das CLS in der Repeat schleife
Bei welcher Zeile genau kommt der fehler? mfg, Smily0412 |
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
OK, cls hab ich jetzt in der repeat-Schleife, jetz flackerts nicht mehr, aber der Error ist immer nocht da, und zwar hier:
Code: [AUSKLAPPEN] Function Optionen() Repeat Cls DrawImage mauszeiger,MouseX(),MouseY();<----------- hier mausklick=MouseHit(1) Text 450,200,"Grafikeinstellungen:",1,1 Text 500,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Cls Text 450,200,"Grafikeinstellungen:",1,1 Text 400,250,"800X600X16",1,1 If mausklick And Maus_Text_Kollision(400,200,"Grafikeinstellungen:",1,1) Then Grafikeinstellungen() Grafik=Grafik+1 EndIf Flip EndIf Flip Until KeyHit(3) End Function |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nach jedem Graphics Befehl musst du die Bilder und Fonts neu laden! | ||
[BB2D | BB3D | BB+]
|
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hab ich doch!
Code: [AUSKLAPPEN] Function Grafikeinstellungen() Cls DrawImage mauszeiger,MouseX(),MouseY() Select Grafik Case 1 Grafik=0 Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,1 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 LoadFont("Arial", 30, 1, 1, 0); da lade ich die font DrawImage mauszeiger,MouseX(),MouseY() ; hier den Mauszeiger Flip Case 2 Grafik=1 Cls Text 400,250,"1024X768X16",1,1 Graphics 1024,768,16,1 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 LoadFont("Arial", 30, 1, 1, 0) DrawImage mauszeiger,MouseX(),MouseY() Flip Case 3 Grafik=2 Cls Text 400,250,"1280X1024X16",1,1 Flip Default Print "Irgendwas klappt nicht" Delay 1000 End Select If Grafik>2 Then Grafik=0 Flip End Function |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
eben nicht,
Code: [AUSKLAPPEN] Case 1 Grafik=0
Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,1 SetBuffer BackBuffer() ClsColor 0,0,200 Color 128,255,0 LoadFont("Arial", 30, 1, 1, 0); da lade ich die font DrawImage mauszeiger,MouseX(),MouseY() ; hier den Mauszeiger Flip der Font wird geladen aber der Mauszeiger nicht! Schreib doch einfach eine Function LoadAlleBilderUndFontsNeu() die rufst du auf nachdem du die Grafik änderst und das Problem ist gelöst! |
||
[BB2D | BB3D | BB+]
|
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wenn du mit blitzplus arbeitest, kannst du beim laden von grafiken noch zusätzlich den parameter "1" geben, damit gehen sie nach der änderung der auflösung nicht verloren:
Code: [AUSKLAPPEN] img = loadimage("test.bmp",1)
|
||
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets "Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!" stummi.org |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Rallimen: "Image does not exsist" wird immer noch angezeigt, jetzt aber erst, wenn ich zum 2. Mal auf Grafikeinstellungen klicke.
Code: [AUSKLAPPEN] Function AlleBilderundFontsladen() LoadFont("Arial", 30, 1, 1, 0) LoadFont("Century Gothic", 20, 1, 1, 0) LoadImage("Mauszeiger_1.png") End Function @Smily: Ich benutz aber Blitz3d |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
Du musst in deiner Function auch die werte einer Variablen zuweisen
Beispiel Code: [AUSKLAPPEN] Mauszeiger = LoadImage("Mauszeiger_1.png")
Die Var Mauszeiger muss auch Global am Anfang gesetzt werden In deinem ersten Code da oben hast du viel mehr Bilder geladen. Ich hab das mal zusammengestellt, und die Function müsste so aussehen. Code: [AUSKLAPPEN] Global Font1
Global font2 Global kugel Global spieler1 Global spieler2 Global begrenzung Global mauszeiger Function AlleBilderundFontsladen() font1 = LoadFont("Arial", 30, 1, 1, 0) font2 = LoadFont("Century Gothic", 20, 1, 1, 0) kugel=LoadImage("Bullet2.png") MidHandle kugel ; spieler1=LoadImage("Spieler_1.png") MidHandle spieler1 MaskImage spieler1,255,255,255 ; spieler2=LoadImage("Spieler_2.png") MidHandle spieler2 MaskImage spieler2,255,255,255 ; begrenzung=LoadImage("Wand.png") MaskImage begrenzung,255,255,255 ; mauszeiger=LoadImage("Mauszeiger_1.png") MaskImage mauszeiger,0,0,0 ; End Function Wenn du nach jedem neuen setzten der Auflösung die Function AlleBilderundFontsladen() ausführst sollte es gehen |
||
[BB2D | BB3D | BB+]
|
![]() |
ShadowJumper |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rallimen hat Folgendes geschrieben: Nach jedem Graphics Befehl musst du die Bilder und Fonts neu laden!
also da muss ich mal völlig wiedersprechen ich hab bei mir am Anfang meines Spiels folgenden Befehl Code: [AUSKLAPPEN] Global blitzlogo=LoadImage("Graphics/blitzlogo.png")
der ist im restlichen Code nicht einmal vertreten und auch nicht ohne Global das Bild wird im Hauptmenü gezeigt und das Spiel läuft IMMER in einer anderen Auflösung (manchmal auch anderes Format) und es kann trozdem noch angezeigt werden (ohne probleme) es kann vlt. auch daran liegen das ich BlitzPlus habe |
||
![]() |
Hagbard |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rallimen hat Recht.
Ich habe es jetzt mal getestet: BB2D: nein BB3D: nein BB+ : ja |
||
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Mein Problem wird immer kleiner ![]() Code: [AUSKLAPPEN] Function Grafikeinstellungen() Cls Select Grafik Case 1 Grafik=0 Cls Text 400,250,"1024X768X32",1,1 Graphics 1024,768,32,1 AlleBilderundFontsladen() DrawImage mauszeiger,MouseX(),MouseY() Grafik=0 Case 2 Grafik=1 Cls Text 400,250,"800X600X16",1,1 Graphics 800,600,16,1 AlleBilderundFontsladen() DrawImage mauszeiger,MouseX(),MouseY() Grafik=1 Default Print "!!!" Delay 1000 End Select If Grafik>1 Then Grafik=0 Flip End Function |
||
![]() |
RallimenSieger des 30-EUR-Wettbewerbs |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ShadowJumper
Es liegt an Blitz Plus! Du Lädst dein Bild nämlich in den Ram, von dem es immer wenn notwendig in den Videospeicher kopiert wird. Wenn du es nur in den Videospeicher laden willst da es dann schneller ist, musst du die Bilder mit dem Parameter ,2 laden(so wie BB3d und BB2D). Ohne Angabe eines Parameters ist der Standard ,1 |
||
[BB2D | BB3D | BB+]
|
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group