Foro | | | | - Page 1 - |
| 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 Io l' Lauftext komplett durchlaufen lassen kann ohne das er am Bildrand ausblendet??
Wäre per Aiuto sehr dankbar.
Gruss aus Castrop |
| | | | |
| | | | | - Page 1 - |
| 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 Io l' Lauftext komplett durchlaufen lassen kann ohne das er am Bildrand ausblendet?? Wäre per Aiuto 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 naturalmente 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.
Di più eigentlich nicht. Deswegen die einzelne Zeile oben, leicht angepasst per 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. Di più eigentlich nicht. Deswegen die einzelne Zeile oben, leicht angepasst per 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 Aiuto 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 grande so eine WAV.
Mit dem Besitz dieser Informationen komme ich schon um einiges weiter und kann vieles ausprobieren.
' Programm: lesson13
' per 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
' per 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-Aiuto (15.5 - MP3- und MPG-File) "verunstaltet", so das man eine mp3-File einfach auf die .exe ziehen kann und es wird "geplayert", oder bei Fehler oder Prog-Start ohne File eben der Auswahl-Dialog geöffnet.
Bei den Start-Parametern Aiuto (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 per 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 naturalmente auch per 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, Dimensione oder Auflösung. Also keine gute Idee. Das Gleiche gilt auch per kleine Video Clips. Die sollen wenn possibile 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 per Abbruchbedingung
Declare hfont&, font&'Variablen per 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 File 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 necessario 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. |
| | | | |
| | | | - Page 2 - |
| | Tango | RICOSCH (28.02.2017)
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.
Hallo RICOSCH,
dieses Demo hilft mächtig weiter Respect erstmal! Ich wäre auf diese Programmierweise nie ohne Aiuto gekommen gekommen. Da merkt man erstmal wie eingeschränkt ich als VB-Programmierer gedacht habe. Aber da war es auch schwierig ohne API-Kenntnisse. Mein Ansatz wäre dabei noch ein zweites und drittes unsichtbares Fenster gewesen um diese dann - irgendwie zu verbauen. Frisst dann aber wohl reichlich Rechnerleistung. Mal abwarten... Ich mache micht jetzt mal daran deinen Code zu verstehen und in meine Diashow einzunauen. Wenn das dann funktioniert, stelle Io l' Code mal online. |
| | | | |
|
AnswerTopic-Options | 10.011 Views |
ThemeninformationenDieses Thema hat 5 subscriber: |