Website automatisch aktualisieren lassen

DaniloPapi

Grünschnabel
Hallo :)
Ich muss für die Uni ein Programm in C++ schreiben welches eine Art kleines 2D Spiel werden soll.
Dabei soll mein Spieler über ein "Schachfeld" laufen und der aktuelle Spielstand über den Explorer in einer SVG-Datei angezeigt werden.
Ich habe soweit alles fertig nur fehlt mir dieses automatisches aktualisieren des Spielstands ... bis jetzt wird mir alles angezeigt sber ich muss eben immer F5 drücken um zu sehen wo der Spieler derzeit steht.
Wie kann man das schreiben um das SVGBild aufzurufen und es zb alle 0.1sek zu aktualisieren ?
Mit freundlichen Grüßen
DaniloPapi
 
Zuletzt bearbeitet:

cwriter

Erfahrenes Mitglied
Spielstand über den Explorer in einer SVG-Datei angezeigt werden
Über den Windows Explorer? Oder einen Browser? Wenn ja, welchem? (Titel: Website?)

Wie kann man das schreiben um das SVGBild aufzurufen und es zb alle 0.1sek zu aktualisieren ?
0.1s sind eine sehr kurze Zeit, um SVGs zu rendern.

Ich nehme mal an, dass du unter Windows arbeitest. Mit ShellExecute() kannst du durchaus Ordner im Explorer anzeigen lassen, aber irgendwie scheint mir das Design komisch.

Wenn du etwas weiter tauchen willst, hat Qt einigermassen passablen SVG-Support. Ansonsten kannst du auch schnell etwas für JS im Browser zusammenbasteln, das einfach die window.location neu setzt.

Da du von einer Website sprichst, gehe ich mal davon aus, dass da schon was ist. Mit C++ bist du dann aber schlecht beraten - nimm JS für sowas (oder direkt Qt für GUIs).

Ansonsten müsstest du etwas ausführlicher sein, wie du dir das vorstellst. Über Sockets könntest du einen ganz passablen Mini-Webserver zusammenbauen, aber das ist dann doch ein bisschen mehr Arbeit.

Gruss
cwriter
 

Sempervivum

Erfahrenes Mitglied
cwriter hat gesagt.:
irgendwie scheint mir das Design komisch.
Mir auch. Vernünftig wäre es, das Spiel gleich mit Javascript und Canvas im Browser zu zeichnen.
Frage mich, ob es Unwissenheit des Aufgabenstellers ist oder ob er seinen Studenten eine Falle stellen will :D

@DaniloPapi Anstatt die komplette Seite zu aktualisieren kannst Du auch nur die SVG-Grafik aktualisieren, indem Du zyklisch mit setInterval das src-Attribut neu setzt und dabei einen Zeitstempel an den Dateinamen anhängst.
 
Zuletzt bearbeitet:

DaniloPapi

Grünschnabel
Ich entschuldige mich für meine unpräzisen Aussagen :giggle:
Genau wird gesagt "Die Benutzerinteraktion erfolgt über die Standard Ein- und Ausgänge
eines C++ Programmes, die Darstellung der aktuellen Spielsituation
über eine SVG-Datei, welche dem Spielstand entsprechend
erstellt und in einem gängigen Browser dargestellt werden kann."
Ich habe vorher Website geschrieben da ich dachte man kann eventuell einfach im Browser eine schleife erstellen die alle paar Sekunden eine beliebige Seite aktualisiert aber das is wohl mehr aufwand und ich kann dann wenn ich das Programm abgebe nicht erwarten das mein Prof noch andere Dinge einstellen muss damit da was passiert.
Danke für eure Antworten :)
 
Zuletzt bearbeitet:

DaniloPapi

Grünschnabel
@DaniloPapi Anstatt die komplette Seite zu aktualisieren kannst Du auch nur die SVG-Grafik aktualisieren, indem Du zyklisch mit setInterval das src-Attribut neu setzt und dabei einen Zeitstempel an den Dateinamen anhängst.
[/QUOTE]

Das hört sich doch gut an meiner Meinung :D hast du dazu eventuell ein Code-Beispiel ?
 

Sempervivum

Erfahrenes Mitglied
Wenn die SVG-Datei in einem Browser angezeigt werden soll, wird es ohne eine Webseite nicht gehen. Die Grafik zyklisch zu aktualisieren ist ein Einzeiler:
Code:
setInterval(function() {
    document.getElementById('id-des-img-tags').src = 'die-grafik.svg?t=' + Date.now();
}, 200);
 

Neue Beiträge