Я пытаюсь создать динамику отказов в игре, которую я программирую на Arduino Uno.
Я могу создать серию вложенных if, но я слышал, что переключение происходит быстрее.
Я знаю, что значения case указаны как константы, но мне любопытно, можно ли заставить этот код работать ?
// player and ball are both byte arrays
switch(ball[0]) { // bounce off edges x-axis
case (player[0]-1):
ball[3] -= 2;
break;
case player[0]:
ball[3] -= 1;
break;
case (player[0]+3):
ball[3] += 1;
break;
case (player[0]+4): // At this line the compiler says: the value of 'player' is not usable in a constant expression
ball[3] += 2;
break;
}
Я почти уверен, что ответ либо нет, либо что обходной путь помещения переменных в константы будет намного медленнее и больше, чем просто уступка вложенному if, но это не так. Больно спрашивать.