Seite 1 von 8
Blitz Basic Funktionen in PB
Verfasst: 25.12.2009 18:58
von NathanielBlack
Bin seit gestern(Heillig Abend) stolzer Besitzer von Pure Basic.
Ich habe schon einen Pong-Klon geschrieben und das Beispiel SPiel mit den Fässern abschießen.^^
Ich habe davor immer in Blitz Basic(Demoversion) geproggt und suche momentan das was in BB "Function" hieß in PB.#
Vielleicht kann mir jemand der BB kennt/kann sagen was ich brauche.
mit freundlichen Grüßen,
NathanielBlack, euer neuer Member
Typo im Titel korrigiert - Kaeru fecit
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 19:07
von Kaeru Gaman
Willkommen an Board!
in PureBasic wird nicht zwischen Subroutinen und Funktionen unterschieden.
für beides wird
Procedure verwendet, die kann auch einen Rückgabewert haben.
Code: Alles auswählen
Procedure Mult( a.d, b.d )
Protected result
result = a * b
ProcedureReturn result
EndProcedure
a = Mult( 3,4 )
Debug a
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 19:17
von NathanielBlack
Danke, leiber Kaeru Gaman
Geht auch eine "Prozedur" ohne Parameter?
Also eine die nur ein paar If Blöcke hat weiterleitet zu anderen oder eine die If-Blöcke hat und Texte sowie Sachen auf den Buffer malt?
Mit "ProcedureReturn" führe ich eine vorher geschriebene Prozedur aus?
danke im Vorraus,
NathanielBlack
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 19:21
von Kaeru Gaman
nein, mit ProcedureReturn definierst du den Rückgabewert der Procedure und verläßt sie.
wenn eine Proc nichts zurückgeben soll, kannst du den komplett weglassen.
und ja, klar kann eine Proc auch ohne Parameter gebaut werden, gib ihr einfach leere Klammern.
aufgerufen/ausgeführt wird eine Proc durch die Nennung ihres Namens, als wäre es ein neuer Befehl.
je nachdem was du innerhalb einer Proc machen willst, achte drauf, dass sie ihren eigenen Scope hat.
also, variablen von außerhalb sind innerhalb nicht bekannt und umgekehrt.
werte die du brauchst musst du also als parameter übergeben.
einige wenigen, die oft gebraucht werden, kannst du auch als Shared oder Global definieren.
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:02
von NathanielBlack
Danke!
Ich komme irgendwie nicht weiter. Wäre nett, wenn mir irgendjemand helfen könnte. Hier mein Code:
Code: Alles auswählen
InitSprite()
InitKeyboard()
OpenScreen(800,600,16,"Test")
Procedure FreeGame()
ExamineKeyboard()
ClearScreen(RGB(0,0,0))
StartDrawing(ScreenOutput())
DrawText(0,0,"JuhU!")
StopDrawing()
EndProcedure
Repeat
FreeGame()
Until KeyboardPushed(1)
End
Das mit DrawText hab ich sowieso noch net verstanden.
Und nochmal danke im Vorraus,
NathanielBlack
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:36
von Kaeru Gaman
welche PB-Version benutzt du denn?
nur info-halber, damit wir wissen, wie wir am besten weiterhelfen...
das kann jetzt nämlich verschiedene Ursachen haben.
wenn du ne Box geschenkt bekommen hast, wirds wohl die 4.00 sein...?
beim Kauf per Download wärs die aktuelle 4.40
Infos über Versionen und Verkaufswege:
http://www.purebasic.fr/german/viewtopi ... =9&t=10604
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:36
von man-in-black
Ich glaub du hast ein Flipbuffers() vergessen
Code: Alles auswählen
Procedure FreeGame()
ClearScreen(RGB(0,0,0))
StartDrawing(ScreenOutput())
DrawText(0,0,"JuhU!")
StopDrawing()
FlipBuffers(); <----------------- Dort sollte er hin
ExamineKeyboard()
EndProcedure
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:41
von NathanielBlack
Danke, hat endlich geklappt.
Kann mir eigentlich jemand mal sagen, wieso die RGB Farben bei mir net so funzen wie sie sollten?
Ich hab in einem Tut gesehen(Handbuch das bei PB dabei liegt) das das auch so geht:
Wieso geht es bei mir net? Der startet das Programm noch nicht einmal, wenn ich das schreibe.
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:47
von Kaeru Gaman
yo ich war erst etwas abgelengt von dem DX7/DX9/Screendrawing Problem, deswegen hatte ich nach der Version gefragt.
@MiB
übrigens, es besteht keine notwendigkeit das ExamineKeyboard ans Ende des Durchlauf zu setzen, also solltest du das in deinem Beispiel auch nicht tun.
ändere stets nur das, was fehlerhaft oder problematisch ist.
Nathaniel
das wurde geändert, früher musste man bei Clearscreen die drei Farbkanäle einzeln angeben,
inzwischen verlang der Befehl den selben standartisierten Farbcode wie alle anderen Befehle.
du brauchst nämlich die RGB() funktion nicht unbedingt, du kannst den 24bit Farbwert auch direkt hinschreiben,
oder die Farbe von einer Funktion zurückgeben lassen.
Re: Blitz Basic Funktionen in BP
Verfasst: 25.12.2009 21:51
von man-in-black
@Kaeru Gaman
mhh,
dachte, dass es übersichtlicher ist alle Blöcke (z.B. Mausabfragen, Tastatur...) auch zusammenzuhalten.
is ja auch wurst^^