Problem mit "Typekollision"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Gameprogman

Betreff: Problem mit "Typekollision"

BeitragFr, Jul 01, 2005 17:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Flogender Code:

BlitzBasic: [AUSKLAPPEN]

Function shootupdate()
For sh=Each shoot
sh\shy=sh\shy-5
DrawImage schuss,sh\shx,sh\shy
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete sh
Next
End Function




Function enemyupdate()
For geg=Each enemy
geg\enemyy=geg\enemyy+4
DrawImage ship2,geg\enemyx,geg\enemyy
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete geg
Next
End Function



und bb jamert: "objekt does not exist"

kann mir mal wer sagen wo der Feheler liegt?
Danke[/syntax]
www.bandradr.de ! Awesome !

Freeman

BeitragFr, Jul 01, 2005 18:01
Antworten mit Zitat
Benutzer-Profile anzeigen
also es wäre vielleicht noch hilfreich wenn du die type liste posten würdest,wie du das alles definiert hast

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

Gameprogman

BeitragFr, Jul 01, 2005 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Types:

BlitzBasic: [AUSKLAPPEN]

;Schüsse
Type shoot
Field shx
Field shy
End Type

;Gegner
Type enemy
Field enemyx
Field enemyy
End Type

Global sh.shoot
Global geg.enemy
www.bandradr.de ! Awesome !

Freeman

Betreff: Re: Problem mit "Typekollision"

BeitragFr, Jul 01, 2005 18:10
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Function shootupdate()
For sh=Each shoot
sh\shy=sh\shy-5
DrawImage schuss,sh\shx,sh\shy
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete sh
Next
End Function


[/quote]

du benutzt geg\enemyX und hast es gar nich definiert erst in der Function danach.

FrEeMaN
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28

BladeRunner

Moderator

BeitragFr, Jul 01, 2005 18:11
Antworten mit Zitat
Benutzer-Profile anzeigen
In beiden Funktionen iterierst Du nur durch einen Type, fragst den 2en aber auch ab. Woher soll das Proggie denn wissen welcher Counterpart zur Prüfung genommen werden soll. Solange Du noch keinen aufgerufen hast gibts Ärger. Zudem wissen wir nicht wo Du instanzen erzeugst. Und Du hast uns nicht mitgeteilt WO der Fehler auftritt was die Suche erleichtern würde.

EDIT: Überarbeitet.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
  • Zuletzt bearbeitet von BladeRunner am Fr, Jul 01, 2005 18:39, insgesamt einmal bearbeitet

Gameprogman

BeitragFr, Jul 01, 2005 18:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Fehler tritt auf Wenn ein Gegner erscheint bzw. wenn ich schießen will und es wird immer die entsprechende collisionszeile makiert...
www.bandradr.de ! Awesome !

Gameprogman

BeitragFr, Jul 01, 2005 18:36
Antworten mit Zitat
Benutzer-Profile anzeigen
und so weise ich den Feldern Werten zu (nur so nebenbei)

BlitzBasic: [AUSKLAPPEN]

Function newshoot()
sh.shoot=New shoot
sh\shx=x
sh\shy=440
End Function

Function newenemy()
geg.enemy=New enemy
ey=0
geg\enemyx=ex
geg\enemyy=ey
ex=Rnd(0,640)
End Function
www.bandradr.de ! Awesome !

BladeRunner

Moderator

BeitragFr, Jul 01, 2005 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Wie gesagt, wenn du in deiner Funk mit beiden 'Types arbeitest musst Du auch beide mit for each, oder first etc. ansprechen. sonst ist ja keine Referenz gegeben.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

f L i P

BeitragFr, Jul 01, 2005 21:37
Antworten mit Zitat
Benutzer-Profile anzeigen
also: benutzte zwei mal (in einander verschachtelt) for bli=each blub ... und darin die nächste type.object does not exist kann ja nur entstehen wenn ein objekt nicht vorhanden ist, also folgendes: if bli<>null(vorhanden!) delete ...

MfG fLiP
mir egal wer dein Vater ist- solange ich hier am angeln bin wird nicht über's wasser gelaufen!

Gameprogman

BeitragFr, Jul 01, 2005 21:45
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function shootupdate()
For sh=Each shoot
sh\shy=sh\shy-5
DrawImage schuss,sh\shx,sh\shy
If geg<>Null Then
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete sh
EndIf
Next
End Function




Function enemyupdate()
For geg=Each enemy
geg\enemyy=geg\enemyy+4
DrawImage ship2,geg\enemyx,geg\enemyy
If sh<>Null Then
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete geg
EndIf
Next
End Function




das hab ich jetzt..... er meckert zwar nichtmehr aber löschen tut sich da auch nichts... was mach ich jetzt schon wieder falsch?
www.bandradr.de ! Awesome !

Freeman

BeitragFr, Jul 01, 2005 21:49
Antworten mit Zitat
Benutzer-Profile anzeigen
ich bin der meinung du musst das so machen

BlitzBasic: [AUSKLAPPEN]

Function shootupdate()
For sh=Each shoot
For geg=Each enemy
sh\shy=sh\shy-5
DrawImage schuss,sh\shx,sh\shy
If geg<>Null Then
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete sh
EndIf
Next
Next
End Function




Function enemyupdate()
For sh=Each shoot
For geg=Each enemy
geg\enemyy=geg\enemyy+4
DrawImage ship2,geg\enemyx,geg\enemyy
If sh<>Null Then
If ImagesCollide(schuss,sh\shx,sh\shy,0,ship2,geg\enemyx,geg\enemyy,0) Then Delete geg
EndIf
Next
Next
End Function
MacBook | MacOSX 10.5 | 80GB HDD | 1GB | BlitzMax 1.28
 

f L i P

BeitragFr, Jul 01, 2005 21:51
Antworten mit Zitat
Benutzer-Profile anzeigen
hör auf das was man dir sagt:
function ka()
for a=each aa
for b=each bb
if a<>null and b<>null and imagescollide ....
next
next
end function

fLiP
mir egal wer dein Vater ist- solange ich hier am angeln bin wird nicht über's wasser gelaufen!

Gameprogman

BeitragFr, Jul 01, 2005 21:56
Antworten mit Zitat
Benutzer-Profile anzeigen
WOW... es geht Laughing
danke flip^^
www.bandradr.de ! Awesome !
 

f L i P

BeitragFr, Jul 01, 2005 22:00
Antworten mit Zitat
Benutzer-Profile anzeigen
wofür is man denn da ... Wink

MfG fLiP
mir egal wer dein Vater ist- solange ich hier am angeln bin wird nicht über's wasser gelaufen!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group