fehler bei types

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

sldier

Betreff: fehler bei types

BeitragMo, Nov 08, 2004 21:25
Antworten mit Zitat
Benutzer-Profile anzeigen
hallo

ich hab bei meinem script einen fehler... kann nichts großes sein da er erst ganz neu aufgetreten ist ich finde ihn aber einfach nicht

wenn ich mit shot an stein.wall kommen kommt folgender fehler

memory access violation

Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Global play=LoadImage("Gfx/player.jpg")
Global play2=LoadImage("Gfx/player2.jpg")
Global shot=LoadImage("Gfx/shot.jpg")
Global wand=LoadImage("Gfx/wall.jpg")
Global wand2=LoadImage("Gfx/wall2.jpg")
Global geb1=LoadImage("Gfx/geb1.bmp")
Global geb2=LoadImage("Gfx/geb2.bmp")
Global geb3=LoadImage("Gfx/geb3.bmp")
Global maus=LoadImage("Gfx/maus.bmp")
MaskImage maus,0,0,0
Global maus2=LoadImage("Gfx/maus2.bmp")
MaskImage maus2,0,0,0
Global maus3=LoadImage("Gfx/maus3.bmp")
MaskImage maus3,0,0,0
Global maus4=LoadImage("Gfx/maus4.bmp")
MaskImage maus4,0,0,0

map=LoadImage("Gfx/map1.bmp")
MaskImage map,0,0,0

Global pic1=LoadImage("Gfx/pic1.bmp")
MaskImage pic1,0,0,0
Global pic2=LoadImage("Gfx/pic2.bmp")
MaskImage pic2,0,0,0
Global pic3=LoadImage("Gfx/pic3.bmp")
MaskImage pic3,0,0,0
Global pic4=LoadImage("Gfx/pic4.bmp")
MaskImage pic4,0,0,0
Global pic5=LoadImage("Gfx/pic5.bmp")
MaskImage pic5,0,0,0
Global pic6=LoadImage("Gfx/pic6.bmp")
MaskImage pic6,0,0,0
Global pic7=LoadImage("Gfx/pic7.bmp")
MaskImage pic7,0,0,0
Global pic8=LoadImage("Gfx/pic8.bmp")
MaskImage pic8,0,0,0

Global x1=200
Global y1=50
Global power=2
Global muni=30
Global munimax=30
Global maga=3
Global leben=100
Global panzer=100
Global help=250
Global granat=1
Global kaserne=0
Global fabrik=0
Global menu=0

Dim feld(800,600)

For x = 1 To 800
For y = 1 To 600
feld(x,y) = 0
Next
Next


Type tropfen
Field x
Field y
Field r
End Type

Type tropfen2
Field x
Field y
Field xs
Field ys
Field r
Field w
Field p
End Type

Type wall
Field x
Field y
Field p
End Type

Type wall2
Field x
Field y
Field p
End Type

Type tgeb1
Field x
Field y
Field p
End Type

Type tgeb2
Field x
Field y
Field p
End Type

Type tgeb3
Field x
Field y
Field p
End Type


Repeat
Cls
Color(0,0,180)
Rect 140,5,240,200,0
DrawImage play,x1,y1


Include"Maps/map1.bb"

If ImagesCollide(map,140,10,0,play,x1,y1,0) Then x1=sx y1=sy
If y1 >= 485 Or y1 <= 8 Or x1 <= 140 Or x1 >= 785  Then x1=sx y1=sy

If KeyHit(19) And maga>=1 Then nachlad=1
If nachlad=1 Then
Color(100,0,200)
Rect 360,260,80,40,1
Rect 357,257,86,46,0
Color(200,0,0)
Text 375,265,"Reload"
reload=reload+1
Rect 370,285,reload,10,1
Color(0,0,0)
Rect 370,285,60,10,0
EndIf
If reload=60 Then nachlad=0 reload=0 muni=munimax maga=maga-1


If KeyDown(17) Then sy=y1 y1=y1-power rich=1
If KeyDown(31) Then sy=y1 y1=y1+power rich=2
If KeyDown(30) Then sx=x1 x1=x1-power rich=3
If KeyDown(32) Then sx=x1 x1=x1+power rich=4


If KeyDown(16) And muni>=1 And nachlad=0 Then
muni=muni-1
wasser.tropfen = New tropfen
wasser\x = x1   
wasser\y = y1
wasser\r = rich
EndIf

If KeyHit(15) Then
wasser2.tropfen2 = New tropfen2
wasser2\x = MouseX()   
wasser2\y = MouseY()
wasser2\r = 5
wasser2\p = 3
EndIf

If MouseHit(2) Then menu=0

