Expecting "Until" or "forever" bei Colli

Übersicht BlitzBasic Beginners-Corner

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen

 

Puterich

Betreff: Expecting "Until" or "forever" bei Colli

BeitragSo, Dez 17, 2006 0:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Mein Problem:

Wenn ich denn Kollisions Code einfüge dan Kommt Expecting Until or forever als Fehler meldung. An was liegt das?

Code: [AUSKLAPPEN]

Graphics 640,480,16
SetBuffer BackBuffer()
gfxBox=LoadImage("C:\car.bmp")
boxX=Rnd(50,610)
boxY=Rnd(50,430)
Repeat
Dim Auto(359)
TFormFilter 2
For winkel = 0 To 359
auto(winkel)=LoadImage("C:\policecar.bmp")
HandleImage auto(winkel),40,13
RotateImage auto(winkel),winkel
MaskImage auto(winkel), 0, 0,0 
Next
x#,y#
geschwindigkeit#=4

If KeyDown(203) Then winkel= winkel -3 
If KeyDown(205) Then winkel= winkel +3
If winkel > 359 Then winkel = 0
If winkel < 0 Then winkel = 359
If KeyDown(200) Then
x = x + Cos(winkel)*geschwindigkeit
y = y + Sin(winkel)*geschwindigkeit
Cls
DrawImage gfxBox,boxX,boxY
DrawImage auto(winkel),circleX,circleY
Until ImagesCollide (gfxBox,boxX,boxY,0,auto(winkel),circleX,circleY,0)
Text 0,0, "Kollision!"
Flip
WaitKey
End

dank im voraus Razz
Print "Halt Die Fresse"

FOODy

BeitragSo, Dez 17, 2006 0:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ein ungeschlossenes Repeat, welches du mit Until oder Forever schließen sollst.
Zitat:

Graphics 640,480,16
SetBuffer BackBuffer()
gfxBox=LoadImage("C:\car.bmp")
boxX=Rnd(50,610)
boxY=Rnd(50,430)
Repeat
Dim Auto(359)
TFormFilter 2
For winkel = 0 To 359
auto(winkel)=LoadImage("C:\policecar.bmp")
HandleImage auto(winkel),40,13
RotateImage auto(winkel),winkel
MaskImage auto(winkel), 0, 0,0
Next
x#,y#
geschwindigkeit#=4

If KeyDown(203) Then winkel= winkel -3
If KeyDown(205) Then winkel= winkel +3
If winkel > 359 Then winkel = 0
If winkel < 0 Then winkel = 359
If KeyDown(200) Then
x = x + Cos(winkel)*geschwindigkeit
y = y + Sin(winkel)*geschwindigkeit
Cls
DrawImage gfxBox,boxX,boxY
DrawImage auto(winkel),circleX,circleY
Until ImagesCollide (gfxBox,boxX,boxY,0,auto(winkel),circleX,circleY,0)
Text 0,0, "Kollision!"
Flip
WaitKey
End



EDIT:
Lol Very Happy
Hab ich nicht gesehen. *AufUhrSchau* Rolling Eyes
BlitzMax + MaxGUI, 64-bit Arch Linux: Intel Core² E8500 | 8 GB Ram | GeForce GTX 460 · 1024 MB
  • Zuletzt bearbeitet von FOODy am So, Dez 17, 2006 1:05, insgesamt einmal bearbeitet

StepTiger

BeitragSo, Dez 17, 2006 0:47
Antworten mit Zitat
Benutzer-Profile anzeigen
das ist hier nicht das problem. Es existiert ja ein until

das problem ist, dass du eine IF Funktion öffnest, ohne sie wieder zu schließen
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragSo, Dez 17, 2006 0:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
If KeyDown(200) Then
x = x + Cos(winkel)*geschwindigkeit
y = y + Sin(winkel)*geschwindigkeit
Cls
DrawImage gfxBox,boxX,boxY
DrawImage auto(winkel),circleX,circleY
End if ;<<<<<<<<<<<<<<<<<das fehlt!
Until ImagesCollide (gfxBox,boxX,boxY,0,auto(winkel),circleX,circleY,0)


Formatiere den Code und es werden solche Fehler nicht mehr so oft kommen!
Dafür gibt es auch ein Programm
Hier zu finden
[BB2D | BB3D | BB+]

Holzchopf

Meisterpacker

