"Object does not exist"

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Waveblue

Betreff: "Object does not exist"

BeitragDo, Dez 16, 2004 20:41
Antworten mit Zitat
Benutzer-Profile anzeigen
hier ist mal wieder euer unglaublich noobiger Noob Waveblue! Embarassed

Ich beschäftige mich mit den Types, habs glaub ich auch schon ein wenig begriffen, hab mich mal an einem Seifenblasenshooter versucht, und prompt:

"Object does not exist"

?????

Ich hab doch nur Images!!


oder hab ich da was mit den Types nich kapiert?

Code: [AUSKLAPPEN]
Graphics 640,480,32,1
SeedRnd=MilliSecs()
SetBuffer BackBuffer()
   fonti=LoadFont("Flubber",34,False,False,False)
SetFont fonti
AppTitle"Bubbleshooter!"
   Global faden=LoadImage("zieler.bmp")
   Global blasenbild=LoadImage("bubbli.bmp")
   MidHandle blasenbild
   MidHandle faden

Type blase
Field xcoor
Field ycoor
Field speed
End Type

;-------------------
Global feldi.blase ;die Globalen
;-------------------


For i=1 To 10
feldi=New blase
feldi.blase\xcoor=Rnd(10,600)
feldi.blase\ycoor=Rnd(100,480)
feldi.blase\speed=Rnd(1,10)
Next



Repeat ;Hauptschleife
Cls
Text 320,40,"Bubbleschooter",True,False
   x=MouseX()
   y=MouseY()
   blubber()
   DrawImage faden, x,y


Flip
Forever



;die Funktionen:

Function neublase()
End Function


Function blubber()
   feldi=First blase

For feldi=Each blase
   DrawImage blasenbild ,feldi\xcoor,feldi\ycoor
   Kollision()

   feldi\ycoor=feldi\ycoor-speed

Next

If feldi\ycoor<-5 Then neublase()
End Function




Function kollision()
End Function


brauch hilfe!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

simi

BeitragDo, Dez 16, 2004 20:49
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]

Function blubber()
feldi=First blase

For feldi=Each blase
DrawImage blasenbild ,feldi\xcoor,feldi\ycoor
Kollision()

feldi\ycoor=feldi\ycoor-speed

Next

feldi = Last blase ;<<<<<<<<<<<<<<<<<<<<<<<<<

If feldi\ycoor<-5 Then neublase()
End Function



Du musst immer ein Typ ausgewählt haben, und das hast du dort nicht....

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Dez 16, 2004 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function blubber() 
feldi=First blase ; <<<<dies auch ......weg damit


For feldi=Each blase
DrawImage blasenbild ,feldi
[BB2D | BB3D | BB+]

Holzchopf

Meisterpacker

BeitragDo, Dez 16, 2004 20:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Sehr einfallsreicher Titel Rolling Eyes

Nimm einfach mal das
BlitzBasic: [AUSKLAPPEN]

If feldi\ycoor<-5 Then neublase()

noch in die For - Next Schleife mit rein.
Sonst wird irgendwie das überletzte Feld angesprochen oder so... Kann mir das gerade auch nicht so wirklich erklären.

MfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragDo, Dez 16, 2004 20:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Die Schleife wird von anfang an durchlaufen, und ähnlich after zum nächsten gesprungen!
Wenn der Type Null ist, wird die schleife nicht mehr ausgefüht,
danach muß dann mit last oder first erst eins markieren werden bzw den zeiger draufstellen
[BB2D | BB3D | BB+]

Waveblue

BeitragDo, Dez 16, 2004 21:22
Antworten mit Zitat
Benutzer-Profile anzeigen
WAAAAAHOOOOOOOOOOO!!! Laughing Laughing Laughing

Waveblue hat was dazugelernt *glücklichsei*, *durchszimmerspring*



nun hab ich einen ganz passablen Bildschirmschoner!
*amkopfkratz*
denn das Schießen klappt irgendwie nich!

Code: [AUSKLAPPEN]
Graphics 640,480,32,1
SeedRnd=MilliSecs()
SetBuffer BackBuffer()
   fonti=LoadFont("Flubber",34,False,False,False)
SetFont fonti
AppTitle"Bubbleshooter!"
   

