Ich hoffe, ich gehe dir nicht allzusehr auf die Nerven.
nochmal das aktuelle .pro - file:
Code:
######################################################################
# spooky vers 1.00 - Internationalisierung - deutsch 03.02.2005
######################################################################
TEMPLATE = app
INCLUDEPATH += . ./german ./arts_plugin /usr/kde/3.3/include/arts
LIBS += -lsoundserver_idl -L/usr/kde/3.3/lib
# Input
HEADERS += german/lang.h config.h gamelib.h window.h wiese.h arts_plugin/arts.h
SOURCES += main.cpp gamelib.cpp window.cpp wiese.cpp arts_plugin/arts.cpp
##################################################################################
Der Compiler läuft durch.
Der seltsame Pfad stammt von einem KDE-Update von 3.3 nach 3.4, ist aber korrekt.
Der Linker gibt eine Warnung aus:
Code:
g++ -Wl,-rpath,/usr/qt/3/lib -o spooky_deu main.o gamelib.o window.o wiese.o arts.o moc_gamelib.o moc_window.o moc_wiese.o moc_arts.o -L/usr/qt/3/lib -L/usr/X11R6/lib -lsoundserver_idl -L/usr/kde/3.3/lib -lqt -lXext -lX11 -lm
/usr/lib/gcc/i686-pc-linux-gnu/3.4.3/../../../../i686-pc-linux-gnu/bin/ld: warning: libstdc++.so.5, needed by /usr/kde/3.3/lib/libsoundserver_idl.so, may conflict with libstdc++.so.6
Das Programm crasht nach dem 1. Zugriff auf ein .wav-File:
Code:
uja:/home/uja/projekte/ujagames_qt2/spooky> ./spooky_deu
setze arts-sound
aRts-Sound erhalten!
Einstieg in Spiel
erster Sound:
Segmentation fault
uja:/home/uja/projekte/ujagames_qt2/spooky>
Die NAS-Variante ist hier stabil.
Startet man mit sound_off, löppt's auch.
Um das Ganze vollständig zu machen, noch die relevanten Teile:
Headerstart:
Code:
class wiese:public QCanvas
{
Q_OBJECT
public:
wiese(QWidget* parent);
QTimer* timrec1;
QTimer* timrec2;
QSound* sou[17];
bool sound_on;
QWidget* oberer;
... es folgen die ganzen Spritedefinitionen und signals/slots
Soundroutinen:
Code:
void wiese::lade_sounds()
{ QString sf;
for (int i=0; i<=16; i++)
{ sf="./sounds/";
switch (i)
{ case 0: sf=sf+"mond.wav"; break;
case 1: sf=sf+"spinne1.wav"; break;
case 2: sf=sf+"miau.wav"; break;
... u.s.w.
case 16: sf=sf+"witch.wav"; break;
}
sou[i]=new QSound(sf);
}
}
// Slot, Verbindung mit Menu:
void wiese::set_sound(int nr)
{ // sound_on=((QSound::isAvailable()) && (nr==0)); // pre-aRts-Version
sound_on=(nr==0);
if (sound_on) { emit sound_setting0(true); emit sound_setting1(false); }
else { emit sound_setting0(false); emit sound_setting1(true); }
}
// wie der Name sagt...
void wiese::mach_lala(int nr) { if (sound_on) sou[nr]->play(); }
so long,
BlueJay
p.s. was mir gerade so einfällt, bringt es was, den aRts upzudaten?
Lesezeichen