BeitragSo, Dez 17, 2006 0:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast ein EndIf vergessen Rolling Eyes ich sag dir aber nicht wo *hihi* Aber kleiner Tipp:
Formatier den Code anständig, da dürfen ruhig Leerzeilen drin sein und was noch wichtiger ist: Eingerückte Funktionsblöcke. Also alles was in Schleifen oder If-Blöcken steht mal n Tabulator nach rechts rücken Wink Wenn du das machst, wirst du nämlich selber herausfinden, wo eine Anweisung fehlt, die einen Block abschliessen soll.

Ausserdem hast du noch Dinge in der "Hauptschleife", die da einfach nicht hingehören, weil sonst das Programm unter Umständen nicht flüssig laufen wird. Dim zB, oder das LoadImage und die Bild-Manipulations-Funktionen.

Ich denke mal, wenn du das Repeat dort hin schiebst, wo du zZ die Leerzeile hast, bessert sich das.

Wo das EndIf hinkommt, weisst du wohl selber.

MfG

Edit: Verdammt, die BB-Community ist Samstagabends um 23:45 immer noch sehr aktiv, da kann man ja nicht mal in Ruhe Beiträge verfassen....
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
 

Puterich

BeitragSo, Dez 17, 2006 21:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]


SetBuffer BackBuffer()

gfxBox=LoadImage("C:\car.bmp")
boxX=Rnd(50,610)
boxY=Rnd(50,430)

Repeat
           Dim Auto(359)
           TFormFilter 2
           For winkel = 0 To 359
           auto(winkel)=LoadImage("C:\policecar.bmp")
           HandleImage auto(winkel),40,13
           RotateImage auto(winkel),winkel
           MaskImage auto(winkel), 0, 0,0
Next

x#,y#
geschwindigkeit#=4


   If KeyDown(203) Then winkel= winkel -3

   If KeyDown(205) Then winkel= winkel +3

   If winkel > 359 Then winkel = 0

   If winkel < 0 Then winkel = 359

   If KeyDown(200) Then
    x = x + Cos(winkel)*geschwindigkeit
    y = y + Sin(winkel)*geschwindigkeit
EndIf


Cls

DrawImage gfxBox,boxX,boxY
DrawImage auto(winkel),circleX,circleY

Until ImagesCollide (gfxBox,boxX,boxY,0,auto(winkel),circleX,circleY,0)
Text 0,0, "Kollision!"

Flip

WaitKey
End


Also ich galbe das Endif kommt nach der Steuerung hin. Aber es geht immer noch nicht es kommt immernoch Expecting Until or Forver. Confused Question Question [/code]
Print "Halt Die Fresse"
  • Zuletzt bearbeitet von Puterich am So, Dez 17, 2006 21:44, insgesamt einmal bearbeitet

StepTiger

BeitragSo, Dez 17, 2006 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
Verdammt! Formatier den Code:

Noch ein solcher code und ich schau mir nie wieder was von dir an *päh*
Code: [AUSKLAPPEN]
Graphics 640,480,16
SetBuffer BackBuffer()

gfxBox=LoadImage("C:\car.bmp")
boxX=Rnd(50,610)
boxY=Rnd(50,430)

Repeat
   
   Dim Auto(359)
   TFormFilter 2
   
   For winkel = 0 To 359
   
      auto(winkel)=LoadImage("C:\policecar.bmp")
      HandleImage auto(winkel),40,13
      RotateImage auto(winkel),winkel
      MaskImage auto(winkel), 0, 0,0
   
   Next
   
   x#,y#
   geschwindigkeit#=4
   
   If KeyDown(203) Then winkel= winkel -3
   If KeyDown(205) Then winkel= winkel +3
   If winkel > 359 Then winkel = 0
   If winkel < 0 Then winkel = 359
   
   If KeyDown(200) Then
   
      x = x + Cos(winkel)*geschwindigkeit
      y = y + Sin(winkel)*geschwindigkeit
   
   EndIf
   
   Cls
   
   DrawImage gfxBox,boxX,boxY
   DrawImage auto(winkel),circleX,circleY
   
Until ImagesCollide (gfxBox,boxX,boxY,0,auto(winkel),circleX,circleY,0)

Text 0,0, "Kollision!"

Flip

WaitKey
End


was soll die Zeile bezwecken?
Code: [AUSKLAPPEN]
   x#,y#
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.

BladeRunner

Moderator

BeitragSo, Dez 17, 2006 21:44
Antworten mit Zitat
Benutzer-Profile anzeigen
In welcher Zeile zeigt er die Meldung ?
Genau, da stehen einfach mal Variablen namen, ohne dass der Rechner weiss was er damit soll.
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

StepTiger

