Illegal memory address
Übersicht

![]() |
YankeeBetreff: Illegal memory address |
![]() Antworten mit Zitat ![]() |
---|---|---|
So ich brauch eure hilfe bei einem bug.
Wie in der Ueberschrift schon steht, kommt immer "Illegal memory address". Ich wollte mal fragen, wieso der das immer macht. Davor hat das Spiel noch functioniert, aber jetzt kommt immer dieser bug... Brauche Hilfe bitte... ![]() Wenns euch was nuetzt, hier der Code: ![]() Code: [AUSKLAPPEN] Global feind = LoadImage("anime.bmp") Global me = LoadImage("me.bmp") Global rocket = LoadImage("rocket.bmp") Global anime_rocket = LoadImage("anime_rocket.bmp") Global schuss = LoadSound("shoot.wav") Global tot = LoadSound("boom.wav") Global me_x = 320 Global me_y = 420 Global rocket_fired = False Global rocket_x = 0 Global rocket_y = 0 Global feind_x = 320 Global feind_y = 15 Global feind_speed = 2 Global anime_rocket_x = 0 Global anime_rocket_y = 0 Global feind_fired = False Global score = 0 Graphics 640, 480, 16, 1 SetBuffer BackBuffer() While True Cls pruefetasten moveanime update Flip Wend Function pruefetasten() If KeyDown(203) Then me_x = me_x - 3 If KeyDown(205) Then me_x = me_x + 3 If rocket_fired = False If KeyHit(57) Then rocket_fired = True rocket_x = me_x + 35 rocket_y = me_y + 10 PlaySound schuss EndIf EndIf If me_x < 0 Then me_x = 0 If me_x > 550 Then me_x = 550 End Function Function moveanime() If rocket_fired = False Then If feind_x > 524 Or feind_x < 0 Then feind_speed =-feind_speed feind_x = feind_x + feind_speed EndIf ;automatisch ausweichen If rocket_fired = True Then If rocket_x =< feind_x Then If feind_speed < 0 Then feind_speed =-feind_speed EndIf Else If feind_speed >= 0 Then feind_speed =-feind_speed EndIf EndIf feind_x = feind_x + feind_speed If feind_x < 0 Then feind_speed = -feind_speed If feind_x > 524 Then feind_speed = -feind_speed EndIf End Function Function update() If rocket_fired Then rocket_y = rocket_y - 3 DrawImage rocket, rocket_x, rocket_y If ImagesCollide(rocket, rocket_x, rocket_y,0, feind, feind_x, feind_y,0) Then PlaySound tot score = score + 100 If feind_speed < 0 Then feind_speed = feind_speed - 1 Else feind_speed = feind_speed + 1 EndIf rocket_fired = False feind_x = Rnd(0,524) EndIf If rocket_y < 0 Then score = score - 20 rocket_fired = False EndIf ;anime fire or not? If feind_fired = False Then no_fire = Rnd(0,100) If no_fire = Rnd(0,100) Then feind_fired = True anime_rocket_x = feind_x anime_rocket_y = feind_y + 10 PlaySound schuss EndIf EndIf ;if anime_fired then... If feind_fired Then anime_rocket_y = anime_rocket_y + 4 If ImagesCollide(anime_rocket,anime_rocket_x,anime_rocket_y,0,feind,feind_x,feind_y,0) Then score = score - 100 PlaySound tot anime_fired = False EndIf DrawImage anime_rocket, anime_rocket_x, anime_rocket_y EndIf EndIf If KeyHit(16) Then End If score < -100 Then End Text 320, 0, score DrawImage me, me_x, me_y DrawImage feind, feind_x, feind_y End Function Also, man ist ein Raumschiff und muss den computer abschie(scharfes s)en. Der computer geht immer hin uns her, bis man schie(scharfes s)t. Der computer kann aber auch schie(scharfes s)en, aber das kommt nicht so oft vor... Bitte brauche Hilfe. ![]() Danke Yankee ![]() |
||
HW |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich habe mir deinen langen Code jetzt nicht durchgelesen, aber ich würde dir raten, beim testen den Debugger anzuschalten, da er genauere Fehlermeldungen ausgibt und die fehlerhafte Zeile markiert. Im Debugmode kommen Illegal Memory Adress und Memory Access Violation nämlich äußerst selten vor. | ||
![]() |
Yankee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Soo... ich hab jezt ein bisschen selber rumgeschaut^^ und dabei entdeckt, dass der Fehler ihrgendwo bei me_x oder me_y ist. Komisch ist jetzt aber, dass der Fehler immer wechselt. Also manchmal ist der Fehler bei me_x oder bei me_y, aber manchmal auch bei feind_x oder bei feind_y..... Ich finde das wird immer schwerer, oder? Also waehre dankbar, wenn ihr mir safgt, genau wo. ![]() Danke Yankee |
||
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
sag doch einfach, was für eine fehlermeldung kommt wenn du den debugger angeschalten hast (program->debug enabled). und am besten noch, welche zeile im debugger markiert ist ![]() wir wären dir zutiefst verbunden! |
||
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo!
Kann es sein, dass du eines der Bilder gelöcht hast? Oder dass du eines vrschoben hast? cu wammerl |
||
![]() |
Yankee |
![]() Antworten mit Zitat ![]() |
---|---|---|
Also ich hab extra nochmal nachgeschaut, aber des ist da im ordner, also muesste es eigentlich functionieren, was es aber net tut... ![]() Waehre dankbar, wenn ihr euch das nochmal durchschaut und mir den Fehler sagt, wenn ihr ihn findet... danke Yankee |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group