If MouseHit(1) Then
If MouseX()>15 And MouseX()<115 And MouseY()>144 And MouseY()<156 Then menu=1
If MouseX()>15 And MouseX()<115 And MouseY()>164 And MouseY()<176 Then menu=2
If MouseX()>15 And MouseX()<115 And MouseY()>184 And MouseY()<196 Then menu=3
If MouseX()>15 And MouseX()<115 And MouseY()>204 And MouseY()<216 Then menu=4
If MouseX()>15 And MouseX()<115 And MouseY()>224 And MouseY()<236 Then menu=5

If menu=1 And help>=3 And MouseY()<200 And MouseY()>5 And MouseX()>140 And MouseX()<380 Then
help=help-3

stein.wall = New wall
stein\x = MouseX()
stein\y = MouseY()
stein\p = 3
EndIf

If menu=2 And help>=7 And MouseY()<495 And MouseY()>5 And MouseX()>140 And MouseX()<795  Then
help=help-7
stein2.wall2 = New wall2
stein2\x = MouseX()
stein2\y = MouseY()
stein2\p = 5
EndIf

If menu=3 And kaserne=0 And help>=50 And MouseY()<495 And MouseY()>5 And MouseX()>140 And MouseX()<795  Then
help=help-50
kaserne=1
haus1.tgeb1 = New tgeb1
haus1\x = MouseX()
haus1\y = MouseY()
haus1\p = 25
EndIf

If menu=4 And fabrik=0 And help>=120 And MouseY()<495 And MouseY()>5 And MouseX()>140 And MouseX()<795  Then
help=help-120
fabrik=1
haus2.tgeb2 = New tgeb2
haus2\x = MouseX()
haus2\y = MouseY()
haus2\p = 50
EndIf

If menu=5 And help>=25 And MouseY()<495 And MouseY()>5 And MouseX()>140 And MouseX()<795  Then
help=help-25
haus3.tgeb3 = New tgeb3
haus3\x = MouseX()
haus3\y = MouseY()
haus3\p = 10
EndIf

EndIf

For wasser.tropfen = Each tropfen
DrawImage shot,wasser\x, wasser\y

If wasser\r=1 Then
feld(wasser\x, wasser\y) = 0 
wasser\y = wasser\y - 5
feld(wasser\x, wasser\y) = 2 
EndIf

If wasser\r=2 Then
feld(wasser\x, wasser\y) = 0 
wasser\y = wasser\y + 5
feld(wasser\x, wasser\y) = 2 
EndIf

If wasser\r=3 Then
feld(wasser\x, wasser\y) = 0 
wasser\x = wasser\x - 5
feld(wasser\x, wasser\y) = 2 
EndIf

If wasser\r=4 Then
feld(wasser\x, wasser\y) = 0 
wasser\x = wasser\x + 5
feld(wasser\x, wasser\y) = 2 
EndIf

If wasser\y >= 495 Or wasser\y <= 5 Or wasser\x <= 140 Or wasser\x >= 795  Then Delete wasser.tropfen
Next

