Function fehler

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

azureuz

Betreff: Function fehler

BeitragMi, Jun 29, 2005 18:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,
so sieht ein Teil meines Codes aus:

BlitzBasic: [AUSKLAPPEN]
	Function menue()
Cls
While Not KeyHit(1)

prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")
End Function


Nun sagt er mir als Fehler an:

Error: "'End Function' without 'Function'" File: "noname.bb" Line: 34 Column: 2

Aber wo ist das Problem?
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Dreamora

BeitragMi, Jun 29, 2005 18:15
Antworten mit Zitat
Benutzer-Profile anzeigen
da fehlt das wend also das while-wend scope ist nicht abgeschlossen
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

azureuz

BeitragMi, Jun 29, 2005 18:31
Antworten mit Zitat
Benutzer-Profile anzeigen
Wo soll das hin? Die Function darf nicht in eine While/Wend schleife. DAs ist ja das Problem! :/

Hier nochmal der komplette Code:

BlitzBasic: [AUSKLAPPEN]
Graphics 650,350,32,2
SetBuffer BackBuffer()

AppTitle \"NoName\"

start=menue()

Global autofrm=0
Global autox=250
Global autoy=295
Global streckex=0
Global streckey=0
Global menue_anzeige=0
Global wagenid=1
Global streckenid=0
Global zeit=0
Global mx=MouseX()
Global my=MouseY()

chnBackground=PlayMusic(\"Musik\wannarideremix.mp3\")
werbung=LoadImage(\"Bilder/Sonstiges/werbung.png\")
name=LoadImage(\"Bilder/Sonstiges/noname2.png\")
logo=LoadImage(\"Bilder/Sonstiges/locar_logo.png\")

Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"civic.bb\"
Include \"holdon.bb\"

Function menue()



End Function

...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

skey-z

BeitragMi, Jun 29, 2005 18:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Function menue()
Cls
While Not KeyHit(1)

prebg=LoadImage("Bilder/Sonstiges/prebg.png")
End Function


du hast in der funktion ne while schleife gestartet, sie aber nicht geschlossen, das wend muss vor "End Function"

außerdem solltest du das cls in die schleife schreiben
Awards:
Coffee's Monatswettbewerb Feb. 08: 1. Platz
BAC#57: 2. Platz
Twitter
  • Zuletzt bearbeitet von skey-z am Mi, Jun 29, 2005 18:40, insgesamt einmal bearbeitet
 

Timo

BeitragMi, Jun 29, 2005 18:38
Antworten mit Zitat
Benutzer-Profile anzeigen
azureuz hat Folgendes geschrieben:
Die Function darf nicht in eine While/Wend schleife.

Aber die While/Wend Schleife darf in eine Funktion Wink


BlitzBasic: [AUSKLAPPEN]
Function menue()
Cls
While Not KeyHit(1)
prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")
Wend
End Function


aber probier den Code bitte nicht aus, denn er stimmt nicht ganz, du solltest das bild nur einmal laden und dann zum beispiel in einer Schleife zeichnen lassen mit qlDrawImage oder qlDrawBlock Smile

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMi, Jun 29, 2005 18:41
Antworten mit Zitat
Benutzer-Profile anzeigen
war es vielleicht so gedacht!
BlitzBasic: [AUSKLAPPEN]
Function menue()
prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")

While Not KeyHit(1)
Cls
;...tuwas
Wend
FreeImage prebg
End Function
[BB2D | BB3D | BB+]
 

azureuz

BeitragMi, Jun 29, 2005 19:40
Antworten mit Zitat
Benutzer-Profile anzeigen
ne...das geht nicht.

in timos form kommt nur ein schwarzes bild und die musik geht erst los wenn ich ESC drücke und bei rallimens stockt der ganze pc... :/
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Alfadur

BeitragMi, Jun 29, 2005 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
rallimen seins funktioniert prächtig, aber du solltest dir für ne menu struktur was anderes ausdenken ...


const state_menu=0
const state_game=1
const state_quit=2
global gamestate=state_menu

function menu()
end function

function game()
end function

while not keyhit(1)
cls
select gamestate
case state_menu
menu()
case state_game
game()
case state_quit
end
end select
flip 0
wend


und in den game() und menu() funktionen keine hauptschleife ...
A Cray is the only computer that runs an endless loop in less than four hours.
 

azureuz

BeitragMi, Jun 29, 2005 21:52
Antworten mit Zitat
Benutzer-Profile anzeigen
es ruckelt leider wie sau...alles höngt(man sieht nur ein schwarzes bild).

wer mir nicht glaubt, dem kann ich die dateien mal hochladen!

edit: es geht jetzt schon, aber nach einer zeit hängt alles...

hier nochmal der code:

BlitzBasic: [AUSKLAPPEN]
Graphics 650,350,32,2
SetBuffer BackBuffer()

AppTitle \"NoName\"

Global autofrm=0
Global autox=250
Global autoy=295
Global streckex=0
Global streckey=0
Global menue_anzeige=0
Global wagenid=1
Global streckenid=0
Global zeit=0
Global mx=MouseX()
Global my=MouseY()

Const state_menu=0
Const state_game=1
Const state_quit=2
Global gamestate=state_menu

chnBackground=PlayMusic(\"Musik\wannarideremix.mp3\")
werbung=LoadImage(\"Bilder/Sonstiges/werbung.png\")
name=LoadImage(\"Bilder/Sonstiges/noname.png\")
logo=LoadImage(\"Bilder/Sonstiges/locar_logo.png\")
prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")

Function menu()

End Function

Function game()

End Function

Function quit()

End Function

While Not KeyHit(1)
Cls

Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"civic.bb\"
Include \"holdon.bb\"

Select gamestate
Case state_menu
menu()
Case state_game
game()

Case state_quit
End

End Select
Flip 0
Wend

...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...

Spikespine

BeitragMi, Jun 29, 2005 22:12
Antworten mit Zitat
Benutzer-Profile anzeigen
Setze mal die Includes außerhalb der While/wend schleife.

Spike
Athlon 64 3700+ | 1024 MB RAM | GeForce 7900 GT | Blitz2D, Blitz3D, BlitzPlus, BlitzMax
 

azureuz

BeitragMi, Jun 29, 2005 22:19
Antworten mit Zitat
Benutzer-Profile anzeigen
wenn ich sie über die while schleife mache kommt ien schwarzes bild..wenn ich sie in einer funktion lade is nichts anders....es stockt trotzdem nach einer gewissen zeit.
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Dreamora

BeitragMi, Jun 29, 2005 23:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Das stocken kommt wegen dem LoadImage

Lade das Bild am anfang in eine globale Variable und verwende danach nur noch diese Variable. Andernfalls wird dir irgendwann der Speicher ausgehen und entweder das Programm abstürzen oder der PC je nach Windowsversion
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

azureuz

BeitragMi, Jun 29, 2005 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
so siehts nun aus und es hakt immernoch:
ich hab keine ahnung warum... :/

BlitzBasic: [AUSKLAPPEN]
Graphics 650,350,32,2
SetBuffer BackBuffer()

AppTitle \"NoName\"

Global autofrm=0
Global autox=250
Global autoy=295
Global streckex=0
Global streckey=0
Global menue_anzeige=0
Global wagenid=0
Global streckenid=0
Global zeit=0
Global mx=MouseX()
Global my=MouseY()
Global name=LoadImage(\"Bilder/Sonstiges/noname.png\")

Const state_menu=0
Const state_game=1
Const state_quit=2
Global gamestate=state_menu

Global chnBackground=PlayMusic(\"Musik\wannarideremix.mp3\")
Global werbung=LoadImage(\"Bilder/Sonstiges/werbung.png\")
Global logo=LoadImage(\"Bilder/Sonstiges/locar_logo.png\")
Global prebg=LoadImage(\"Bilder/Sonstiges/prebg.png\")

Function menu()
streckex=streckex-5

If streckex=-650 Then
streckex=0
End If

DrawImage name, 160, 10

Text 5,5,\"Wagenid:\"+wagenid
End Function

Function game()

End Function

Function quit()

End Function



While Not KeyHit(1)

Include \"steuerung.bb\"
Include \"hasjasu.bb\"
Include \"civic.bb\"
Include \"holdon.bb\"

Select gamestate
Case state_menu
menu()
Case state_game
game()

Case state_quit
End

End Select
Flip ;0
Cls
Wend
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Dreamora

BeitragMi, Jun 29, 2005 23:19
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm aus dem raus sollte es eigentlich nicht stocken, also dürfte das problem in einem deiner Includes sein ...
sofern du dort drin etwas ladest: files anders auslegen, so das alles laden am anfang stattfindet.

Includes sind ja speziell für funktionen ausgelegt, so dass man die includes an den anfang der datei schreibt und danach nur noch die funktionen aufruft (damit entstehen auch keine "laden im ablauf" ruckeleien und ähnliches mehr)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

azureuz

BeitragMi, Jun 29, 2005 23:28
Antworten mit Zitat
Benutzer-Profile anzeigen
hier nochmal die includes:

civic:
BlitzBasic: [AUSKLAPPEN]
If wagenid=0 Then
autoname=HondaCivic

auto=LoadAnimImage(\"Bilder/Autos/civic/civic.png\", 159,46,0,6)
MaskImage auto,0,0,255
DrawImage auto, autox, autoy, autofrm
End If


hasjasu:
BlitzBasic: [AUSKLAPPEN]
If streckenid=0 Then
streckenname=Hasjasu

strecke=LoadImage(\"Bilder/Strecken/hasjasu/hasjasu.png\")
DrawImage strecke, streckex, streckey
End If


holdon:
BlitzBasic: [AUSKLAPPEN]
If wagenid=1 Then
autoname=HoldonCommodore

auto=LoadAnimImage(\"Bilder/Autos/holdon/holdon.png\", 161,52,0,1)
MaskImage auto,0,0,255
DrawImage auto, autox, autoy, autofrm
End If


steuerung:
BlitzBasic: [AUSKLAPPEN]
If KeyDown(205) Then
streckex=streckex-5
End If

If KeyDown(2) Then
wagenid=wagenid=0
End If

If KeyDown(3) Then
wagenid=wagenid=1
End If
...am 11. September 2001 starben 30.000 Kinder weil sie kein Essen hatten...
 

Dreamora

BeitragMi, Jun 29, 2005 23:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wieder das Problem von vorhin:
LoadXXX muss am anfang des Programmes oder am Anfang eines Levels in globale Variablen geladen werden. Aktuell lädst du es bei jedem Durchlauf erneut, bis der Speicher und irgendwann der PC den Dienst quittiert.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group