Italia
Foro

Laufschrift

 

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
 
12.02.2017  
 




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???
 
13.02.2017  
 




E.T.
Bitte lauffähiges Beispiel, aus nur einer Zeile wird wohl keiner so richtig schlau
 
XProfan X3
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...
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.
 
14.02.2017  
 




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!
 
14.02.2017  
 




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
 
14.02.2017  
 




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
'-Begin-----------------------------------------------------------------
Declare A$,B$
Cls
WindowTitle "Testprogramm MP3 / MPG"

If %ParCount

    A$ = Par$(1)
    print "Abspielen: \n" + A$

Else

    print "Keine mp3-File trasferimento >>> File auswählen"
    A$=LoadFile$("MP3/MPG-DATEI","*.MP*")

EndIf

While A$ <> ""

    A$ = "\q" + A$ + "\q"
    A$="OPEN " + A$ + " TYPE MPEGVIDEO ALIAS MP"
    B$=MCISend$(A$)
    Case %MCIError : Print "Fehler: ";B$
    B$=MCISend$("PLAY MP")
    WaitMouse
    B$=MCISend$("CLOSE MP")
    A$=LoadFile$("MP3/MPG-DATEI","*.MP*")

EndWhile

'-End-------------------------------------------------------------------
 
XProfan X3
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  
 




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.
 
15.02.2017  
 




p.specht

Lektion 14 löst dein Problem mit dem linken Rand! Probier mal das Beispiel 14 mit x-Origin = -3 !
 
XProfan 11
Computer: 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


1 kB
Hochgeladen:25.02.2017
Downloadcounter92
Download
 
25.02.2017  
 




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.

1.845 kB
Hochgeladen:28.02.2017
Downloadcounter105
Download
 
I LOVE TOOLS
28.02.2017  
 




Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

10.053 Views

Untitledvor 0 min.
Gast.081511.07.2024
Axel Berse15.03.2023
Michael Hettner02.09.2021
H.Brill30.06.2021
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie