Foro | | | | Tango | Jetzt bin I, con mi Latein al Ende. Yo bekomme lo simplemente no hin. ¿Cómo se puede Yo porque Archivos, Bilder, Textos en el Hintergrund nachladen? Geht el überhaupt y si sí, como? Mir fehlt simplemente el Ansatz dazu.
Alle Versuche el Yo gemacht habe legen sämtliche Animationen lahm a ellos geladen son.
¿Cómo se puede al prinzipiell lösen? |
| | | | |
| | Georg Teles | Tag,
sag veces genau, qué Usted antes hast, al besten con un Ejemplo y welche Profanversion Usted benutzt. Soweit Sé que, hay una Hilfedatei en xProfan en, such hay zB después de Bildhandle
Yo melde mich später, si yo daheim bin.
Servus |
| | | | |
| | Tango | Georg Teles (10.03.2017)
Tag,
sag veces genau, qué Usted antes hast, al besten con un Ejemplo y welche Profanversion Usted benutzt. Soweit Sé que, hay una Hilfedatei en xProfan en, such hay zB después de Bildhandle
Yo melde mich später, si yo daheim bin.
Servus
¡Hola Georg,
Yo große Problemas mi Diashow en OpenGL-Base flüssig a betreiben. El oGL-Geschichte se ejecuta super y como Yo el pensamiento habe. Lade Yo nun una Bilderserie oder auch sólo una Bild, stoppt sämtliche Animation y zwar así largo a el/el Bild(él) geladen son/es. Danach klappt alles. Deshalb war mi Überlegung el Bilderserie ebend en el Hintergrund en el Speicher a invitar während el Animation en el Vordergund ya se ejecuta y algo Anderes Espectáculos como el Bilder.
Yo hänge veces media kompletten Wurstel-Test-Code a.
Wen Usted el Testest lege veces en el Programmverzeichnis el folgenden Ordner a:
X:/Programmverzeichnis/Bilder/1/1.....20.jpg etc.
y una Ordner nombre Sound y packe hay una mp3 con "1.mp3" hinein.
Achso: Yo benutze Xprofan 3.1
Var anzahl% = 0
Var position! = 25
Var color! = 0
Declarar hfont&, font&
Declarar Ende%, el%'Variable para Abbruchbedingung
Declarar pos!, rot!'Positions- y RotationsVariablen
Declarar textur%, kugel#
Declarar texture%[500]
Declarar time&
declarar r!
'Legt el Fensterform fest
'Ventana de Estilo 64 + 16 'Ventana sin Rahmen y
Ventana %MaxX, %MaxY'Ventana a Desktopauflösung adaptar
CLS 0
'Initialisiert OpenGL
oGL("Init", %hWnd, 0, 0, 0, 0)
oGL("BlendMode",1)
'oGL("LoadXPGL", "Linie.xpgl") 'Lädt Linienpunkte de Expediente Linie.xpgl
'oGL("UseXPGL", 1) 'Verwendet esta Linienpunkte
'Legt Lauftschrift fest
hfont& = create("Font", "Courier New", 32, 0, 0, 10, 0)'Lädt Font en Variable hfont&
font& = oGL("OutlineFont", hfont&, 0.3)'Weist hfont& oGL a
deleteobject hfont&'Zerstört Objeto hfont& otra vez, porque lo después de Zuweisung no mehr benötigt se
Directorio 1'Liest Bilddaten una
'Spielt Mukke de
MIDI("Play", $PROGDIR + "Sound\" + "1.mp3", -1)
SetTimer 5'max. 50 Frames /sek.
Sinestar encargado ende%'Wenn no Abbruchbedingung erkannt wurde, durchlauf des Timers
If IsKey(27)'es Abbruchbedingung "Escape-Taste" erfüllt, entonces
Ende% = 1'setzte Variable Ende% en 1
EndIf'y beende esta Abfrage
'imprimir "noch una test"
Case position! < -100 : position! = 25'Wenn Texto hinter linkem Bildschirmrand verschwunden entonces starte ihn otra vez de Vorne
Case color! = 90 : color!=1'Wenn Rotationswinkel 90Grad erreicht, entonces en 0 conjunto
OpenGL()'Zeichne derweil OpenGL
EndWhile'Springe a Sinestar encargado
KillTimer'Beende después de 5ms el Temporizador oder mejor dijo: Springe después de 5ms otra vez para SetTimer
End
Proc Directorio
Parámetros Folder$'El Parameterübergabe des aktuellen Verzeichnisses
Var counter% = 0 : Var i% = 0'Zählvariablen para Einlesen el Bilder
Declarar Expediente$, bild&'Expediente y Bildnummer
Declarar Pfad$, Bilder$'Pfad des aktuellen Verzeichnisses y Bilddaten en Vaiable speichern
'Bildverzeichnis Initialisieren
Pfad$ = $PROGDIR + "Bilder\" + Folder$ + "\"
ChDir Pfad$
Pfad$ = Pfad$ + "*.jpg"
Bilder$ = FindFirst$(Pfad$)
AddFiles bilder$
'sucht después de Bilder y weist Diese el Variable Bilder$ a
Sinestar encargado %IOResult
bilder$=FindNext$()
addfiles bilder$
inc counter%
EndWhile
'ordnet el geladenen Bilder el TexturArray a
whilenot anzahl% = counter%
DATEI$ = ListBoxItem$(anzahl%)
bild& = Crear("hsizedPic",-1, Expediente$,1280,1024,1)
casenot bild& : continue
texture%[i% + 1] = oGL("getTextureBMP",bild&,1)
deleteObject bild&
inc i%
inc anzahl%
endwhile
ENDPROC
proc OpenGL
position! = position! - 0.05
color! = color! + 0.05
oGL("Clear")
' oGL("Origin", 0.0, 0.0, -9.0) 'Setzt Position el XPGL-Linien
' oGL("DrawXPGL", 0, 4) 'Zeichnet ebend esta Linien
oGL("Origin", 0, 0, -30)
oGL("Color", cos(color!), sin(color!), 1 - 0.5*cos(color!/30), 1)
oGL("Move", position!, 11.7, 0)
oGL("Print", font&, " DiaShow V1.0 lorem ipsum...........")
'oGL("Fog",3,0,25 + sin(rotation!))
oGL("Origin", 0, 0, -30)
oGL("Color", cos(color!/10), sin(color!/3), 1 - 0.5*cos(color!), 1)
oGL("Move", position!/0.7, -12.2, 0)
oGL("Print", font&, " lorem ipsum ................................................................ ")
'Sprites
'oGL("Origin", -3.4, -0.1, -6.0)
'oGL("Color", 10, 10, 10, 1)
'oGL("Quad", %MaxX, 0.1)
'oGL("Origin", 0, 0, -12)
'oGL("Draw", kugel#)
'oGL("Origin", 0, 0, -6)
' oGL("Origin", 0, -4.5, -18)
' oGL("Draw", kugel#)
if &GetTickCount - time& >= 5000'5 Sekunden son rum
r! = r! + 1
caso r! = anzahl% : r! = 1
time& = &GetTickCount
endif
'Bilder Laden
oGL("Origin", 0, -4, -12)
oGl("color",1,1,1,1)
oGl("move",-5.8, 0, -7.5)
oGL("Rotate", 0, 30, sin(color!))
oGl("push")
oGL("Texture", texture%[r!], 1)
oGL("Quad", 13, 8)
oGl("pop")
oGL("Origin", 0, -4, -12)
oGl("color",1,1,1,1)
oGl("move",5.8, 0, -7.5)
oGL("Rotate", 0, -30+sin(color!)/0.5, cos(color!))
oGl("push")
oGL("Texture", texture%[r!+2], 1)
oGL("Quad", 13, 8)
oGl("pop")
oGL("Show")'Espectáculos todos Objetos
ENDPROC
|
| | | | |
| | Georg Teles | Tag,
si ya algo Anderes Mostrar willst während el Bilder geladen voluntad, hay verschidene Möglichkeiten:
Versuchen kannst Usted con Multiprocessing de XProfan, que un paralleler Prozess el Bilder lädt y primäre el Animation übernimmt. Posesiones gerade kein Ejemplo sry.
Callback Función puede ser se auch anschauen, habe desafortunadamente auch kein Ejemplo, muss remendar.
Hab aber qué entdeckt: en Bucle zwischen SetTimer y KillTimer füge Por favor, una WaitInput, así nimmt dein Programa el todo Prozessorleistung
SetTimer 5'max. 50 Frames /sek.
Sinestar encargado ende%'Wenn no Abbruchbedingung erkannt wurde, durchlauf des Timers
Waitinput'<- hier
If IsKey(27)'es Abbruchbedingung "Escape-Taste" erfüllt, entonces
Ende% = 1'setzte Variable Ende% en 1
EndIf'y beende esta Abfrage
'imprimir "noch una test"
Case position! < -100 : position! = 25'Wenn Texto hinter linkem Bildschirmrand verschwunden entonces starte ihn otra vez de Vorne
Case color! = 90 : color!=1'Wenn Rotationswinkel 90Grad erreicht, entonces en 0 conjunto
OpenGL()'Zeichne derweil OpenGL
EndWhile'Springe a Sinestar encargado
KillTimer'Beende después de 5ms el Temporizador oder mejor dijo: Springe después de 5ms otra vez para SetTimer
End
|
| | | | |
| | Tango | ¡Hola auch,
habe grad el Ayuda bemüht. Lo schein como wäre como Multiprocessing el richtige Weg. Doch verstehe Yo no wirklich qué hay de me voluntad. Aber Yo denke, dass Yo el LadeProc el Bilder en una Modul packe, el se ejecuta entonces parallel para Hauptprogramm y yo kann entonces el Bilddaten a el Hauptprogramm a Laufzeit transferencia.
Sehe Yo el así correcto?
Verwirrend finde Yo como sólo el Auzssage en Multiprocessing y Callback, "Das Programa macht sólo más, si la Prozess final ist".
Damit Yo doch el Gleiche en Grün oder? |
| | | | |
| | Unterthema: Multiprozessing [...] producido. |
| | | | |
|
RespuestaThemeninformationenDieses Thema ha 2 subscriber: |