Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
saharok2000
1 / 1 / 0
Регистрация: 01.07.2014
Сообщений: 49
#1

Ищу нормальную формулу для полета пули (прямо с одинаковой скоростью в указанном направлении) - C++

10.04.2016, 12:12. Просмотров 121. Ответов 2
Метки нет (Все метки)

в игре перс стреляет пулями в сторону курсора
у меня есть координаты курсора во время нажатия пкм
C++
1
float cx, cy;
положение персонажа во время стрельбы
C++
1
float px, py;
игровое время
C++
1
float time;
x и y - положение пули
пуля летит по вот такой уродской формуле:
C++
1
2
3
double distance = sqrt((сx - x)*(сx - x) + (сy - y)*(сy - y));
x += 0.8*time*(сx - px) / distance;
y += 0.8*time*(сy - py) / distance;
при этом ведет себя весьма странно: летит с разными скоростями, телепортируется
может вы знаете нормальную формулу для полета пули(прямо с одинаковой скоростью в указанном направлении)
а то я не могу понять что делать
(мне кажется ответ очень близок, я просто чрезмерно туплю)
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.04.2016, 12:12     Ищу нормальную формулу для полета пули (прямо с одинаковой скоростью в указанном направлении)
Посмотрите здесь:

Вывести формулу для решения C++
Как сделать нормальную инсталяшку для программы? C++
C++ Cоставить формулу дисперсии для массива чисел
C++ Путник двигался t1 часов со скоростью v1, затем t2 часов - со скоростью v2 и t3 часов – со скоростью v3. За какое время он одолел половину пути? в с++
Для вычисления слагаемого суммы вывести рекуррентную формулу C++
C++ В правильном ли направлении я иду? (Разработать программу для составления списка заданий для параллельных процессоров)
C++ Дайте пожалуйста формулу для движения стрелки в часах
C++ Путник двигался t1 часов со скоростью v1, затем t2 часов- со скоростью v2 и t3 часов со скоростью v3. За какое время он одолел первую половину пути
C++ Не могу подобрать формулу для расчётов с банком
C++ Модель полета
Написать формулу для функции C++
Найти рекуррентную формулу для вычисления суммы ряда C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
dcshowcousa
25 / 17 / 48
Регистрация: 22.10.2015
Сообщений: 303
10.04.2016, 12:30     Ищу нормальную формулу для полета пули (прямо с одинаковой скоростью в указанном направлении) #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
saharok2000,
C++
1
double distance = sqrt((сx - px)*(сx - px) + (сy - py)*(сy - py));
DemolitionMan
57 / 83 / 26
Регистрация: 06.04.2016
Сообщений: 490
10.04.2016, 12:55     Ищу нормальную формулу для полета пули (прямо с одинаковой скоростью в указанном направлении) #3
Вместо этого:
C++
1
double distance = sqrt((сx - x)*(сx - x) + (сy - y)*(сy - y));
Нужно написать вот это:
C++
1
double distance = sqrt((сx - px)*(сx - px) + (сy - py)*(сy - py));
Нужно найти угол прямой:
C++
1
float k = y/x;
Задаем вермя таймера 100 мс.
По событию таймера вызываем движение пули:
C++
1
2
dx = 1;// или x += 1
dy = k;
Добавлено через 12 минут
Ну если у тебя системное время, то тогда нужно написать примерно так:
C++
1
2
3
4
5
6
7
8
9
10
int step = 100,//шаг времени
period = 0,//номер периода
bulletx = px, bullety = py;
for(;;){
if(time%step == 0){
period++;
dx = 1;// или x += 1
dy = k;
bulletx += dx,
bullety += dy;}}
Ну и как говорится:
C++
1
Timer1->Enabled = true;
Yandex
Объявления
10.04.2016, 12:55     Ищу нормальную формулу для полета пули (прямо с одинаковой скоростью в указанном направлении)
Ответ Создать тему
Опции темы

Текущее время: 04:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru