Angesammelte Daten verwerten
Verfasst: 15. Mai 2011 13:29
Hi, ich habe das Spiel Tron programmiert, und es läuft über Lan. Es funktioniert ohne Probleme, nur wenn der eine Spieler dem anderen i.was schickt, werden die Daten zu langsam eingelesen und verwertet.
Wenn der Spieler schnell hintereinander mehrere Befehle rüber sendet, werden die zwar der Reihenfolge nach abgehandelt aber es sammelt sich an und ich hab nun versucht mit ner For-Schleife die Befehle abzufangen und zu verwerten, aber ich hab immer noch das selbe Problem...
Hoffe jemand kann mir helfen, denn ich sitze schon seit 2 Tagen davor und mir fällt nichts mehr ein.
Wenn der Spieler schnell hintereinander mehrere Befehle rüber sendet, werden die zwar der Reihenfolge nach abgehandelt aber es sammelt sich an und ich hab nun versucht mit ner For-Schleife die Befehle abzufangen und zu verwerten, aber ich hab immer noch das selbe Problem...
Code: Alles auswählen
void tron::startRead()
{
//anzahl der bytes
int anzahlbytes = pServerClient->bytesAvailable();
//wenn weniger als 1 byte warten sonst aus der methode kicken
if (anzahlbytes < 1)
return;
// anzahl bytes lesen
QByteArray empfangpacket;
empfangpacket = pServerClient->read(anzahlbytes);
//eingelesenes bearbeiten
for(int test = 0;test <= anzahlbytes;test++){
switch(empfangpacket[test]){
case 's':QMessageBox::information(this,"Bereit?","Wenn sie bereit sind bitte Bereit anklicken.",QMessageBox::Ok);
ui->pushButton_bereit->setEnabled(true);
erster=false;
break;
case 'g': startspielok();
break;
default :
richtungzahl = empfangpacket[test];
qDebug()<<"richtung: "<<richtungzahl;
richtung();
break;
}
}
update();
}Hoffe jemand kann mir helfen, denn ich sitze schon seit 2 Tagen davor und mir fällt nichts mehr ein.