2016-11-03 3 views
3

У меня есть multiplayer project, у которого есть целые петли с кодом проверки внутри них. block of code][![block of codeIDs в Scratch: Облачные переменные

Проблема заключается в том, несколько компьютеров может обработать это и изменить crabx или craby из-за запаздывания в переменных dvotes, uvotes, lvotes или rvotes. Однако только одна машина должна изменить это.

Это можно легко решить, предоставив каждому игроку идентификатор, как это делают многие люди в SQL. Я бы просто проверить, равен ли ID 1, и это будет «операционная машина». Затем я выполнил все эти проверки на одной машине. Это будет делать сервер Scratch, если вы можете запрограммировать его ...

Проблема в том, что нет способа определить, когда игрок покидает игру. Нет блока, который называется «при выходе» или «нажата кнопка останова». Как мне это сделать? Я видел, что у людей есть кнопка, которую люди нажимают, чтобы выйти, но некоторые люди не нажимают на нее/даже не видят ее.

Заранее благодарен!

ответ

4

Вариант 1

Я никогда не был особенно успешным с облачными данными себя, но я слышал теорию об этом раньше:

По существу, каждый игрок получает «счетчик». Их компьютер постоянно увеличивает этот счетчик. Если счетчик перестает увеличиваться (который будет обнаружен другими компьютерами, которые все обследуют друг друга), проект узнает, что пользователь ушел, и один из компьютеров позаботится об удалении их идентификатора и других данных.

Очевидно, это намного легче сказать, чем сделать. (Как я уже говорил, я никогда не получал сложные данные облака хорошо работать для себя, но я видел, как это сделано успешно, и объяснил.)

Вариант 2

В качестве альтернативы, вы могли бы быть лучше используя this cloud api, созданный MegaApuTurkUltra. Я считаю, что кража у других, как правило, является лучшим способом решения проблем, когда дело доходит до кода. ;)