Illegal Memory Adress

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

FosJonas

Betreff: Illegal Memory Adress

BeitragDo, Mai 21, 2009 16:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo ich habe schon wieder ein großes problem (dazu ein sehr komisches), habe auchs schon im forumgesucht, die ergebnise haben alle nix mit meinem problem zu tun.

Ich prüfe durch die funktion ImagesCollide ob sich 2 objekte berühren, sobald dies aber der fall ist bekomme ich den Fehler: Illegal memory adress und blitzbasic stürzt komplett ab.
Das komische daran ist nur: in BlitzPlus funktioniert das ganze einwandfrei... es ruckelt nur beim kolediren einbissl.

Habe schon gelesen das es an der graka liegen kann... aber mich wunderts das es dann bei BlitzPlus einwand frei funkt, die versionen sind in beiden fällen (glaub ich) die neuesten (letzte woche dlt)

Wäre nett wen ihr mir helfen würdet.
 

DjDETE

BeitragDo, Mai 21, 2009 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit Code kann dir sicher besser geholfen werden Wink
MfG
Aktuelles Projekt: XXX |XXX | 3% der v1b fertig
www.emu-soft.de.vu Für die Homepage suche ich noch Linktauschpartner, bei Interesse einfach melden.

FosJonas

BeitragDo, Mai 21, 2009 16:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Repeat
Cls
Eingabe$=""                                                                              ;Tasten Eingabe
EingabeN=GetKey()
If EingabeN > 0 Then
Eingabe = Chr$(EingabeN)
EndIf
For x= 1 To 237
Key(x)=0
If KeyHit(x) Then Key(x)=1
Next

If KeyDown(14) Or KeyDown(208) Or KeyDown(200) Or KeyDown(205) Or KeyDown(203) Or KeyDown(28) Or KeyDown(211) Then Eingabe=""

If mode=0

If Nummer(0)<5 Then If Len(Name(Nummer(0)))<13                                           ;Name/Runden änderung
Name(Nummer(0))=Name(Nummer(0))+Eingabe
EndIf
If Key(205)=1 And Nummer(0)=5 And Runden<Nummer(2) Then Runden=Runden+1
If Key(203)=1 And Nummer(0)=5 And Runden>1 Then Runden=Runden-1
If Nummer(0)<5 And Key(28)=1
If Spielt(Nummer(0))=0
Spielt(Nummer(0))=1
Else
Spielt(Nummer(0))=0
EndIf
EndIf
If Key(14)=1 And Nummer(0)<5 Then If  Len(name(Nummer(0)))>0
Name(Nummer(0))=Left(Name(Nummer(0)),Len(name(Nummer(0)))-1)
EndIf
If Key(211)=1 And Nummer(0)<5
Name(Nummer(0))=""
EndIf

If Key(28)=1 And Nummer(0)=6                                                    ;Spiel Start
For x= 1 To 4
If Spielt(x)=1 Then Check(0)=Check(0)+1
Next
If Check(0)>1
Spieler_Zahl=Check(0)
mode=1
Runde=1
For x = 1 To Nummer(2)
   Repeat
      zahl = Rand(1,Nummer(2))
      For y = 1 To Nummer(2)
         If Game_List(y) = zahl Then Exit
         If Game_List(y) = 0 Then
            Game_List(y) = zahl
            Exit
         EndIf
      Next
   Until y = Nummer(2)
Next
EndIf
EndIf

If Key(208)=1 Then                                                                       ;Pfeil Bewegen
If Nummer(0)<6 Then
Nummer(0)=Nummer(0)+1
Else
Nummer(0)=1
EndIf
EndIf
If Key(200)=1 Then
If Nummer(0)>1 Then
Nummer(0)=Nummer(0)-1
Else
Nummer(0)=6
EndIf
EndIf

DrawImage(Back_Party, 0 , 0)                                                          ;Bild/Text anzeigen
If Nummer(0)<5 Then
DrawImage(Pfeil,20,160+Nummer(0)*50)
Else
DrawImage(Pfeil,20,210+Nummer(0)*50)
EndIf
SetFont F40
For x= 1 To 4
Color 128,90,60 :Text 200,170+x*50, Name(x)
If Spielt(x)=1 Then
Color 128,90,60 :Text 550,170+x*50, "Ja"
Else
Color 128,90,60 :Text 550,170+x*50,"Nein"
EndIf
Next
Color 128,90,60 :Text 200,470,"Runden: "+Str(Runden)
Color 128,90,60 :Text 200,520,"Spiel Starten"
EndIf

If Game_List(Runde)=1 And mode=1 Or mode=2                                                      ;Monster Fraß (1)
If Install=0
Install=1
Spieler_Left=Spieler_Zahl
For x= 1 To 100
Nummer(x)=0
Nummer2(x)=0 ;PosY
Nummer3(x)=0 ;PosX
Nummer4(x)=0 ;Typ
Nummer5(x)=0 ;Speed
Check(x)=0
Next
Nummer2(1)=250
Nummer2(2)=300
Nummer2(3)=350
Nummer2(4)=200
Nummer3(5)=9000
Nummer2(5)=384
Nummer4(5)=2
Nummer5(5)=2
For x= 1 To 4
Nummer3(x)= 320
Nummer5(x)=2
If Spielt(x)=1 Then Nummer4(x)= 1
Next
EndIf
If KeyDown(208) Then                             ; Bewegen von Spieler 1 (Grün)
Nummer2(1)=Nummer2(1)+Nummer5(1)
Else
If KeyDown(200) Then Nummer2(1)=Nummer2(1)-Nummer5(1)
EndIf
If KeyDown(203) Then
Nummer3(1)=Nummer3(1)-Nummer5(1)
Else
If KeyDown(205) Then Nummer3(1)=Nummer3(1)+Nummer5(1)
EndIf
                                           
