Feste Werte als Funktionsparameter?
Übersicht

Blitzkrieg BopBetreff: Feste Werte als Funktionsparameter? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi!
Ehm, ich möchte gerne folgendes wissen: Kann man feste Syntax Werte von BB, einer Funktion als Parameter übergeben und sie später dann direkt ausführen? Ich denke das geht nicht, aber fragen wollte ich nochmal. Hier mal nen Pseudo: Code: [AUSKLAPPEN] Graphics 640,480 SetBuffer BackBuffer() Repeat Cls Test(End) Flip Until KeyHit(1):End Function Test(befehl) befehl ;beenden End Function MFG ![]() |
||
~ Hey Ho Let's Go ~ |
feiderehemals "Decelion" |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nein, das geht nicht. | ||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Naja, geht schon, ist aber sehr langsam. Man kann es mit Strings machen...
Pseudocode: Code: [AUSKLAPPEN] Graphics 640,480
SetBuffer BackBuffer() Repeat Cls Test("End") Flip Until KeyHit(1):End Function Test(befehl$) befehl = upper(befehl) select befehl case "END" end case "..." ... end select End Function |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Jo Timo, das ist klar ![]() Ich wollte ja grad verhindern, das der übergebende Parameter als Selektor genutzt wird. Deswegen sprach ich auch, von der direkten Abfrage. Zitat: ...und sie später dann direkt ausführen? Aber trotzdem danke Timo. ![]() |
||
~ Hey Ho Let's Go ~ |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
So was nennt man Funktionspointer, da man in Blitz aber nicht mit Pointern arbeiten kann, geht das nicht. Mit Blitzmax wirds gehen ![]() |
||
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ach...
Du meinst diese Übergabe, festgelegter Befehle? |
||
~ Hey Ho Let's Go ~ |
![]() |
sbrog |
![]() Antworten mit Zitat ![]() |
---|---|---|
keine Ahnung, obs mit festgelegten Befehlen auch geht. Auf jeden Fall kann man einen Pointer auf eine eigene Funktion übergeben ,also
pseudo code : Code: [AUSKLAPPEN] befehl(ende) function befehl(befehl) befehl end function function ende() end end function ob man auch einen festgelegten Befehl,benutzen kann, also auch befehl(end) schreiben kann, weiß ich nicht[/code] |
||
Timo |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
warum willst du denn eine Function erstellen, die eine (beliebige) Funktion ausführt?
Code: [AUSKLAPPEN] end
ist doch einfacher als Code: [AUSKLAPPEN] dothis(end)
oder? ![]() |
||
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Naja vielleicht meint er sowas:
Code: [AUSKLAPPEN] // Bin mir nicht mehr sicher ob die definition so richtig geschrieben ist ;) void (*pfnStatus) (void); pfnStatus = walk; void walk(void) { if(Player_gesehen == true) pfnStatus = attack; else if(health <= 50) pfnStatus = flee; } void attack(void) { Attack(); pfnStatus = walk; } void flee(void) { Lauf_davon(); if(health > 50) pfnStatus = walk; } Wäre zum Beispiel für ne KI etc. sehr praktisch ![]() |
||
- Zuletzt bearbeitet von Jolinah am Do, Nov 18, 2004 23:42, insgesamt einmal bearbeitet
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Das ist aktuell nicht möglich, da es in Blitz aktuell weder Delegates noch Funktionspointer gibt. wird aber gemäss angaben mit Blitz Max dann möglich sein | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
Blitzkrieg Bop |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Timo hat Folgendes geschrieben: warum willst du denn eine Function erstellen, die eine (beliebige) Funktion ausführt?
Code: [AUSKLAPPEN] end
ist doch einfacher als Code: [AUSKLAPPEN] dothis(end)
oder? ![]() Jo, das mit dem End war nur ein simples Beispiel. Wollte ja nur allgemein wissen, ob das geht! ![]() Jolinah hat Folgendes geschrieben: Naja vielleicht meint er sowas:
Code: [AUSKLAPPEN] // Bin mir nicht mehr sicher ob die definition so richtig geschrieben ist ;) void (*pfnStatus) (void); pfnStatus = walk; void walk(void) { if(Player_gesehen == true) pfnStatus = attack; else if(health <= 50) pfnStatus = flee; } void attack(void) { Attack(); pfnStatus = walk; } void flee(void) { Lauf_davon(); if(health > 50) pfnStatus = walk; } Wäre zum Beispiel für ne KI etc. sehr praktisch ![]() Naja... Ich hatte nur ne fixe Idee für ne hübsche Routine bekommen und da kam mir die Frage auf. Dreamora hat Folgendes geschrieben: Das ist aktuell nicht möglich, da es in Blitz aktuell weder Delegates noch Funktionspointer gibt. wird aber gemäss angaben mit Blitz Max dann möglich sein
Okay, danke Dreamora. Nun weiß ich ja bescheid. 8) Dank an alle und hoffen auf BMax ![]() ![]() |
||
~ Hey Ho Let's Go ~ |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group