2010-04-08 2 views
1

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

Thank you.

ответ

2

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

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

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

+0

Thank you. Я стараюсь. У меня есть еще одно сомнение. Hoe представляет nan в объективе C. Я искал его. Бту, я не мог этого понять. Я видел этот nan (char). Но какой шар мы должны здесь взять? Спасибо. –

+0

Я сделал, как вы сказали. Это хорошо. Большое спасибо. –

+0

Я бы спросил отдельный вопрос о stackoverflow, так как есть более опытные разработчики osx, чем я. Если я правильно помню, nan (char *) используется для определения тихого нана, то есть «бесконечного» числа, которое не будет вызывать прерывания при использовании в арифметике. Строковый параметр - любое имя для числа, обычно «nan» или «not-a-number». Я буду исправлен. –