STEP in Funktionen benutzen?
Übersicht

![]() |
TravisBetreff: STEP in Funktionen benutzen? |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ich hatte schon öfters das Problem, dass ich in einer Funktion einen Step-Befehl benötige. Dieser muss ja leider einen Konstanten Wert haben, und eine Variable als Konstant zu definieren geht leider nur aus dem Hauptprogramm heraus.
Ich brauche das z.Z. wieder für einen Mosaikeffekt für Bilder, denn ich einfach über eine Funktion ausführen. Code: [AUSKLAPPEN] Graphics 1024, 768, 16, 2 Global Bild = LoadImage("Harry.jpg") ; Mosaikeffekt anwenden Const MosaikBreite = 5 Const MosaikHohe = 5 Mosaik(Bild) ; Bild zentrieren PosX = 1024/2 - (ImageWidth(Bild)/2) PosY = 768/2 - (ImageHeight(Bild)/2) ; Bild anzeigen SetBuffer FrontBuffer() DrawImage Bild, PosX, PosY WaitKey End ; ----- Mosaikeffekt ----- Function Mosaik(Bild) SetBuffer ImageBuffer(Bild) LockBuffer ImageBuffer(Bild) For y = 0 To ImageHeight(Bild) Step MosaikHohe For x = 0 To ImageWidth(Bild) Step MosaikBreite rgb = ReadPixelFast(x, y) For mh = 0 To MosaikHohe-1 For mb = 0 To Mosaikbreite-1 WritePixelFast x+mb,y+mh,rgb Next Next Next Next UnlockBuffer ImageBuffer(Bild) End Function ; ----- Mosaikeffekt ----- So muss ich ja immer zwei Variablen vor dem Funktionsaufruf definieren, anstatt sie direkt in die Funktion zu übergeben. Wie könnte man sowas lösen? |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
![]() |
Kryan |
![]() Antworten mit Zitat ![]() |
---|---|---|
step=3
For I=1 To 100 I=I+step-1 ..hier kannst es verändern Next [edit] geht natürlich nicht mit dem namen step, nehme einfach Stufe oder sowas ![]() |
||
Webspaceanbieter?
Klick hier! Kultige Spieleschmiede? Klick hier! |
OJay |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst eine funktion mehr als einen parameter übergeben... | ||
![]() |
Travis |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Kryan
Das funktioniert, danke. Ist zwar umständlich, aber jetzt kann ich alles bequem über eine Codezeile aufrufen. Code: [AUSKLAPPEN] Function Mosaik(Bild, MosaikBreite, MosaikHohe) SetBuffer ImageBuffer(Bild) LockBuffer ImageBuffer(Bild) For y = 0 To ImageHeight(Bild) y = y + MosaikHohe-1 For x = 0 To ImageWidth(Bild) x = x + MosaikBreite-1 rgb = ReadPixelFast(x, y) For mh = 0 To MosaikHohe-1 For mb = 0 To MosaikBreite-1 WritePixelFast x+mb,y+mh,rgb Next Next Next Next UnlockBuffer ImageBuffer(Bild) End Function @ OJay Klar, aber ich kann in einer Funktion keine Variablen als Konstant definieren. Die brauche ich aber für den Step-Befehl. Also hätte ich dies im Hauptprogramm machen müssen. |
||
www.funforge.org
Ich hasse WASD-Steuerung. Man kann alles sagen, man muss es nur vernünftig begründen können. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group