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

Lares

1x Contest-Sieger

  • Private Nachricht senden

11

23.03.2007, 14:02

Ah ok nur ich konnte mit mixer nichts anderes als wav abspielen,deswegen dachte ich dass nur das geht :)

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

12

31.08.2007, 13:37

Hallo,
dank Google hab ich den Thread hier endeckt :)
Konnte auch dank SDL Mixer jetzt Sound hinzufügen.

Habs simpel gehalten.

Hier mal der Code.
Neue Codes in CFramework

C-/C++-Quelltext

1
2
3
4
5
//Sounds laden und abspielen.

bool PlaySound(string Sound);

// Zeiger für den Sound.

Mix_Chunk* m_psound;


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool CFramework::PlaySound(string Sound)
{
    m_psound = Mix_LoadWAV(Sound.c_str());

    if( m_psound != 0 )
    {
        Mix_PlayChannel(0, m_psound, 0);
        return true;
    }
    else
    {
        return false;
    }
}


Ist noch recht schlicht und bedarf bestimmt einer verbesserung.
Sounds werden schon gut abgespielt, leider hab ich nicht die passenden Lasersounds :oD
Werd mal ein paar Sounder anschreiben, vielleicht haben die was für mich ;)

Hab das Game aus dem Buch C++ für Spieleprogrammierer etwas umgeändert und Asteroiden entfernt :)
Werd dafür ein paar feindliche Raumjäger basteln.

Hoffe es gibt noch weitere SDL spezies hier ;)

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

T-VIRUS

Alter Hase

Beiträge: 548

Wohnort: Göttingen(West)/Nordhausen(Ost)

Beruf: Schüler

  • Private Nachricht senden

13

01.09.2007, 11:42

Hallo,
hab jetzt mal die Methode für die Musik geschrieben.
Diese sieht wie folgt aus.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// PlayMusic

//

// Aufgabe: Musik abspielen.

//

bool CFramework::PlayMusic(string Music)
{
    // Musik laden

    m_pmusic = Mix_LoadMUS(Music.c_str());

    if( m_pmusic != 0 )
    {
        Mix_PlayMusic(m_pmusic, -1);
        return true;
    }
    else
    {
        return false;
    }
}


Leider funktioniert die nicht :(
Ich werde mal den Fehler suchen.
Die Soundmethode habe ich auch umgebaut, da die Channels noch nicht ganz gut ausgewählt wurde.

Hab nun auch Sound bei Kollision zwischen Asteroiden und Laser eingebaut und der Laser selbst macht auch schon nette Sounds.

Ich denke mit etwas arbeit kann da mein erstes kleines 2D Game draus werden ;)

MFG T-Virus
Meine Blog:)

Wer Bugs im Text findet kann sie melden, fix erscheint irgendwann :D

MFG T-VIRUS

Gon

Treue Seele

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

14

20.03.2008, 15:27

Ich hab jetzt auch mal Musik und Sound eingebunden, die funktionieren aber nicht, man hört nichts.

Hier der Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
// Init

//

// Aufgabe: Framework initialisieren

//

bool CFramework::Init (int ScreenWidth, int ScreenHeight,
                       int ColorDepth, bool bFullscreen)
{
  // Alle Systeme der SDL initialisieren

  if (SDL_Init (SDL_INIT_VIDEO | SDL_INIT_TIMER | SDL_INIT_AUDIO) == -1 )
  {
    cout << "SDL konnte nicht initialisiert werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
  }

  // Vollbild oder Fenstermodus einstellen

  if (bFullscreen == true)
  {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
                                 SDL_HWSURFACE | SDL_DOUBLEBUF | 
                                 SDL_FULLSCREEN);
  }
  else
  {
    m_pScreen = SDL_SetVideoMode (ScreenWidth, ScreenHeight, ColorDepth,
                                 SDL_HWSURFACE | SDL_DOUBLEBUF);
  }

  // Prüfen, ob alles funktioniert hat

  if (m_pScreen == NULL)
  {
    cout << "Videomodus konnte nicht gesetzt werden!" << endl;
    cout << "Fehlermeldung: " << SDL_GetError () << endl;

    Quit ();

    return (false);
  }

  // Zeiger auf internes Array für Tastaturstatus ermitteln

  m_pKeystate = SDL_GetKeyState (NULL);

  // Alles ging glatt, also true zurückliefern

  return (true);

} // Init





// Quit

//

// Aufgabe: Framework (SDL) beenden

//

void CFramework::Quit ()
{
    // Musik wieder freigeben

    Mix_FreeMusic(m_pMusic);

    // Sound wieder freigeben

    Mix_FreeChunk(m_pSound);

    // Audio-Gerät wieder schließen

    Mix_CloseAudio();

  // SDL beenden

  SDL_Quit ();

} // Quit


