usefull
Новичок
Доброго времени уважаемые форумчани.
Появился вопрос. Как считаете, какой код лучше в плане оптимизации?
Постановка задачи: сделать гонку с помощью чекпоинов. Допустим есть 3 разновидности пути.
// Отдельная проверка чекпоинтов
По DataSize во втором случае больше размер.
И есть ли советы какие-то по оптимизации данного кода?
Всем хорошего дня, заранее thank u.
Появился вопрос. Как считаете, какой код лучше в плане оптимизации?
Постановка задачи: сделать гонку с помощью чекпоинов. Допустим есть 3 разновидности пути.
// Объявляем массив наших переменных (в дальнейшем создадим 3 таких разновидности)
// Объявляем PVar для игрока (стадия)
// Проверка в
PHP:
static const Float:ds_checkpoints[11][3] = {
{ -722.1814, 1202.5670, 15.8677 },
{ -609.8699, 1187.9164, 15.8457 },
{ -520.2291, 1220.2211, 20.5547 },
{ -385.8148, 1140.9373, 11.8145 },
{ -385.3184, 978.9647, 11.8129 },
{ -371.0644, 1098.3403, 11.8158 },
{ -491.6584, 1231.8890, 19.6879 },
{ -578.5715, 1191.2545, 15.8721 },
{ -578.5715, 1191.2545, 15.8721 },
{ -736.1435, 1209.8857, 15.8742 },
{ -871.3302, 1196.2150, 10.3069 }
};
PHP:
SetPVarInt(playerid, "checkpoint", 0);
OnPlayerEnterRaceCheckpoint
PHP:
new checkpoint = GetPVarInt(playerid, "checkpoint");
SetPlayerRaceCheckpoint(playerid, 0, ds_checkpoints[checkpoint][0], ds_checkpoints[checkpoint][1], ds_checkpoints[checkpoint][2], 0.0, 0.0, 0, 4);
SetPVarInt(playerid, "checkpoint", checkpoint + 1);
if(checkpoint == MAX_CHECKPOINTS - 1) {
DisablePlayerRaceCheckpoint(playerid);
DeletePVar(playerid, "checkpoint");
// ... etc
}
Код:
enum {
CHECKPOINT_1,
CHECKPOINT_2,
CHECKPOINT_3
//...
}
PHP:
new checkpoint = GetPVarInt(playerid, "checkpoint");
switch(checkpoint) {
case CHECKPOINT_1: {
SetPlayerRaceCheckpoint(playerid, 0, -722.1814, 1202.5670, 15.8677, -609.8699, 1187.9164, 15.8457, 4);
SetPVarInt(playerid, "checkpoint", checkpoint + 1);
}
case CHECKPOINT_2: {
SetPlayerRaceCheckpoint(playerid, 0,-609.8699, 1187.9164, 15.8457, -520.2291, 1220.2211, 20.5547, 4);
SetPVarInt(playerid, "checkpoint", checkpoint + 1);
}
case CHECKPOINT_3: {
SetPlayerRaceCheckpoint(playerid, 0,-385.8148, 1140.9373, 11.8145, -385.3184, 978.9647, 11.8129, 4);
SetPVarInt(playerid, "checkpoint", checkpoint + 1);
}
case CHECKPOINT_4: {
SetPlayerRaceCheckpoint(playerid, 0,-385.3184, 978.9647, 11.8129, -371.0644, 1098.3403, 11.8158, 4);
SetPVarInt(playerid, "checkpoint", checkpoint + 1);
}
// ...
}
По DataSize во втором случае больше размер.
И есть ли советы какие-то по оптимизации данного кода?
Всем хорошего дня, заранее thank u.
Последнее редактирование модератором:
