Image frame out of range
Übersicht

Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also änderst du die variable irgendwo oder hast fälschlicherweise irgendwo in deinem gesamten code eine variable die ebenfalls so heisst. | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Smily |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich vermute mal, du lädst ein Bild, sound o.ä. in die Variable. | ||
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 ![]() |
---|---|---|
Ich hab ein bisschen rumexperimentiert und ich hab dabei festgestellt, das der Error nicht kommt, wenn ich "Mod 1" einstelle. Bei "Mod 2" dauert es ca. eine Sekunde, erst dann der Error wiederkommt und wenn ich Mod>2 hab, kommt der Error sofort. Was bedeutet das schon wieder? | ||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
die mod sind egal
Das problem ist das du die variable die du für das frame benutzt irgendwo anders nochmal benutzt für etwas. Benenn eine der beiden um oder du kannst dir jegliche mühe sparen! |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Lord AdZ |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hab die Variablen umbennant aber der Error ist immer noch da, ich glaub, ich kapier hier irgendwas nicht.
Ich poste hier mal meinen Code, da ich anscheinend zu blöd bin, um den Fehler selber zu finden. (Für alle, die sich wundern: die Functions und Globals sind in einem anderen .bb file, diese Datei include ich nur) Code: [AUSKLAPPEN] ;---------------------------------------------Einstellungen beweglichkeit=geschwindigkeit cheats=0 ClsColor 0,0,200;blauer Hintergrund resetkugel;richtige Position der Kugel Repeat WaitTimer (frametimer) For z2=0 To 1 If z2=1 Then x=xmax-50 Else x=0 For z=0 To ymax/50 DrawImage begrenzung,x,z*50 Next Next ;-----------------------------------------verschiedene Befehle ; der Spielstand von beiden Spielern ist gleich 0, wenn 0 gedrückt wurde If KeyHit(11) Then fehlersp1=0 fehlersp2=0 EndIf If KeyHit(38) Then cheats=cheats+1 ;aktiviert die Cheateingabe, wenn L gedrückt wurde If KeyHit(1) Then End ;beendet das Spiel, wenn esc gedrückt wurde If KeyHit(201) Then geschwindigkeit=geschwindigkeit+1 ;erhöht die spielgeschwindigkeit um 1, wenn man 5 drückt If KeyHit(209) Then geschwindigkeit=geschwindigkeit-1 ;verringert die spielgeschwindigkeit um 1, wenn man 6 drückt If KeyDown(78) Then geschwindigkeit=geschwindigkeit+1 ;erhöht die spielgeschwindigkeit um 1, wenn man + drückt If KeyDown(74) Then geschwindigkeit=geschwindigkeit-1 ;verringert die spielgeschwindigkeit um 1, wenn man - drückt If KeyHit(14) Then resetkugel;setzt die kugel zurück, wenn entf gedrückt wurde ;cheats If KeyHit(59) And cheats=1 Then geschwindigkeit=geschwindigkeit+100000 ;wenn F1 gedrückt wurde, verändert sich die Geschwindigkeit If KeyHit(60) And cheats=1 Then geschwindigkeit=10 ;wenn F2 gedrückt wurde, ist die Geschwindigkeit wieder normal If KeyHit(61) And cheats=1 Then ClsColor 10, 100, 29 ;wenn F3 gedrückt wurde verändert sich der Hintergrund If KeyHit(62) And cheats=1 Then ClsColor 0,0,200 ;wenn F4 gedrückt wurde, ist der Hintergrund wieder blau If KeyHit(63) And cheats=1 Then fehlersp2=fehlersp2+142480647 ;haha ;-------------------------------------------Sieg oder Niederlage? ;wenn die Kugel durchgelassen wurde If ykugel<-10 Then ;oben fehlersp2=fehlersp2+1 ;der Obere bekommt einen Fehlerpunkt dazu resetkugel EndIf If ykugel>ymax+10 Then ;unten fehlersp1=fehlersp1+1 ;der Untere bekommt einen Fehlerpunkt dazu resetkugel EndIf ;hat Spieler1 gewonnen? If fehlersp2>9 Then Text xmax/2, 100, "Spieler1 hat gewonnen" resetkugel geschwindigkeit=0 EndIf ;hat Spieler2 gewonnen? If fehlersp1>9 Then Text xmax/2, 100, "Spieler2 hat gewonnen" resetkugel geschwindigkeit=0 EndIf ;neues Spiel, wenn W gedrückt wurde If fehlersp1>9 And KeyHit(17) Then fehlersp1=0 fehlersp2=0 geschwindigkeit=10 EndIf If fehlersp2>9 And KeyHit(17) Then fehlersp1=0 fehlersp2=0 geschwindigkeit=10 EndIf ;--------------------------------------------Steuerung ;die Spielersteuerung If KeyHit(2) Then resetkugel sp1st=sp1st+1;verändert die Spielsteuerung, wenn 1 gedrückt wurde EndIf If KeyHit(3) Then sp2st=sp2st+1;verändert die Spielsteuerung, wenn 2 gedrückt wurde resetkugel EndIf If sp1st>2 Then sp1st=0 If sp2st>2 Then sp2st=0 ;die automatische Steuerung, wenn die Steuerungsvariable 0 ist: If xsp1>xkugel And sp1st=0 And ykugel>GraphicsHeight()/2 Then xsp1=xsp1-beweglichkeit If xsp1<xkugel And sp1st=0 And ykugel>GraphicsHeight()/2 Then xsp1=xsp1+beweglichkeit If xsp2>xkugel And sp2st=0 And ykugel<GraphicsHeight()/2 Then xsp2=xsp2-beweglichkeit If xsp2<xkugel And sp2st=0 And ykugel<GraphicsHeight()/2 Then xsp2=xsp2+beweglichkeit ;erweiterte KI von Spieler2 If ykugel>768/2 And sp2st=0 Then ;hin und her wackeln von Spieler2 xZufall#=xZufall#+Rnd(-3,3) If xZufall<-3.5 xZufall=-3.5 Else If xZufall>3.5xZufall=3.5 xsp2=xsp2+xZufall EndIf ;erweiterte KI von Spieler1 If ykugel<768/2 And sp1st=0 Then ;hin und her wackeln von Spieler1 xZufall#=xZufall#+Rnd(-3,3) If xZufall<-3.5 xZufall=-3.5 Else If xZufall>3.5xZufall=3.5 xsp1=xsp1+xZufall EndIf ;die Tastatursteuerung, wenn die Steuerungsvariable 1 ist: If KeyDown(203) And sp1st=1 Then xsp1=xsp1-beweglichkeit;linke Pfeiltaste If KeyDown(205) And sp1st=1 Then xsp1=xsp1+beweglichkeit;rechte Pfeiltaste If KeyDown(208) And sp1st=1 Then ysp1=ysp1+beweglichkeit;Pfeiltaste hoch If KeyDown(200) And sp1st=1 Then ysp1=ysp1-beweglichkeit;Pfeiltaste runter If KeyDown(44) And sp2st=1 Then xsp2=xsp2-beweglichkeit;Y If KeyDown(45) And sp2st=1 Then xsp2=xsp2+beweglichkeit;X ;die Maussteuerung, wenn die Steuerungsvariable 2 ist: If sp1st=2 Then xsp1=xsp1+MouseXSpeed() If sp2st=2 Then xsp2=xsp2+MouseXSpeed() If sp1st=2 Then ysp1=ysp1+MouseYSpeed() If sp2st=2 Then ysp2=ysp2+MouseYSpeed() ;die X-Überprüfung: If xsp1<70 Then xsp1=70 If xsp1>xmax-70 Then xsp1=xmax-70 If xsp2<70 Then xsp2=70 If xsp2>xmax-70 Then xsp2=xmax-70 ;die Y-Überprüfung If ysp1<576 Then ysp1=576 If ysp1>ymax Then ysp1=ymax-5 ;die Kollisionsabfrage der Spieler If ImagesCollide(spieler1,xsp1,ysp1,0,kugel,xkugel,ykugel,0) Then ;wenn eine Kollision besteht winkel=360-winkel ;prallt die Kugel ab abweichung=2*(xsp1-xkugel) ;Richtungssteuerung der Kugel winkel=winkel+abweichung EndIf If ImagesCollide(spieler2,xsp2,ysp2,0,kugel,xkugel,ykugel,0) Then winkel=360-winkel abweichung=2*(xsp2-xkugel) winkel=winkel-abweichung EndIf ;damit der Winkel nicht über den Bereich von 0-360 geht: If winkel>360 Then winkel=winkel-360 If winkel<0 Then winkel=winkel+360 ;Kollisionsabfrage Seitenwände If xkugel<60 Then winkel=180-winkel ;damit prallt die Kugel ab EndIf If xkugel>xmax-60 Then winkel=180-winkel EndIf ;Berechnung der Kugelkoordinaten xkugel=xkugel+Cos(winkel)*geschwindigkeit ykugel=ykugel-Sin(winkel)*geschwindigkeit ;----------------------------------Informationen auf dem Bildschirm SetFont font2 Color 100,235,100 Text 200,300,"Geschwindigkeit:" + geschwindigkeit Text 500,300,"Spielstand: "+fehlersp2 + " : " + fehlersp1 ;Steuerungsart Text 55,ymax-25,"Spieler1 " If sp1st>0 Then If sp1st=2 Then Text 120,ymax-25," Maussteuerung " Else Text 120,ymax-25," Tastatursteuerung " Else Text 120,ymax-25," Computer " EndIf If spieler1man>0 Then Text 250,ymax-25,scorep1 Text 55,5,"Spieler2 " If sp2st>0 Then If sp2st=2 Then Text 120,5," Maussteuerung " Else Text 120,5," Tastatursteuerung " EndIf Else Text 120,5," Computer " EndIf Text 200, 370, "1 drücken, um die Steuerung von Spieler1 zu verändern" Text 200, 390, "2 drücken, um die Steuerung von Spieler2 zu verändern" Text 200, 410, "Bild auf drücken, um die Geschwindigkeit zu erhöhen" Text 200, 430, "Bild ab drücken, um die Geschwindigkeit zu verringern" Text 200, 450, "W drücken, um nach einem gewonnenem oder verlorenem Spiel fortzufahren" Text 200, 470, "ESC drücken, um das Spiel zu beenden" Text 200, 150, "Spieler2 mit y und x steuern" Text 200, 600, "Spieler1 mit den Pfeiltasten steuern" If MilliSecs() > tmrlhintergrund + 200 Then tmrlhintergrund=MilliSecs() framehintergrund=(framehintergrund + 1) Mod 30 End If DrawImage hintergrundladen,0,0,framehintergrund ;hintergrund DrawImage kugel,xkugel,ykugel;Kugel DrawImage spieler1,xsp1,ysp1 ;Spieler1 DrawImage spieler2,xsp2,10 ;Spieler2 ;-----------------------------------------Hauptschleife Flip Cls Until KeyHit(1) End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group