PlayMusic:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
// PlayMusic

//

// Musik spielen

//

void CFramework::PlayMusic()
{

    // Zeiger für die Musik.

    m_pMusic = NULL;

    // Zeiger für den Sound.

    m_pSound = NULL;

    // Zuerst das Audio-Greät öffnen, bevor Musik/Sound geladen und abgespielt werden können.

    Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, MIX_DEFAULT_CHANNELS, 4096);

    // Musik laden

    m_pMusic = Mix_LoadMUS("Data/Elch.mp3");

    // Sound laden

    m_pSound = Mix_LoadWAV("Data/Elch.wav");

    // Musik abspielen, der 2. Parameter gibt hierbei die Anzahl

    // der loops an, -1 steht für unendlich viele loops.

    Mix_PlayMusic(m_pMusic, -1);

    // Sound abspielen, der 1. Parameter gibt den Channel an, in dem

    // der Sound abgespielt werden soll.

    Mix_PlayChannel(0, m_pSound, -1);

} // PlayMusic


Was mache ich falsch?

ich habs genau so gemacht wie oben beschrieben...

Vielen Dank im Voraus,

mfg Gon

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

15

20.03.2008, 15:43

Ich kann dir nur eins raten:

https://www.spieleprogrammierer.de/phpBB2/viewtopic.php?t=7211&highlight=sdl+sound

Gon

Treue Seele

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

16

20.03.2008, 15:47

Danke. ;)

Gon

Treue Seele

Beiträge: 262

Wohnort: Nahe München

Beruf: Schüler (9. Klasse Gymnasium)

  • Private Nachricht senden

17

20.03.2008, 16:37

ich hab fmod jeztz hier gedownloaded.

ich hab folgenden code geschrieben:

C-/C++-Quelltext

1
2
3
#include <fmod.h>
#include <windows.h>
#include <iostream>


C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  FMOD::System *m_lpSystem;
    FMOD::Sound *m_lpSound;
    FMOD::Channel *m_lpChannel = 0;

// PlayMusic

//

// Musik spielen

//

void CFramework::PlayMusic()
{

    FMOD::System_Create(&m_lpSystem);
    m_lpSystem->init(32,FMOD_INIT_NORMAL,0);
    m_lpSystem->createSound("excellent.wav",FMOD_HARDWARE,0,&m_lpSound);
    m_lpSystem->playSound(FMOD_CHANNEL_FREE,m_lpSound,0,&m_lpChannel);
    m_lpSystem->update();

    std::cin;

} // PlayMusic


aber es kommen folgende Meldungen:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(133): error C2065: 'FMOD_CHANNEL_FREE': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(132): error C2065: 'FMOD_HARDWARE': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(131): error C2065: 'FMOD_INIT_NORMAL': nichtdeklarierter Bezeichner
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(119): error C2143: Syntaxfehler: Es fehlt ';' vor '*'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(120): error C2143: Syntaxfehler: Es fehlt ';' vor '*'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(121): error C2143: Syntaxfehler: Es fehlt ';' vor '*'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(132): error C2227: Der linke Teil von '->createSound' muss auf Klasse/Struktur/Union zeigen
        Typ ist 'int *'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(131): error C2227: Der linke Teil von '->init' muss auf Klasse/Struktur/Union zeigen
        Typ ist 'int *'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(133): error C2227: Der linke Teil von '->playSound' muss auf Klasse/Struktur/Union zeigen
        Typ ist 'int *'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(134): error C2227: Der linke Teil von '->update' muss auf Klasse/Struktur/Union zeigen
        Typ ist 'int *'
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(121): error C2501: 'Channel': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(121): error C2501: 'm_lpChannel': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(120): error C2501: 'm_lpSound': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(119): error C2501: 'm_lpSystem': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(120): error C2501: 'Sound': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(119): error C2501: 'System': Fehlende Speicherklasse oder Typspezifizierer
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(119): error C2653: 'FMOD': Keine Klasse oder Namespace
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(120): error C2653: 'FMOD': Keine Klasse oder Namespace
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(121): error C2653: 'FMOD': Keine Klasse oder Namespace
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(130): error C2653: 'FMOD': Keine Klasse oder Namespace
c:\dokumente und einstellungen\eigene dateien\projekte\projekte\möp\framework.cpp(130): error C3861: 'System_Create': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden


ich hab aber den ordner lib angegeben und den ordner include und die libs
die im ordner lib waren angegeben...

was mache ich falsch?

Vielen Dank im Voraus,

mfg Gon

Werbeanzeige