Multithreading bzw. Alternativen(Dev C++)
-
Guten Abend,
ich verwende den Dev C++ und bin zurzeit dabei Tetris mit OpenGL zu verwirklichen geht auch ganz gut voran, nur kommt iwie noch nicht der Tetris-Flair auf. Also was machen, natürlich die typische Tetris Musik muss her. Für die Tetris Musik hab ich auch schon das passende gefunden.
Nun muss ich nur noch die Musik "parallel" zum Spiel laufen lassen nach einigem googeln kam ich zu Multithreading, gänzlich neues Gebiet also angenehmes Tut hat sich http://www.codeworx.org/cpp_tuts_1_5.php rausgestellt nur heisst es da das man dem Compiler sagen muss das man Multithreading nutzen möchte. Aber ich finde hierzu nix in den Optionen.
Oder hat jemand eine Alternative für das Problem?
Würde mich auf antworten freuen
-
Welche Version des DEV hast du bei dir drauf?
Wenn du noch den alten hast, der hat auch den alten Compiler
Oder schiebt dir OpenGL einen aktuelleren Compiler drauf?Geht wahrscheinlich mit parallelen Prozessen.
Aber die alten Rechner haben so was auch schon darstellen können das Auge und Ohr zufrieden waren.MfG f.-th.
-
Hi,
du musst Multithreading in der Regel nicht explizit aktivieren.
MSVC und GCC erstellen den Code standardmäßig Multithreaded.
Deinen Code selbst kann er natürlich nicht einfach in Threads aufspalten,
das musst du schon tun
Dafür hast du verschiedene Möglichkeiten:
* Win32 API: mit beginthread, beginthreadex
* POSIX (Unix/Linux): Hier gibt es die pthread API (gibt auch eine Implementation für Windows)
* boost.thread: Plattformunabhängige Bibliothek, die auf wahlweise auf pthreads oder Win32 aufsetzt
* OpenMP und Konsorten: eher zur Parallelisierung von Schleifen geeignet
* diverse andere BibliothekenFür deine Zwecke würde ich dir eins der ersten 3 empfehlen,
je nachdem, was eben deine Ansprüche sind.
Für Dev-C++ gibt es auch ein DevPak mit dem man recht einfach pthreads für Windows installieren kann.Aber mal weg vom Threading und hin zu deiner Audio-Ausgabe:
Wie hast du vor, das umzusetzen?
Bibliotheken wie fmod und co. kümmern sich z.B. selbst darum, dass
die Ausgabe unabhängig vom Programm läuft, in sofern braucht man sich da gar nicht selbst mit Threads befassen.MfG DrakoXP
-
const int C = 261; const int Cis = 277; const int D = 293; const int Dis = 311; const int E = 329; const int F = 349; const int Fis = 369; const int G = 391; const int Gis = 415; const int A = 440; const int Ais = 466; const int H = 493; const int Takt = 1700; Sleep(Takt / 4); Beep(E * 2, Takt / 4); Beep(H * 1, Takt / 8); Beep(C * 2, Takt / 8); Beep(D * 2, Takt / 4); Beep(C * 2, Takt / 8); Beep(H * 1, Takt / 8); Beep(A * 1, Takt / 4); Beep(A * 1, Takt / 8); Beep(C * 2, Takt / 8); Beep(E * 2, Takt / 8); Beep(E * 2, Takt / 8); Beep(D * 2, Takt / 8); Beep(C * 2, Takt / 8); Beep(H * 1, Takt / 2.5); Beep(C * 2, Takt / 8); Beep(D * 2, Takt / 4); Beep(E * 2, Takt / 4); Beep(C * 2, Takt / 4); Beep(A * 1, Takt / 4); Beep(A * 1, Takt / 4); Sleep(Takt / (8 / 3)); Beep(D * 2, Takt / 3.25); Beep(F * 2, Takt / 8); Beep(A * 2, Takt / 8); Beep(A * 2, Takt / 8); Beep(G * 2, Takt / 8); Beep(F * 2, Takt / 8); Beep(E * 2, Takt / 3); Beep(C * 2, Takt / 8); Beep(E * 2, Takt / 8); Beep(E * 2, Takt / 8); Beep(D * 2, Takt / 8); Beep(C * 2, Takt / 8); Beep(H * 1, Takt / 4); Beep(H * 1, Takt / 8); Beep(C * 2, Takt / 8); Beep(D * 2, Takt / 4); Beep(E * 2, Takt / 4); Beep(C * 2, Takt / 4); Beep(A * 1, Takt / 4); Beep(A * 1, Takt / 4);bisher hab ich die Musik wie ihr sehr übers Beep gelöst
Dann müsste ich mich wohl mit fmod und co rumschlagen
Danke schon für die antworten
-
Du kannst auch einfach ein MP3 im Hintergrund abspielen lassen.
z.B. über MCI
http://stackoverflow.com/questions/2049825/simplest-way-to-play-mp3-from-visual-c
-
cool danke funzt super, und ganz einfach^^