BeitragSo, Dez 17, 2006 21:46
Antworten mit Zitat
Benutzer-Profile anzeigen
BladeRunner hat Folgendes geschrieben:
In welcher Zeile zeigt er die Meldung ?


in eben dieser:
Code: [AUSKLAPPEN]
   x#,y#


Wink
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
  • Zuletzt bearbeitet von StepTiger am So, Dez 17, 2006 21:48, insgesamt einmal bearbeitet

BladeRunner

Moderator

BeitragSo, Dez 17, 2006 21:47
Antworten mit Zitat
Benutzer-Profile anzeigen
Du hast geantwortet während ich am Tippen war.
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

StepTiger

BeitragSo, Dez 17, 2006 21:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Achso! Smile
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Puterich

BeitragSo, Dez 17, 2006 21:57
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ihr scherz kekse Es ist ziemlich komsich:

1. Habe ich keine ahnung gehabt von Forrmatierung de Codes und finde das ich das garnicht so schlecht gemacht habe.

2.was x#, y# bewirken soll?
Ich dachte das ich somit die Koordinaten angebe aber egal passiert nichtmehr.

3.Der Witz ist das es in garkeiner Zeile der Fehler gefunden wird.

Verzwickt.

PS: Ihr könnt also wirklich schnell Antworten. Das muss man euch lassen. Very Happy
Print "Halt Die Fresse"

StepTiger

BeitragSo, Dez 17, 2006 21:59
Antworten mit Zitat
Benutzer-Profile anzeigen
also erstmal:

wenn du den debugger an hast, dann wird dir die Zeile gezeigt, darauf schonmal gekommen?

Zweitens:
x# und y# sind variablen und haben nichts mit irgendwelchen befehlen zu tun

weder werden sie addiert, noch subtrahiert, noch dividiert oder multipliziert.

Was sollen sie bezwecken?

falls du die box da anzeigen lassen willst, machst du eben drawimage box,x,y oder so...
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Puterich

BeitragSo, Dez 17, 2006 22:02
Antworten mit Zitat
Benutzer-Profile anzeigen
bei 3d: Die Fehler meldung kommt bevor der Debugger starten kann. Und bei 2d hat es keinen und es wirt auch keine zeile markiert.
Print "Halt Die Fresse"

StepTiger

BeitragSo, Dez 17, 2006 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
"bevor der debugger starten kann" geht nicht!

Der Debugger führt die Anwendung aus, nicht umgekehrt.
Noch gestern standen wir am Abgrund, doch heute sind wir schon einen Schritt weiter.
Computer:
AMD Sempron 3000+; ATI Radeon 9800 Pro; 512 MB DDR RAM 400Mhz; Asus E7N8X-E Deluxe; Samsung 200GB HD 5.4ns acces t
Gewinner: BP Code Compo #2
Π=3.141592653589793238...<--- und das aus dem kopf Laughing
Seit der Earthlings-Diskussion überzeugter Fleisch(fr)esser.
 

Puterich

BeitragSo, Dez 17, 2006 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Kaum klicke ich run kommt die Fehler meldung. pobiers mal geht es bei dir?
Print "Halt Die Fresse"
 

Dreamora

BeitragSo, Dez 17, 2006 22:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Zu 1. Da kann man drüber streiten. Wenn du ihn einfach nicht formatierst darfst du auch keine Hilfe erwarten. Vor allem LoopFehler / If Fehler (die Art wie du es hattest) können prinzipiell nur entstehen wenn man Code nicht einrückt.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

BladeRunner

Moderator

BeitragSo, Dez 17, 2006 22:17
Antworten mit Zitat
Benutzer-Profile anzeigen
Er meldet dir den Fehler und danach steht der Cursor zu Beginn der Zeile bei Der der Fehler gefunden wurde.
Allerdings hat das wirklich nichts mit dem Debugger zu tun, denn der Fehler tritt schon vorher auf, beim Compilieren.
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
 

Puterich

BeitragSo, Dez 17, 2006 22:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Also zu dem Formatieren. Da gebe ich mir jetzt mühe. Müsst sagen wenn ich was nicht richtig mache.

Und zu BaldeRunner
Der Corser soll sich also auf dem Anfang des Codes befinden?

Nein das tut er nicht.
Print "Halt Die Fresse"
 

Dreamora

BeitragSo, Dez 17, 2006 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Wird er in dem Fall leider auch nicht umbedingt, weil das ein Scope Closing Error ist und der kommt dann dort wo er auftritt (beim nächsten ScopeClose) was nicht umbedingt dort ist wo das Until / While / Endif sein sollte ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Gehe zu Seite 1, 2  Weiter

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group