Type blase
Field xcoor
Field ycoor
Field speed
End Type

;-------------------
Global feldi.blase ;die Globalen
Global faden=LoadImage("zieler.bmp")
Global blasenbild=LoadImage("bubbli.bmp")
Global y
Global x
MidHandle blasenbild
   MidHandle faden
;-------------------


For i=1 To 10
feldi=New blase
feldi.blase\xcoor=Rnd(10,600)
feldi.blase\ycoor=Rnd(100,480)
feldi.blase\speed=Rnd(1,10)
Next



Repeat ;Hauptschleife
Cls
Text 320,40,"Bubbleschooter",True,False
   x=MouseX()
   y=MouseY()
   blubber()
   DrawImage faden, x,y


Flip
Forever



;die Funktionen:

Function neublase()
feldi\xcoor=Rnd(10,600)
feldi\ycoor=480
feldi\speed=Rnd(1,10)
End Function


Function blubber()   
For feldi=Each blase
   feldi\ycoor=feldi\ycoor-feldi\speed
   DrawImage blasenbild ,feldi\xcoor,feldi\ycoor
   Kollision()

   
If feldi\ycoor<-5 Then neublase()

Next
feldi=Last blase

End Function




Function kollision()
If MouseHit(1) And ImagesCollide(faden,x,y,0,blasenbild,feldi\xcoor,feldi\ycoor,0)=1 Then neublase()
If KeyHit(1) Then End
End Function


ich kanns mir nicht erklären!
Mit Keydown gehts, aber dann hätt ich ein Maschinengewehr, und das will ich nich!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name
 

noir

BeitragDo, Dez 16, 2004 21:36
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den code nur überflogen,
aber du hast, wenn eine blase getroffen wird nur eine funktion für neue blasen aufgerufen und die getroffene blase nicht "zerstört", das wolltest du doch erreichen oder?

Waveblue

BeitragDo, Dez 16, 2004 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
naja, die Blase soll verschwinden und am unteren Bildschirmrand neu entstehen!

Das klappt sogar selten!
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name
 

noir

BeitragDo, Dez 16, 2004 21:50
Antworten mit Zitat
Benutzer-Profile anzeigen
?

ich würde das anderes an gehen, erstell von mir aus 10 blasen, gib jeder blase den wert eins wenn sie angezeigt werden soll und z.b den wert 0 wenn die blase abgeschossen ist.

also für jede blase
x und y-pos
speed
und aktiv oder weg
 

noir

BeitragDo, Dez 16, 2004 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
oder wenn du es mit types machen willst zerstöre (delete) die getroffene blase und erstelle eine neue mit neuen koordinaten.

Waveblue

BeitragDo, Dez 16, 2004 22:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If MouseHit(1) And ImagesCollide(faden,x,y,0,blasenbild,feldi\xcoor,feldi\ycoor,0) Then


irgendwie sieht das Programm dieses hier nicht als erfüllt an!
Aber warum?
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Ofenrohr

BeitragDo, Dez 16, 2004 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If (MouseHit(1)) And (ImagesCollide(faden,x,y,0,blasenbild,feldi\xcoor,feldi\ycoor,0)) Then


du musst um die bedingungen klammern setzen, weil du AND benutzt.

mfg ofenrohr
Ofenrohr.net

DA

BeitragDo, Dez 16, 2004 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
Moin,

Habe mir jetzt nicht alles durch gelesen, aber ich denke du must vorerst den Type laden.
Das geht so:
BlitzBasic: [AUSKLAPPEN]

For feldi = Each blase
If (MouseHit(1)) And (ImagesCollide(faden,x,y,0,blasenbild,feldi\xcoor,feldi\ycoor,0)) Then
Next


Schuldigung wen ich mist geschrieben habe.

Thx
DarkAngel
Deutscher Blitz Basic Chat

Waveblue

BeitragDo, Dez 16, 2004 22:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hab den Fehler gefunden!!
Es lag daran, das Mousehit schonmal abgefragt wurde!

vielen Dank euch allen! Laughing


edit: das nächste mal gibts einen sinnvolleren Threadnamen! Wink
This is 10% luck
20% skill
15% concentrated power of will
5% pleasure, 50% pain
and 100% reason to remember the name

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group