Я бы сделал это так.
Предположим, у вашего игрока есть позиция y. Чтобы получить точность 80%, выберите случайное число из интервала [y - height*0.2, y + height*0.2]
, где height
- высота экрана. В общем, чтобы получить точность p, выберите число из [y - height*(1-p), y + height*(1-p)]
. Когда p = 1,0 (100%), пуля будет нацелена точно на позицию игрока.
Это не означает, что противник с точностью 80% будет стрелять 8 из 10 выстрелов точно в игрока, но чем точнее выстрелы, тем ближе они к цели.
Это, конечно, пренебрегает временем перемещения пули, но это может быть включено без такой большой работы.