Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

Войти
Регистрация
Восстановить пароль
 
DUMP
57 / 31 / 7
Регистрация: 22.02.2015
Сообщений: 261
#1

Передвижение шарика - C++

12.05.2015, 22:49. Просмотров 535. Ответов 7
Метки нет (Все метки)

Нужно заставить шар двигаться и менять направление, когда достигает стенки экрана. Пытался сделать векторное движение ничего не получилось. Прошу помочь. Можете объяснить или дать формулы, пилить код не обязательно)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.05.2015, 22:49
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передвижение шарика (C++):

Передвижение шарика вдоль графика "корень из х" - C++
написать программу передвижения шарика вдоль графика корень из х в с++

Передвижение курсора - C++
Необходимо осуществить передвижение курсора с возможностью приостановки и возобновления.Как сделать например если нажать клавишу влево...

Передвижение по строке - C++
Здравствуйте, есть такая проблемка: Вот например есть строка: char* string = "Text=Text2"; Чтобы пробежаться по символам и найти знак...

Передвижение по строчке - C++
Проблема такова: есть строчка: char* text = "text1 text2"; Я ищу первый пробел: char* ch; ch = strchr(text, ' '); Потом...

Передвижение объекта - C++
Подскажите плиз Вводятся 3 числа. A, B, N. A - движение вперед, B - движение назад, N - количество дней. Задача: объект находится в...

Передвижение курсора в c++ - C++
Здравствуйте, Я начал писать небольшую программу которая должна выполнять заданный алгоритм действий. Суть в чем: 1)Ищем например...

7
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
12.05.2015, 22:52 #2
DUMP, с помощью чего шар рисуете?И что вы подразумеваете под векторным движением?
Опишите поставленную задачу конкретнее.
0
FraidZZ
Ex-Member
3898 / 1524 / 229
Регистрация: 06.01.2013
Сообщений: 4,050
Завершенные тесты: 1
12.05.2015, 22:52 #3
DUMP, что именно не получилось?
0
sereja322
3 / 3 / 0
Регистрация: 10.03.2015
Сообщений: 65
12.05.2015, 23:00 #4
Скажи сначала, как ты собираешься визуализировать? Я вот пишу курсач(игра) на winapi (не советую) и движение шарика сделал плавным, но не шибко быстрым. Если делать на openGL, то я тебе помочь не смогу, так как сам ещё нуб. В общем случае это движение в каком-нибудь параллельном потоке (или в основном), где бесконечный цикл прибавляет к координатам шарика n-ое количество координат (по x и по y), проверяет, не зашёл ли за границы и делает задержку, скорость можно менять задержкой и количеством координат, которое прибавляется. А как ты пытался сделать векторное движение? Расскажи подробнее, может твой способ будет лучше.
0
DUMP
57 / 31 / 7
Регистрация: 22.02.2015
Сообщений: 261
13.05.2015, 16:14  [ТС] #5
Зачем вам то , чем я буду визуализировать ?
Впрочем если у вас такая непонятка, раскажите мне как получить координаты (x,y) от объекта (0,0) в некоторых пределах, зная только градусы (0-360).
Примерно так:
C
1
2
3
4
5
6
7
void Dir(int angle)
{
//0 градусов будем считать (0,-1) от объекта
//тогда 90 (1,0) 
//данные полученные на основе angle заносим в переменные
Move(x,y); // там где и будет всё движении
}
Наверное такой способ тоже нормальный , но как сделать ?
S_el, Нужно заставить шар двигаться и менять направление, когда достигает стенки экрана. Что может быть конкретнее ?
Если бы я всё знал, я бы не спрашивал.
0
S_el
2112 / 1632 / 308
Регистрация: 15.12.2013
Сообщений: 6,572
13.05.2015, 16:23 #6
Цитата Сообщение от DUMP Посмотреть сообщение
Зачем вам то , чем я буду визуализировать ?
Чтобы говорить на языке выбранного вами инструмента.

Цитата Сообщение от DUMP Посмотреть сообщение
Что может быть конкретнее
На каком этапе возникают сложности.
1.Отрисовать шар
2.Анимация
3.Получение относительных координат центра
4.Реализация смещения
5. Задание координат границы
6. Смена направления движения.
0
Renji
1963 / 1361 / 307
Регистрация: 05.06.2014
Сообщений: 3,893
13.05.2015, 16:25 #7
Цитата Сообщение от DUMP Посмотреть сообщение
Можете объяснить или дать формулы, пилить код не обязательно)
А там нужны какие-то особые формулы?
start_x, start_y - откуда начали движение.
xv, yv - скорость движения по икс и игрек.
t - время прошедшее с начала движения.
Координаты шарика:
x=start_x+vx*t
y=start_t+yv*t

Координаты стенок экрана - что-то в духе "x=0, y - любое".
Складываете координаты шарика, координаты стенки и получаете систему уравнений с тремя неизвестными. Решив ее получаете в каком месте шарик стукнется об стенку. Не решив ее получаете двойку по алгебре.
1
Nosey
1349 / 400 / 107
Регистрация: 22.10.2014
Сообщений: 863
Завершенные тесты: 2
13.05.2015, 16:31 #8
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от DUMP Посмотреть сообщение
//0 градусов будем считать (0,-1) от объекта //тогда 90 (1,0)
Для этого вам стоит вспомнить математику школьного курса, синусы там всякие да косинусы

А вообще:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
void update(float dt)
{
    static const Point2 velocity;
    Point2 dPos = velocity*dt;
    
    // foreach allWall
    {
        Rectangle2& wall = allWall[i].rect;
        if (wall.x < targetPos.x && wall.x + wall.width > targetPos.x)
        {
            dPos.x = -dPos.x;
        }
        
        if (wall.y < targetPos.y && wall.y + wall.height > targetPos.y)
        {
            dPos.y = -dPos.y;
        }
    }
 
    Point2 targetPos += dPos;
}
Это в 2д варианте со стенами паралельными осям. Если стены не паралельны осям, нужно вспоминать чуток линала.
0
13.05.2015, 16:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.05.2015, 16:31
Привет! Вот еще темы с ответами:

Передвижение стрелками - C++
Как переключаться между элементами списка в консоли с помощью стрелок? И если кто знает подскажите где можно обучиться делать оконные...

Передвижение обьекта - C++
Нужно написать программу передвижения обьекта.Программа показывает поле XXXXX XIOOX XOOOX XOOOX XOOOX XOOOX XXXXX I-обьект ...

Передвижение по стрелочкам в консоли. - C++
Всем привет!!!Помогите пожалуйста сделать передвижение с помощью стрелочек по списку...(в консоли....)

Передвижение графических объектов - C++
Перемещать треугольник по диагонали с заданным шагом и задержкой в полторы секунды


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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