Почему этот код работает на рабочем столе, но не работает на Android в отладочной сборке?Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Почему этот код работает на рабочем столе, но не работает на Android в отладочной сборке?

Сообщение Anonymous »

Я пытался изменить исходный код этой игры SDL2, чтобы в нее можно было играть на устройствах Android.
У меня возникла проблема: когда я запускал игру в качестве хоста, все игроки застыли на месте и не двигаются
Я отслеживал проблему, пока не добрался до этой функции.
этот цикл потока должен выполняться навсегда, но оно запускается только один или два раза, когда я запускаю приложение

Код: Выделить всё

void *client_loop(void *arg) {
int socket = *((int *) arg);
int16_t tab[BUF_MAX];
int length;
int id, bullets_in_array;
while (1) {
length = client_listen(socket, tab);
id = tab[0];
if (id == -1) {
receive_new_id(tab[1]);
}
SDL_Log("I'm called %i", id);
if (id >= 0) {
check_if_its_new_player(id);
players[id].position.x = tab[1];
players[id].position.y = tab[2];
players[id].kills = tab[3];
players[id].deaths = tab[4];
}
if (id == -2) {
bullets_in_array = (length - sizeof(int16_t)) / (sizeof(int16_t) * 2);
memcpy(bullets_client, tab + 1, sizeof(int16_t) * 2 * bullets_in_array);
bullets_number = bullets_in_array;
}
usleep(50);
}
}
Изображение

это вызывает игра не обновляет позиции игроков.
Я думаю, что client_listen(socket, tab) может быть подозрительным.

Код: Выделить всё

int client_listen(int sock, int16_t *tab){
int length = recvfrom(sock, tab, sizeof(int16_t) * BUF_MAX, 0, NULL, 0);
return length;
}
Я думаю, что этот лог-код может быть связан с проблемой, которая появляется через несколько секунд при запуске приложения
Изображение

тот же код работает на рабочем столе, поскольку вы можете видеть, что client_loop работает вечно на DESKTOP
[img]https://i .sstatic.net/yBX4H.png[/img]
.
Я использую в файле манифеста . < /p>
edit < /strong>

Этот код является частью этого проекта < /p>
client_loop < / code> находится в файле main.c в строке 84.
Однако игра по-прежнему зависает в режиме отладки.

Подробнее здесь: https://stackoverflow.com/questions/780 ... ebug-build
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»