For wasser.tropfen = Each tropfen
If ImagesCollide(map,140,10,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen
Next
For stein.wall = Each wall
If ImagesCollide(play,x1,y1,0,wand,stein\x,stein\y,0) Then x1=sx y1=sy
Next
For stein2.wall2 = Each wall2
If ImagesCollide(play,x1,y1,0,wand2,stein2\x,stein2\y,0) Then x1=sx y1=sy
Next

For stein.wall = Each wall
For wasser.tropfen = Each tropfen
If ImagesCollide(wand,stein\x,stein\y,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen stein\p=stein\p-1
Next
Next

For stein2.wall2 = Each wall2
For wasser.tropfen = Each tropfen
If ImagesCollide(wand2,stein2\x,stein2\y,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen stein2\p=stein2\p-1
Next
Next

For stein.wall = Each wall
DrawImage wand,stein\x, stein\y
If stein\p=0 Then Delete stein.wall
Next

For stein2.wall2 = Each wall2
DrawImage wand2,stein2\x, stein2\y
If stein2\p=0 Then Delete stein2.wall2
Next

Color(200,0,0)
For haus1.tgeb1 = Each tgeb1
DrawImage geb1,haus1\x, haus1\y
Rect haus1\x+5,haus1\y-6,haus1\p,5
Rect haus1\x+5,haus1\y-6,25,5,0
If haus1\p=0 Then Delete haus1.tgeb1
If ImagesCollide(play,x1,y1,0,geb1,haus1\x,haus1\y,0) Then x1=sx y1=sy
Next

For haus2.tgeb2 = Each tgeb2
DrawImage geb2,haus2\x, haus2\y
Rect haus2\x,haus2\y-6,haus2\p,5
Rect haus2\x,haus2\y-6,50,5,0
If haus2\p=0 Then Delete haus2.tgeb2
If ImagesCollide(play,x1,y1,0,geb2,haus2\x,haus2\y,0) Then x1=sx y1=sy
Next

For haus3.tgeb3 = Each tgeb3
DrawImage geb3,haus3\x, haus3\y
Rect haus3\x+1,haus3\y-6,haus3\p,5
Rect haus3\x+1,haus3\y-6,10,5,0
If haus3\p=0 Then Delete haus3.tgeb3
If ImagesCollide(play,x1,y1,0,geb3,haus3\x,haus3\y,0) Then x1=sx y1=sy
Next

For wasser2.tropfen2 = Each tropfen2
DrawImage play2,wasser2\x, wasser2\y

wasser2\w=wasser2\w+1
If wasser2\w=16 Then wasser2\r=Rand(1,5) wasser2\w=0

If wasser2\r=1 Then
feld(wasser2\x, wasser2\y) = 0
wasser2\xs= wasser2\x 
wasser2\ys= wasser2\y   
wasser2\y = wasser2\y - 2
feld(wasser2\x, wasser2\y) = 2
EndIf

If wasser2\r=2 Then
feld(wasser2\x, wasser2\y) = 0
wasser2\xs= wasser2\x 
wasser2\ys= wasser2\y 
wasser2\y = wasser2\y + 2
feld(wasser2\x, wasser2\y) = 2
EndIf

If wasser2\r=3 Then
feld(wasser2\x, wasser2\y) = 0
wasser2\xs= wasser2\x 
wasser2\ys= wasser2\y 
wasser2\x = wasser2\x - 2
feld(wasser2\x, wasser2\y) = 2
EndIf

If wasser2\r=4 Then
feld(wasser2\x, wasser2\y) = 0
wasser2\xs= wasser2\x 
wasser2\ys= wasser2\y
wasser2\x = wasser2\x + 2
feld(wasser2\x, wasser2\y) = 2
EndIf

If wasser2\r=5 Then
wasser2\xs= wasser2\x 
wasser2\ys= wasser2\y
EndIf

If wasser2\y > 495 Or wasser2\y < 50 Or wasser2\x < 140 Or wasser2\x > 795  Then wasser2\x=wasser2\xs wasser2\y=wasser2\ys
If wasser2\p<1 Then Delete wasser2.tropfen2
Next

For wasser2.tropfen2 = Each tropfen2
If ImagesCollide(map,140,10,0,play2,wasser2\x,wasser2\y,0) Then wasser2\r=Rand(1,5)
Next


For wasser.tropfen = Each tropfen
For wasser2.tropfen2 = Each tropfen2
If ImagesCollide(shot,wasser\x,wasser\y,0,play2,wasser2\x,wasser2\y,0) Then Delete wasser2.tropfen2 
Next
Next

For wasser2.tropfen2 = Each tropfen2
If ImagesCollide(play,x1,y1,0,play2,wasser2\x,wasser2\y,0) Then
If panzer>0 Then panzer=panzer-10 Else leben=leben-20 
EndIf

Next


If menu=0 Then xmausx=maus
If menu=1 Then xmausx=wand
If menu=2 Then xmausx=wand2
If menu=3 Then xmausx=maus2
If menu=4 Then xmausx=maus3
If menu=5 Then xmausx=maus4

If leben<0 Then
Cls
Color(255,0,0)
Text 370,280,"GAME OVER"
EndIf

DrawImage xmausx,MouseX(),MouseY()
Flip
Until KeyHit(1)


bitte um hilfe

eXceptION

BeitragMo, Nov 08, 2004 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
schalte mal debug an, compile... immer noch das gleiche?
Norweger...

Spreche aber verdammt gut 8086
 

sldier

BeitragMo, Nov 08, 2004 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
mhm jetzt klappts aber wenn debug an ist wirds doch langsamer (wenn man zu einer exe macht)
 

Dreamora

BeitragMo, Nov 08, 2004 22:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Debug ist dazu da zu gucken wo der fehler kommt. Der hat nix mit Types zu tun sondern mit Bildern / Sounds die du versuchst zu verwenden und die nicht da sind.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

sldier

BeitragMo, Nov 08, 2004 22:05
Antworten mit Zitat
Benutzer-Profile anzeigen
hm klappt jetzt ja denke ich hab den fehler auch gefunden aber bisher ist die geschwindigkeit noch ok wenns so bleibt lasse ich den debug an

danke euch

eXceptION

BeitragMo, Nov 08, 2004 22:10
Antworten mit Zitat
Benutzer-Profile anzeigen
wie dreamora gesagt hat; debug ist da um bugs zu finden... wenn keine bugs mehr da sind, schalte es wieder aus...
Norweger...

Spreche aber verdammt gut 8086
 

sldier

BeitragMo, Nov 08, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hier nochmal das selbe problem nur schlimmer

mit debug kommt hier die fehlermeldung

Code: [AUSKLAPPEN]

For stein2.wall2 = Each wall2
For wasser.tropfen = Each tropfen
If ImagesCollide(wand2,stein2\x,stein2\y,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen stein2\p=stein2\p-1
Next
Next


ohne debug hier

Code: [AUSKLAPPEN]
For stein.wall = Each wall
For wasser.tropfen = Each tropfen
If ImagesCollide(wand,stein\x,stein\y,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen stein\p=stein\p-1
Next
Next


die zwei stehen untereinander

ich verstehe nicht warum.

wisst ihr es?

eXceptION

BeitragMo, Nov 08, 2004 22:30
Antworten mit Zitat
Benutzer-Profile anzeigen
BB kann nicht menschensprachen übersetzen... probier mal stand "wand2" schreib "wall2"
Norweger...

Spreche aber verdammt gut 8086
 

sldier

BeitragMo, Nov 08, 2004 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
aso das kann sein kenn ich von php wenn ne variable gesucht wird zB a12

findet er a12
aber wenn du a1 suchst
findet er a12
und a1

meintest du es so?

eXceptION

BeitragMo, Nov 08, 2004 22:47
Antworten mit Zitat
Benutzer-Profile anzeigen
nein ich habe mich verlesen! Shocked

och, ich habe kein bock die code zu testen... erstens, es ist unübersichtlich, zweitens, habe die images nicht! Razz
Norweger...

Spreche aber verdammt gut 8086
 

sldier

BeitragMo, Nov 08, 2004 22:54
Antworten mit Zitat
Benutzer-Profile anzeigen
1. ist leider meine art

2. kann ich dir per email schicken oder hast du icq?

hab jetzt auch die vars geändert trtzdem gleicher fehler...

eXceptION

BeitragMo, Nov 08, 2004 22:56
Antworten mit Zitat
Benutzer-Profile anzeigen
http://www.blitz-pasting.de.vu/
Norweger...

Spreche aber verdammt gut 8086
 

sldier

BeitragMo, Nov 08, 2004 23:01
Antworten mit Zitat
Benutzer-Profile anzeigen
darf ich die auch packen?
weil das sind 15 stück oder mehr

PS: habs hochgeladen als game.rar
 

Jake

BeitragDi, Nov 09, 2004 17:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If ImagesCollide(wand2,stein2\x,stein2\y,0,shot,wasser\x,wasser\y,0) Then Delete wasser.tropfen stein2\p=stein2\p-1



nach "Delete wasser.tropfen" (die Typangabe kannste übrigens weglassen, delete wasser tut dasselbe) machst du was mit stein2.

dazwischen fehlt mir ein ":" oder eine neue Zeile, und am ende ein "endif" wenn das zusammengehören soll.
bittrap-software. Jetzt neu und mit noch mehr Kalorien: CandyFactory 2 !
 

zocker2150

BeitragDi, Nov 09, 2004 19:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
For stein.wall = Each wall
   For wasser.tropfen = Each tropfen
      If ImagesCollide(wand, stein\x,stein\y,0,  shot, wasser\x,wasser\y,0) Then
         Delete wasser
         stein\p = stein\p - 1
      End If
   Next
Next


Genau ich seh das auch so wie "Jake".
Wenn man den Tabulator verwenden würde könnte man auch selber darauf kommen....
Und BITTE verwendet doch auch in Types selbsterklärende Variablennamen, das ist doch das schöne an Types Exclamation
 

Jake

BeitragDi, Nov 09, 2004 23:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Hehe, ich weiß zwar nicht, warum "Zocker" mich in Gänsefüßchen setzt, aber die Art, wie er deine Zeilen formatiert hat, sollte sich für immer in dein Gedächtnis einbrennen, verbunden mit einer "MACH ES GENAU SO"-Anweisung!

Optisch ansprechenden Code zu schreiben hat Vor- und Nachteile:

Vorteile:

* deutlich einfachere Fehlersuche
* du kannst deinen Code auch nach Wochen/Monaten noch entschlüsseln
* andere Menschen können ihn überhaupt lesen
* es sieht einfach schöner aus

Nachteile:

KEINE!
bittrap-software. Jetzt neu und mit noch mehr Kalorien: CandyFactory 2 !

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group