Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

27.01.2023, 02:09

Audio Vector struct Code

Hallo,

Ich komme mit dem Code (Siehe Bilder) nicht weiter. Ziel ist, Einen Ton aus einem Vector zu spiele. Einzelne Töne erklingen, nur eben nicht wie in Zeile 56. In einer rudimentären Renderschleife ohne Klasse funktioniert es Tadellos. Sorry, bin noch am Anfang.
»Testarossa« hat folgende Bilder angehängt:
  • Teil 1.png
  • Teil 2.png

2

27.01.2023, 11:45

Poste deinen Code bitte in C++ Code-Tags.

In Zeile 52 reservierst du Speicher für 15 Tone's im Vector. Die Tone Elemente existieren aber noch nicht, nur genug Speicherplatz dafür wurde bereitgestellt.
Benutze push_back um Elemente in vector hinzuzufügen.

3

27.01.2023, 13:27

Hallo, danke für dein Feedback. Könnte man nicht in einem Schwung Objekte erzeugen statt jedes Element einzeln hinten dran zu setzen?

4

27.01.2023, 13:38

Nö.

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

5

29.01.2023, 09:00

In Zeile 52 reservierst du Speicher für 15 Tone's im Vector. Die Tone Elemente existieren aber noch nicht, nur genug Speicherplatz dafür wurde bereitgestellt.

Das stimmt so nicht. Der std::vector-Konstruktor, der als Parameter size_t n erwartet, erzeugt tatsächlich die gewünschte Anzahl von Elementen. Es wird nicht nur genug Speicherplatz reserviert (reserve()), sondern die Objekte werden auch initialisiert. Als Vorlage für die Objekte dient der zweite Parameter, der standardmäßig dem "Standardwert" des Elementtyps entspricht.
Das Problem im Code muss woanders liegen. Dazu würde es helfen, den Code zu sehen, und nicht nur Screenshots davon. Einfach den Code zwischen [ cpp] und [ /cpp] schreiben (ohne Leerzeichen nach der öffnenden eckigen Klammer).

6

31.01.2023, 10:27

Hallo,

so wie es aussieht machst du da in Zeile 52 ein neues Objekt mit Namen "melody", das ist nicht das selbe wie das Objekt in der Klasse.
Um das in der Klasse zu initialisieren kannst du die Konstruktorenparameterliste verwenden, so wie du es mit app auch schon gemacht hast.
Ich vermute mal, dass dein Game-Konstruktor dann auch schon sehr bald aufhört.
Wenn du mal im Tutorial über Sound und Musik schaust (sfml-dev.org/tutorials/2.5/audio-sounds.php), dann findet man kurz vor dem Abschnitt "Playing a music" die folgende Hinweisbox:



In Zeile 54 kopierst du Atone in den lokalen Vektor rein, der dann schließlich am Ende des Konstruktors nicht mehr existiert.
Das könnte zumindest ein Problem sein warum der Sound nicht abspielt wenn du es in eine Klasse kapselst, statt alles in der main zu haben.


MfG,
Checkmateing

Werbeanzeige