Как установить вероятность появления спрайта в стрелялке? - PullRequest
1 голос
/ 08 апреля 2010

Моя игра - маленькая стрелялка в cocos2d.Враг генерирует пули, чтобы стрелять в игрока через определенные промежутки времени.Я создал случайный у, чтобы пули касались противоположного края на случайной высоте.Если пуля касается игрока, враг побеждает.
Но мне нужно установить вероятность для противника в точности.Если вероятность врага равна 80% точности?Как я могу установить в моей программе?Для 10 выстрелов 8 должно быть направлено прямо к игроку.
Как я могу решить, какие из них должны идти прямо в 10, которые следует пропустить.В то же время игрок также стреляет в противника.

Спасибо.

1 Ответ

2 голосов
/ 08 апреля 2010

Я бы сделал это так.

Предположим, у вашего игрока есть позиция 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 выстрелов точно в игрока, но чем точнее выстрелы, тем ближе они к цели.

Это, конечно, пренебрегает временем перемещения пули, но это может быть включено без такой большой работы.

...