If KeyDown(31) Then                                      ; Bewegen von Spieler 2 (Blau)
Nummer2(2)=Nummer2(2)+Nummer5(2)
Else
If KeyDown(17) Then Nummer2(2)=Nummer2(2)-Nummer5(2)
EndIf
If KeyDown(30) Then
Nummer3(2)=Nummer3(2)-Nummer5(2)
Else
If KeyDown(32) Then Nummer3(2)=Nummer3(2)+Nummer5(2)
EndIf

If KeyDown(37) Then                                      ; Bewegen von Spieler 3 (Rot)
Nummer2(3)=Nummer2(3)+Nummer5(3)
Else
If KeyDown(23) Then Nummer2(3)=Nummer2(3)-Nummer5(3)
EndIf
If KeyDown(36) Then
Nummer3(3)=Nummer3(3)-Nummer5(3)
Else
If KeyDown(38) Then Nummer3(3)=Nummer3(3)+Nummer5(3)
EndIf

If KeyDown(76) Then                                      ; Bewegen von Spieler 4 (Pink)
Nummer2(4)=Nummer2(4)+Nummer5(4)
Else
If KeyDown(72) Then Nummer2(4)=Nummer2(4)-Nummer5(4)
EndIf
If KeyDown(75) Then
Nummer3(4)=Nummer3(4)-Nummer5(4)
Else
If KeyDown(77) Then Nummer3(4)=Nummer3(4)+Nummer5(4)
EndIf



For x= 1 To 4                                     ; Spieler Im Rand
If Nummer2(x)+BY>768 Then Nummer2(x)=0
If Nummer2(x)+BY<0 Then Nummer2(x)=768
If Nummer3(x)+BX>1280 Then Nummer3(x)=Nummer3(x)-5
If Nummer3(x)+BX<48  Then Nummer3(x)=Nummer3(x)+5
If ImagesCollide(Runner_G, Nummer3(x) , Nummer2(x) , 0 , Eater_G, Nummer3(5) , Nummer2(5) , 0 )
EndIf
Next


For x= 1 To 5
Nummer3(x)=Nummer3(x)-1
Next
Nummer3(5)=Nummer3(5)-Nummer5(5)

If Nummer4(5)=2 Then DrawImage(Eater_G , Nummer3(5)+BX , Nummer2(5)+BY)
If Nummer4(1)=1 Then DrawImage(Runner_G , Nummer3(1)+BX , Nummer2(1)+BY)
If Nummer4(2)=1 Then DrawImage(Runner_T , Nummer3(2)+BX , Nummer2(2)+BY)
If Nummer4(3)=1 Then DrawImage(Runner_R , Nummer3(3)+BX , Nummer2(3)+BY)
If Nummer4(4)=1 Then DrawImage(Runner_P , Nummer3(4)+BX , Nummer2(4)+BY)
EndIf

If mode=1
check1=check1+1
EndIf
If check1=2
check1=0
DrawImage(Bsb_MonsterFras , 400 , 120)
Flip
Repeat

Until KeyHit(28)
mode=2
Else
Flip 0
EndIf
WaitTimer (Frame)
Until KeyHit(1) Or quit=1
End


ich denke aber es liegt an dem teil:
Code: [AUSKLAPPEN]

If ImagesCollide(Runner_G, Nummer3(x) , Nummer2(x) , 0 , Eater_G, Nummer3(5) , Nummer2(5) , 0 ) Then Nummer4(x)=1

wen ich den weg mache funkts, und den fehler bekomme ich ja immer dann wen genau das eintritt.

Nicdel

BeitragDo, Mai 21, 2009 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Gabs schon oft: https://www.blitzforum.de/foru...hp?t=27025
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7
  • Zuletzt bearbeitet von Nicdel am Do, Mai 21, 2009 17:08, insgesamt einmal bearbeitet

FosJonas

BeitragDo, Mai 21, 2009 17:06
Antworten mit Zitat
Benutzer-Profile anzeigen
das heist ich kan keine genaue pixel kollesion machen? nur rechtecke und kreise?

Nicdel

BeitragDo, Mai 21, 2009 17:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Mit den Ersatzfunktionen kannst du auch anderes machen, sie sind aber nicht so schnell. Es steht aber auch dabei, wie's ohne geht.
Desktop: Intel Pentium 4 2650 Mhz, 2 GB RAM, ATI Radeon HD 3850 512 MB, Windows XP
Notebook: Intel Core i7 720 QM 1.6 Ghz, 4 GB DDR3 RAM, nVidia 230M GT, Windows 7

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group