Codea / Lua pong игра CPU неточности противника

Недавно я разработал и запрограммировал игру в понг на языке луа (кодеа); где вы можете играть в мультиплеере и в одиночной игре, где вы играете против процессора.

Моя проблема, я могу иметь процессор, чтобы играть идеально bat_cpu = ball_y но это не сделало бы игру веселой.

Поэтому я сделал простую систему неточностей, чтобы вычислить, куда мяч попадет в бит процессора:

bat_cpu = ball_y + inaccuracy

Где неточность определяется ранее как:

inaccuracy = math.random(-40,40)

Но летучая мышь по-прежнему точно следует за ball_y, и я хочу, чтобы она делала ошибки и не была такой быстрой.

Кто-нибудь знает, как имитировать процессорную биту, чтобы она допускала некоторые ошибки (на высокой скорости, точности и т. Д.)

1 ответ

Решение

Вы не упоминаете, когда применяется этот расчет, но, скорее всего, он будет сделан для каждого кадра. Это означает, что вы, вероятно, применяете эти неточности, но они так часто меняются в районе 0, что означает, что вы просто не видите эффекта.

Вы можете сместить ваш случайный расчет за удар: например, bias = math.random(-20, 20) а потом inaccuracy = bias + math.random(-40, 40); вы тогда сбросите bias на каждом ударе.

Вы также можете перемещать цель: вычислить, где должно произойти попадание для ЦП, и они будут перемещать эту цель случайным образом. Для каждого кадра вам нужно будет интерполировать, основываясь на положении шара, где вы хотите, чтобы ваша летучая мышь была, и поскольку цель летучей мыши неверна, ее подход к цели также будет неточным, как вы хотите.

Другие вопросы по тегам