Forum | | | | Tango | Hallo XProfan-Fans Ich bin neu hier und habe mich mal an einen kleinen Test gewagt. Meine Programmierkenntnisse sind noch aus den 80'ern. Und ein Wenig Basic.NET. Aber keine herausragenden Kenntnisse.
Zur Sache: Wollte eine Laufschrift programmieren. Soweit klappt es auch. Doch wenn ich mit...
oGL("Locate", -5.95 + 0.4 * cos(cnt1!) + cnt3! , 3.25 + 0.05 * cos(cnt2!) )
... den Counter cnt3! herunterzähle und er bei Null ankommt, erlischt die Laufschrift am linken Bildschirmrand. Um den Text bis hinter den linken Bildschirmrand durchlaufen zu lassen, bräuchte man wohl negative Werte. Das klappt irgendwie nicht.
Hat jemand eine Idee, wie ich den Lauftext komplett durchlaufen lassen kann ohne das er am Bildrand ausblendet??
Wäre für Hilfe sehr dankbar.
Gruss aus Castrop |
| | | | |
| | Tango | Tango (12.02.2017)
Hallo XProfan-Fans Ich bin neu hier und habe mich mal an einen kleinen Test gewagt. Meine Programmierkenntnisse sind noch aus den 80'ern. Und ein Wenig Basic.NET. Aber keine herausragenden Kenntnisse. Zur Sache: Wollte eine Laufschrift programmieren. Soweit klappt es auch. Doch wenn ich mit... oGL("Locate", -5.95 + 0.4 * cos(cnt1!) + cnt3! , 3.25 + 0.05 * cos(cnt2!) ) ... den Counter cnt3! herunterzähle und er bei Null ankommt, erlischt die Laufschrift am linken Bildschirmrand. Um den Text bis hinter den linken Bildschirmrand durchlaufen zu lassen, bräuchte man wohl negative Werte. Das klappt irgendwie nicht. Hat jemand eine Idee, wie ich den Lauftext komplett durchlaufen lassen kann ohne das er am Bildrand ausblendet?? Wäre für Hilfe sehr dankbar. Gruss aus Castrop
Wie jetzt ?!? keiner nen Plan oder keiner Bock nem Neuling zu helfen??? |
| | | | |
| | E.T. | Bitte lauffähiges Beispiel, aus nur einer Zeile wird wohl keiner so richtig schlau |
| | | XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 13.02.2017 ▲ |
| |
| | Tango | E.T. (13.02.2017)
Bitte lauffähiges Beispiel, aus nur einer Zeile wird wohl keiner so richtig schlau
Ja, das sehe ich ein, sorry.
Was ich möchte: einen Lauftext der aus dem rechten Bildschirmrand kommt und im Linken verschwindet und sich natürlich nach einer gewissen Zeit wiederholt. Davon zwei. Einmal oben, die Andere unten, nur langsamer. Wie die C64/Amiga Demos aus den 80'er ebend ;) (Dazwischen eine Diashow mit je zwei Bildern jeweils ansprechend animiert als Kollage dargestellt.) Aber ich schaffe ja noch nicht einmal dien LText
Und das Ganze anhand der Lesson13 und/oder auch Lesson14 aus Kurs 4.
Mehr eigentlich nicht. Deswegen die einzelne Zeile oben, leicht angepasst für L.13.
Denn so wie ich es gemacht habe verschwindet der LText sobald er am linken Bildrand ankommt. |
| | | | |
| | HofK | Tango (14.02.2017)
E.T. (13.02.2017)Bitte lauffähiges Beispiel, aus nur einer Zeile wird wohl keiner so richtig schlau Und das Ganze anhand der Lesson13 und/oder auch Lesson14 aus Kurs 4. Mehr eigentlich nicht. Deswegen die einzelne Zeile oben, leicht angepasst für L.13. Denn so wie ich es gemacht habe
Man kann nicht erwarten, dass der potentielle Helfer erst einmal selber recherchieren muss worum es eigentlich geht. Ich habe nur XProfan 11, aber wenn ich da in die Hilfe schaue, finde ich unter Kurse auch OGL. Da dann auch eine Lektion13 bzw. 14, die sicher gemeint ist - bitte so etwas immer gleich exakt mit angeben, nicht jeder ist gerade bei OGL.
Aber dann dazu eben auch den kompletten/auszugsweisen Quelltext, dazu gibt es beim Verfassen des Beitrags oben rechts neben den Smilies beim Dreieck/Pfeil die Quelltextbox. Sonst kann man keine Fehler suchen/finden! Manchmal ist es nur ein unscheinbarer Fehler den man selbst übersieht - geht mir ständig so - normal! |
| | | | |
| | Tango | Okay, habe verstanden. Also dann hier der Quelltext:
Die Änderungen habe ich mit 'Neu eingefügt' dokumentiert. Wenn man es nun startet sieht man, was ich meine.
Und so ganz nebenbei habe ich mich mit mp3 beschäftigt, was auch sehr gut funktioniert. Allerdings möchte ich die mp3 laden und abspielen ohne Auswahldialog. Also ohne LoadFile$. Kann man das auch anders machen - also direkt laden und dann abspielen lassen? Bin erstmal auf WAV ausgewichen. Ist aber nicht so schön, weil einfach sehr groß so eine WAV.
Mit dem Besitz dieser Informationen komme ich schon um einiges weiter und kann vieles ausprobieren.
' Programm: lesson13
' für XProfan 9
declare font&, \' Base Display List For The Font Set
cnt1!, \' 1st Counter Used To Move Text & For Coloring
cnt2!, \' 2nd Counter Used To Move Text & For Coloring
cnt3!' Neu eingefügt
cnt3! = -7
declare time&, frames%
proc DrawGLScene
oGL("Clear")
oGL("Origin", 0, 0, -2)' Move Into The Screen
oGL("Color", cos(cnt1!), sin(cnt2!), 1 - 0.5 * cos(cnt1! + cnt2!), 1)
cnt1! = cnt1! + 0.051' Increase The First Counter
cnt2! = cnt2! + 0.005
cnt3! = cnt3! + 0.007' Neu eingefügt
' Increase The 2nd Counter
oGL("Locate", -5.95 - cnt3!, 0.32 * sin(cnt2!))' Position The Text On The Screen ************ Neu eingefügt
oGL("Print", font&, "Text in OpenGL mit XProfan 9")' Print GL Text To The Screen
oGL("Show")
endproc
' Hauptprogramm
' -------------
declare ende%, hfont&
CLS 0
oGL("Init", %hWnd, 0, 0, 0, 1)
hfont& = create("Font", "Arial", 32, 0, 0, 0, 0)
font& = oGL("BitmapFont", hfont&)
deleteobject hfont&
Ende% = 0
time& = &GetTickCount
setTimer 10' max. 100 Frames /sek.
WhileNot ende%
WaitInput
If IsKey(27)
Ende% = 1
EndIf
DrawGLScene()
inc frames%
if &GetTickCount - time& >= 1000' 1 Sekunde ist 'rum
setText %hWnd, str$(frames%) + " Frames / sek"
time& = &GetTickCount
frames% = 0
endif
EndWhile
killTimer
end
|
| | | | |
| | E.T. | Ich denke, das im 2D das Locate nicht so weit im negativen Bereich positionieren kann. Darauf hat aber sicher Roland die genaue Antwort.
Habe auf die Schnelle aber mal Lekt. 14 etwas modifiziert, mit 3D-Texten gibts da keine Probleme, Move verschiebt wohl bis zum 800elfzigsten Monitor
Ich hoffe, das hilft erstmal etwas weiter, habs nur beim Feierabend - zusammengetüdelt
' Programm: lesson14
' für XProfan 10
declare font&, rot!, pos!
pos!=8
declare time&, frames%
proc DrawGLScene
pos! = pos! - 0.05
oGL("Clear")
oGL("Origin", 0, 0, -12)
' oGL("Rotate", rot!, rot! * 0.1, rot! * 0.09)
oGL("Color", cos(rot!/20), sin(rot!/25), 1 - 0.5*cos(rot!/17), 1)
oGL("Move", pos!, 0, 0)
oGL("Print", font&, "OpenGL mit XProfan 9")
rot! = rot! + 0.5
oGL("Show")
locate 0,0
print str$(pos!)
endproc
' Hauptprogramm
' -------------
declare ende%, hfont&
CLS 0
oGL("Init", %hWnd, 0, 0, 0, 1)
hfont& = create("Font", "Courier New", 48, 0, 1, 0, 1)
font& = oGL("OutlineFont", hfont&, 0.3)
deleteobject hfont&
Ende% = 0
time& = &GetTickCount
setTimer 25' max. 100 Frames /sek.
WhileNot ende%
WaitInput
If IsKey(27)
Ende% = 1
EndIf
Case pos! < -18 : pos! = 7'Text wieder nach rechts
DrawGLScene()
inc frames%
if &GetTickCount - time& >= 1000' 1 Sekunde ist 'rum
setText %hWnd, str$(frames%) + " Frames / sek"
time& = &GetTickCount
frames% = 0
endif
EndWhile
killTimer
end
|
| | | Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.02.2017 ▲ |
| |
| | E.T. | ... zu der mp3-Geschichte : (Dafür bitte das nächste mal ein separates Thema aufmachen, wegens der UnÜbersichtlichkeit )
Hab auch hier mal ein Bsp. aus der XProfan-Hilfe (15.5 - MP3- und MPG-Dateien) "verunstaltet", so das man eine mp3-Datei einfach auf die .exe ziehen kann und es wird "geplayert", oder bei Fehler oder Prog-Start ohne Datei eben der Auswahl-Dialog geöffnet.
Bei den Start-Parametern Hilfe (Stichwort "Parameter") beachten, im meinem Bsp. funzt das nur mit .exe .
Soll ja aber auch nur eine Hilfestellung sein, wie es gehen kann
|
| | | XProfan X3Grüße aus Sachsen... Mario WinXP, Win7 (64 Bit),Win8(.1),Win10, Win 11, Profan 6 - X4, XPSE, und 'nen schwarzes, blinkendes Dingens, wo ich das alles reinschütte... | 15.02.2017 ▲ |
| |
| | Tango | Super!
Erstmal Herzlichen Dank für die wertvollen Tipps.
Habe jetzt mal ein wenig experimentiert und habe "meinen Anfang" gefunden
Ich werde mich am WE dran machen und das erstmal testen und ein wenig mit den Parametern spielen.
Bisher scheint alles recht vielversprechend.
Natürlich werde ich, sobald etwas Vorzeigbares dabei heraus kommt, den Code mal posten. Bin auf Eure Meinung gespannt und natürlich auch für Tipps und Verbesserungsvorschläge.
In diesem Sinne nochmals Danke an an Euch. |
| | | | |
| | p.specht
| Lektion 14 löst dein Problem mit dem linken Rand! Probier mal das Beispiel 14 mit x-Origin = -3 ! |
| | | XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 16.02.2017 ▲ |
| |
| | Tango | So, ich habe jetz mal etwas mit meinem Tool gebastelt. Klappt auch soweit. Dank der Tipps von euch. Jetzt gibts aber wieder ein Problem was ich nicht lösen kann. Wie bekomme ich nun ein Normales JPG in die 3D-Welt?
Eigentlich sogar zwei oder drei Bilder gleichzeitig. Habe da an Sprites gedacht aber die JPG als Textur scheitert am Format, Größe oder Auflösung. Also keine gute Idee. Das Gleiche gilt auch für kleine Video Clips. Die sollen wenn möglich auch eingeblendet werden können.
Bei den Bildern habe es mit "DrawPic bild1&, 20, 20; 0" versucht. Doch das erscheint kurz und verschwindet. Ist auch ganz klar, da die 3D-Welt diesen Befehl wohl wieder überdeckt.
Mit den Videos habe ich es erst garnicht versucht.
Habe meinen Code angehängt.
Wer weis da Rat?
/*
Diashow
*/
WindowStyle 64 + 16'Fenster ohne Rahmen und
Window %MaxX, %MaxY'Fenster an Desktopauflösung anpassen
CLS 0'Bildschirm Schwarz färben
Declare Ende%'Variable für Abbruchbedingung
Declare hfont&, font&'Variablen für Font1
Declare pos!, rot!'Positions- und RotationsVariablen
Ende% = 0'Startbedingung 0 - Also kein Abbruch
pos!=12'Position des Textes außerhalb des rechten Bildschirmrandes
rot!=0'Rotation = 0
oGL("Init", %hWnd, 0, 0, 0, 0)'OpenGL Init
oGL("LoadXPGL", "Linie.xpgl")'Lädt Linienpunkte aus Datei Linie.xpgl
oGL("UseXPGL", 1)'Verwendet diese Linienpunkte
hfont& = create("Font", "Courier New", 64, 0, 0, 10, 0)'Lädt Font in Variable hfont&
font& = oGL("OutlineFont", hfont&, 0.3)'Weist hfont& oGL zu
deleteobject hfont&'Zerstört Objekt hfont& wieder, weil es nach Zuweisung nicht mehr benötigt wird
MIDI("Play", $ProgDir + "irgendeinSound.mp3", 1)'Spielt mp3 aus dem Programmverzeichnis ab aus dem dieses Programm gestartet wurde
SetTimer 5'max. 100 Frames /sek.
WhileNot ende%'Wenn keine Abbruchbedingung erkannt wurde, durchlauf des Timers
WaitInput'wartet auf Abbruchbedingung
If IsKey(27)'ist Abbruchbedingung "Escape-Taste" erfüllt, dann
Ende% = 1'setzte Variable Ende% auf 1
EndIf'und beende diese Abfrage
Case pos! < -22 : pos! = 12'Wenn Text hinter linkem Bildschirmrand verschwunden dann starte ihn wieder von Vorne
Case rot! <= 90 : rot!=0'Wenn Rotationswinkel 90Grad erreicht, dann auf 0 setzen
DrawLauftext()'Zeichne derweil OpenGL
EndWhile'Springe zu WhileNot
KillTimer'Beende nach 5ms den Timer oder besser gesagt: Springe nach 5ms wieder zum SetTimer
End
'----------------------------------------------------------------------------
proc DrawLauftext
pos! = pos! - 0.05
rot! = rot! + 0.05
oGL("Clear")
oGL("Origin", 0, 0, -12)
'oGL("Rotate", rot!, rot! * 0.1, rot! * 0.09)
oGL("Color", cos(rot!), sin(rot!), 1 - 0.5*cos(rot!), 1)
oGL("Move", pos!, 4.3, 0)
oGL("Print", font&, "OpenGL mit XProfan 9")
oGL("Origin", 0, 0, -12)
oGL("Color", cos(rot!), sin(rot!), 1 - 0.5*cos(rot!), 1)
oGL("Move", pos!/0.7, -4.7, 0)
oGL("Print", font&, "OpenGL mit XProfan 9")
oGL("Origin", 0.0, 0.0, -9.0)'Setzt Position der XPGL-Linien
oGL("DrawXPGL", 0, 4)'Zeichnet ebend diese Linien
oGL("Show")'Zeigt Lauftext und Linien
EndProc
|
| | | | |
| | RICOSCH | hallo Tango,
hatte vor einiger Zeit mal mit OpenGL rumgespielt ,damals hat mir IF zur Seite gestanden.
Hier hast Du ein eine kleine Demo die Du gerne weiter verwenden kannst vieleicht hilft es Dir ja.
Maus bewegen nach links / rechts bewegt die Bilder links / rechts Maustaste 2 und maus nach oben und unten Zommt die Bilder herein und wieder raus.
hatte mal ein Cooliris Bildbetrachter in Planung aber meine Hardware war irgendwie überfordert, den Thread dazu gibts hier sicher noch. |
| | | | |
|
AntwortenThemenoptionen | 10.034 Betrachtungen |
ThemeninformationenDieses Thema hat 5 Teilnehmer: |